public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2015-09-18 18:24 Richard Farina
  0 siblings, 0 replies; 46+ messages in thread
From: Richard Farina @ 2015-09-18 18:24 UTC (permalink / raw
  To: gentoo-commits

commit:     f7218d0969f77eb765e88bc4f581fa5a818498ff
Author:     Zero_Chaos <zerochaos <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 18 18:23:26 2015 +0000
Commit:     Richard Farina <zerochaos <AT> gentoo <DOT> org>
CommitDate: Fri Sep 18 18:23:26 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f7218d09

x11-drivers/nvidia-drivers: fix missing dep (/usr/lib64/libnvidia-gtk3.so.355.11 links to /usr/lib64/libcairo.so.2) and pax patch wrt bug #557128

Package-Manager: portage-2.2.20.1

 .../files/nvidia-drivers-355.06-pax.patch          | 102 +++++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-355.11.ebuild    |   4 +-
 2 files changed, 104 insertions(+), 2 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-355.06-pax.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-355.06-pax.patch
new file mode 100644
index 0000000..cc5ebdf
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-355.06-pax.patch
@@ -0,0 +1,102 @@
+diff -urp NVIDIA-Linux-x86_64-355.06.orig/kernel/common/inc/nv-linux.h NVIDIA-Linux-x86_64-355.06/kernel/common/inc/nv-linux.h
+--- NVIDIA-Linux-x86_64-355.06.orig/kernel/common/inc/nv-linux.h	2015-07-29 05:13:57.000000000 +0200
++++ NVIDIA-Linux-x86_64-355.06/kernel/common/inc/nv-linux.h	2015-08-21 16:45:55.624336728 +0200
+@@ -1408,11 +1408,11 @@ extern void *nvidia_stack_t_cache;
+ 
+ #if !defined(NV_VMWARE)
+ #if (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 5)
+-#define NV_KMEM_CACHE_CREATE(name, type)    \
+-    kmem_cache_create(name, sizeof(type), 0, 0, NULL)
++#define NV_KMEM_CACHE_CREATE(name, type, flags)    \
++    kmem_cache_create(name, sizeof(type), 0, flags, NULL)
+ #else
+-#define NV_KMEM_CACHE_CREATE(name, type)    \
+-    kmem_cache_create(name, sizeof(type), 0, 0, NULL, \
++#define NV_KMEM_CACHE_CREATE(name, type, flags)    \
++    kmem_cache_create(name, sizeof(type), 0, flags, NULL, \
+                       NULL)
+ #endif
+ #define NV_KMEM_CACHE_DESTROY(kmem_cache)   \
+diff -urp NVIDIA-Linux-x86_64-355.06.orig/kernel/nvidia/nv.c NVIDIA-Linux-x86_64-355.06/kernel/nvidia/nv.c
+--- NVIDIA-Linux-x86_64-355.06.orig/kernel/nvidia/nv.c	2015-07-29 05:13:57.000000000 +0200
++++ NVIDIA-Linux-x86_64-355.06/kernel/nvidia/nv.c	2015-08-21 16:44:51.008340178 +0200
+@@ -719,7 +719,7 @@ int __init nvidia_init_module(void)
+ #endif
+ 
+     nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE(nvidia_stack_cache_name,
+-                                                nvidia_stack_t);
++                                                nvidia_stack_t, SLAB_USERCOPY);
+     if (nvidia_stack_t_cache == NULL)
+     {
+         nv_printf(NV_DBG_ERRORS, "NVRM: stack cache allocation failed!\n");
+@@ -861,7 +861,7 @@ int __init nvidia_init_module(void)
+     nv_state_init_gpu_uuid_cache(nv);
+ 
+     nvidia_pte_t_cache = NV_KMEM_CACHE_CREATE(nvidia_pte_cache_name,
+-                                              nvidia_pte_t);
++                                              nvidia_pte_t, 0);
+     if (nvidia_pte_t_cache == NULL)
+     {
+         rc = -ENOMEM;
+@@ -872,7 +872,7 @@ int __init nvidia_init_module(void)
+     if (!nv_multiple_kernel_modules)
+     {
+         nvidia_p2p_page_t_cache = NV_KMEM_CACHE_CREATE(nvidia_p2p_page_cache_name,
+-                                                       nvidia_p2p_page_t);
++                                                       nvidia_p2p_page_t, 0);
+         if (nvidia_p2p_page_t_cache == NULL)
+         {
+             rc = -ENOMEM;
+diff -urp NVIDIA-Linux-x86_64-355.06.orig/kernel/nvidia/nv-mmap.c NVIDIA-Linux-x86_64-355.06/kernel/nvidia/nv-mmap.c
+--- NVIDIA-Linux-x86_64-355.06.orig/kernel/nvidia/nv-mmap.c	2015-07-29 05:13:57.000000000 +0200
++++ NVIDIA-Linux-x86_64-355.06/kernel/nvidia/nv-mmap.c	2015-08-21 16:58:15.968297199 +0200
+@@ -113,12 +113,12 @@ nvidia_vma_release(struct vm_area_struct
+ }
+ 
+ #if defined(NV_VM_OPERATIONS_STRUCT_HAS_ACCESS)
+-static int
++static ssize_t
+ nvidia_vma_access(
+     struct vm_area_struct *vma,
+     unsigned long addr,
+     void *buffer,
+-    int length,
++    size_t length,
+     int write
+ )
+ {
+diff -urp NVIDIA-Linux-x86_64-355.06.orig/kernel/nvidia-uvm/uvm_common.c NVIDIA-Linux-x86_64-355.06/kernel/nvidia-uvm/uvm_common.c
+--- NVIDIA-Linux-x86_64-355.06.orig/kernel/nvidia-uvm/uvm_common.c	2015-07-29 05:10:08.000000000 +0200
++++ NVIDIA-Linux-x86_64-355.06/kernel/nvidia-uvm/uvm_common.c	2015-08-21 17:00:33.788289841 +0200
+@@ -60,7 +60,7 @@ static void uvmnext_exit(void)
+ {
+ 
+ }
+-static NV_STATUS uvmnext_isr_top_half(void)
++static NV_STATUS uvmnext_isr_top_half(UvmGpuUuid *gpuUuidStruct)
+ {
+     return NV_ERR_NO_INTR_PENDING;
+ }
+@@ -79,7 +79,6 @@ NvBool uvmnext_activated(void)
+ #endif // NVIDIA_UVM_NEXT_ENABLED
+ 
+ static dev_t g_uvmBaseDev;
+-struct UvmOpsUvmEvents g_exportedUvmOps;
+ 
+ // TODO: This would be easier if RM allowed for multiple registrations, since we
+ //       could register UVM-Lite and UVM-Next separately (bug 1372835).
+@@ -112,9 +111,11 @@ static NV_STATUS uvmSetupGpuProvider(voi
+     NV_STATUS status = NV_OK;
+ 
+ #ifdef NVIDIA_UVM_RM_ENABLED
+-    g_exportedUvmOps.startDevice = uvm_gpu_event_start_device;
+-    g_exportedUvmOps.stopDevice  = uvm_gpu_event_stop_device;
+-    g_exportedUvmOps.isrTopHalf  = uvmnext_isr_top_half;
++    static struct UvmOpsUvmEvents g_exportedUvmOps = {
++        .startDevice = uvm_gpu_event_start_device,
++        .stopDevice  = uvm_gpu_event_stop_device,
++        .isrTopHalf  = uvmnext_isr_top_half,
++    };
+ 
+     // call RM to exchange the function pointers.
+     status = nvUvmInterfaceRegisterUvmCallbacks(&g_exportedUvmOps);

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-355.11.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-355.11.ebuild
index 102dce3..8fb9df0 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-355.11.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-355.11.ebuild
@@ -35,6 +35,7 @@ REQUIRED_USE="
 
 COMMON="
 	app-eselect/eselect-opencl
+	gtk3? ( x11-libs/cairo )
 	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
 	X? (
 		>=app-eselect/eselect-opengl-1.0.9
@@ -168,8 +169,7 @@ src_prepare() {
 		ewarn "Using PAX patches is not supported. You will be asked to"
 		ewarn "use a standard kernel should you have issues. Should you"
 		ewarn "need support with these patches, contact the PaX team."
-		epatch "${FILESDIR}"/${PN}-346.16-pax-usercopy.patch
-		epatch "${FILESDIR}"/${PN}-346.16-pax-constify.patch
+		epatch "${FILESDIR}"/${PN}-355.06-pax.patch
 	fi
 
 	# Allow user patches so they can support RC kernels and whatever else


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2015-09-20 21:29 Richard Farina
  0 siblings, 0 replies; 46+ messages in thread
From: Richard Farina @ 2015-09-20 21:29 UTC (permalink / raw
  To: gentoo-commits

commit:     141cf0e0d51fe3147064ac4721f255055345044e
Author:     Zero_Chaos <zerochaos <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 20 21:29:04 2015 +0000
Commit:     Richard Farina <zerochaos <AT> gentoo <DOT> org>
CommitDate: Sun Sep 20 21:29:38 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=141cf0e0

x11-drivers/nvidia-drivers: fix bug #454740, version bump due to file change but keeping keywords due to only minor script change

 x11-drivers/nvidia-drivers/files/nvidia-udev.sh-r1 |  20 +
 .../nvidia-drivers/nvidia-drivers-355.11-r1.ebuild | 500 +++++++++++++++++++++
 2 files changed, 520 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-udev.sh-r1 b/x11-drivers/nvidia-drivers/files/nvidia-udev.sh-r1
new file mode 100644
index 0000000..6579bf7
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-udev.sh-r1
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+if [ $# -ne 1 ]; then
+	echo "Invalid args" >&2
+	exit 1
+fi
+
+case $1 in
+	add|ADD)
+		#hopefully this prevents infinite loops like bug #454740
+		if lsmod | grep -iq nvidia; then
+			/opt/bin/nvidia-smi > /dev/null
+		fi
+		;;
+	remove|REMOVE)
+		rm -f /dev/nvidia*
+		;;
+esac
+
+exit 0

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-355.11-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-355.11-r1.ebuild
new file mode 100644
index 0000000..cce80a2
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-355.11-r1.ebuild
@@ -0,0 +1,500 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
+	portability toolchain-funcs unpacker user udev
+
+NV_URI="http://us.download.nvidia.com/XFree86/"
+X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
+X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
+AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="http://www.nvidia.com/"
+SRC_URI="
+	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
+	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
+	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
+	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
+"
+
+LICENSE="GPL-2 NVIDIA-r2"
+SLOT="0"
+KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
+RESTRICT="bindist mirror strip"
+EMULTILIB_PKG="true"
+
+IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel +tools gtk2 gtk3 +X uvm"
+REQUIRED_USE="
+	tools? ( X || ( gtk2 gtk3 ) )
+"
+
+COMMON="
+	app-eselect/eselect-opencl
+	gtk3? ( x11-libs/cairo )
+	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
+	X? (
+		>=app-eselect/eselect-opengl-1.0.9
+	)
+"
+DEPEND="
+	${COMMON}
+	app-arch/xz-utils
+	kernel_linux? ( virtual/linux-sources )
+"
+RDEPEND="
+	${COMMON}
+	acpi? ( sys-power/acpid )
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		x11-libs/gdk-pixbuf
+		gtk2? ( >=x11-libs/gtk+-2.4:2 )
+		gtk3? ( x11-libs/gtk+:3 )
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/pango[X]
+	)
+	X? (
+		<x11-base/xorg-server-1.17.99:=
+		>=x11-libs/libvdpau-0.3-r1
+		multilib? (
+			>=x11-libs/libX11-1.6.2[abi_x86_32]
+			>=x11-libs/libXext-1.3.2[abi_x86_32]
+		)
+	)
+"
+
+QA_PREBUILT="opt/* usr/lib*"
+
+S=${WORKDIR}/
+
+pkg_pretend() {
+	if use amd64 && has_multilib_profile && \
+		[ "${DEFAULT_ABI}" != "amd64" ]; then
+		eerror "This ebuild doesn't currently support changing your default ABI"
+		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
+	fi
+
+	if use kernel_linux && kernel_is ge 4 3; then
+		ewarn "Gentoo supports kernels which are supported by NVIDIA"
+		ewarn "which are limited to the following kernels:"
+		ewarn "<sys-kernel/gentoo-sources-4.3"
+		ewarn "<sys-kernel/vanilla-sources-4.3"
+		ewarn ""
+		ewarn "You are free to utilize epatch_user to provide whatever"
+		ewarn "support you feel is appropriate, but will not receive"
+		ewarn "support as a result of those changes."
+		ewarn ""
+		ewarn "Do not file a bug report about this."
+	fi
+
+	# Since Nvidia ships 3 different series of drivers, we need to give the user
+	# some kind of guidance as to what version they should install. This tries
+	# to point the user in the right direction but can't be perfect. check
+	# nvidia-driver.eclass
+	nvidia-driver-check-warning
+
+	# Kernel features/options to check for
+	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
+	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
+
+	# Now do the above checks
+	use kernel_linux && check_extra_config
+}
+
+pkg_setup() {
+	# try to turn off distcc and ccache for people that have a problem with it
+	export DISTCC_DISABLE=1
+	export CCACHE_DISABLE=1
+
+	if use kernel_linux; then
+		MODULE_NAMES="nvidia(video:${S}/kernel)"
+		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
+
+		# This needs to run after MODULE_NAMES (so that the eclass checks
+		# whether the kernel supports loadable modules) but before BUILD_PARAMS
+		# is set (so that KV_DIR is populated).
+		linux-mod_pkg_setup
+
+		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
+		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
+
+		# linux-mod_src_compile calls set_arch_to_kernel, which
+		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
+		# expects x86_64 or i386 and then converts it to x86
+		# later on in the build process
+		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
+	fi
+
+	# set variables to where files are in the package structure
+	if use kernel_FreeBSD; then
+		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
+		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
+		NV_DOC="${S}/doc"
+		NV_OBJ="${S}/obj"
+		NV_SRC="${S}/src"
+		NV_MAN="${S}/x11/man"
+		NV_X11="${S}/obj"
+		NV_SOVER=1
+	elif use kernel_linux; then
+		NV_DOC="${S}"
+		NV_OBJ="${S}"
+		NV_SRC="${S}/kernel"
+		NV_MAN="${S}"
+		NV_X11="${S}"
+		NV_SOVER=${PV}
+	else
+		die "Could not determine proper NVIDIA package"
+	fi
+}
+
+src_prepare() {
+	# Please add a brief description for every added patch
+
+	if use kernel_linux; then
+		if kernel_is lt 2 6 9; then
+			eerror "You must build this against 2.6.9 or higher kernels."
+		fi
+
+		# If greater than 2.6.5 use M= instead of SUBDIR=
+#		convert_to_m "${NV_SRC}"/Makefile.kbuild
+	fi
+
+	if use pax_kernel; then
+		ewarn "Using PAX patches is not supported. You will be asked to"
+		ewarn "use a standard kernel should you have issues. Should you"
+		ewarn "need support with these patches, contact the PaX team."
+		epatch "${FILESDIR}"/${PN}-355.06-pax.patch
+	fi
+
+	# Allow user patches so they can support RC kernels and whatever else
+	epatch_user
+}
+
+src_compile() {
+	# This is already the default on Linux, as there's no toplevel Makefile, but
+	# on FreeBSD there's one and triggers the kernel module build, as we install
+	# it by itself, pass this.
+
+	cd "${NV_SRC}"
+	if use kernel_FreeBSD; then
+		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
+			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
+	elif use kernel_linux; then
+		MAKEOPTS=-j1
+		linux-mod_src_compile
+	fi
+}
+
+# Install nvidia library:
+# the first parameter is the library to install
+# the second parameter is the provided soversion
+# the third parameter is the target directory if it is not /usr/lib
+donvidia() {
+	# Full path to library minus SOVER
+	MY_LIB="$1"
+
+	# SOVER to use
+	MY_SOVER="$2"
+
+	# Where to install
+	MY_DEST="$3"
+
+	if [[ -z "${MY_DEST}" ]]; then
+		MY_DEST="/usr/$(get_libdir)"
+		action="dolib.so"
+	else
+		exeinto ${MY_DEST}
+		action="doexe"
+	fi
+
+	# Get just the library name
+	libname=$(basename $1)
+
+	# Install the library with the correct SOVER
+	${action} ${MY_LIB}.${MY_SOVER} || \
+		die "failed to install ${libname}"
+
+	# If SOVER wasn't 1, then we need to create a .1 symlink
+	if [[ "${MY_SOVER}" != "1" ]]; then
+		dosym ${libname}.${MY_SOVER} \
+			${MY_DEST}/${libname}.1 || \
+			die "failed to create ${libname} symlink"
+	fi
+
+	# Always create the symlink from the raw lib to the .1
+	dosym ${libname}.1 \
+		${MY_DEST}/${libname} || \
+		die "failed to create ${libname} symlink"
+}
+
+src_install() {
+	if use kernel_linux; then
+		linux-mod_src_install
+
+		# Add the aliases
+		# This file is tweaked with the appropriate video group in
+		# pkg_preinst, see bug #491414
+		insinto /etc/modprobe.d
+		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
+		use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
+
+		# Ensures that our device nodes are created when not using X
+		exeinto "$(get_udevdir)"
+		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
+		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
+	elif use kernel_FreeBSD; then
+		if use x86-fbsd; then
+			insinto /boot/modules
+			doins "${S}/src/nvidia.kld"
+		fi
+
+		exeinto /boot/modules
+		doexe "${S}/src/nvidia.ko"
+	fi
+
+	# NVIDIA kernel <-> userspace driver config lib
+	donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
+
+	# NVIDIA framebuffer capture library
+	donvidia ${NV_OBJ}/libnvidia-fbc.so ${NV_SOVER}
+
+	# NVIDIA video encode/decode <-> CUDA
+	if use kernel_linux; then
+		donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
+		donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
+	fi
+
+	if use X; then
+		# Xorg DDX driver
+		insinto /usr/$(get_libdir)/xorg/modules/drivers
+		doins ${NV_X11}/nvidia_drv.so
+
+		# Xorg GLX driver
+		donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
+			/usr/$(get_libdir)/opengl/nvidia/extensions
+
+		# Xorg nvidia.conf
+		if has_version '>=x11-base/xorg-server-1.16'; then
+			insinto /usr/share/X11/xorg.conf.d
+			newins {,50-}nvidia-drm-outputclass.conf
+		fi
+	fi
+
+	# OpenCL ICD for NVIDIA
+	if use kernel_linux; then
+		insinto /etc/OpenCL/vendors
+		doins ${NV_OBJ}/nvidia.icd
+	fi
+
+	# Documentation
+	dohtml ${NV_DOC}/html/*
+	if use kernel_FreeBSD; then
+		dodoc "${NV_DOC}/README"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1"
+		use tools && doman "${NV_MAN}/nvidia-settings.1"
+	else
+		# Docs
+		newdoc "${NV_DOC}/README.txt" README
+		dodoc "${NV_DOC}/NVIDIA_Changelog"
+		doman "${NV_MAN}/nvidia-smi.1.gz"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
+		use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
+		doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
+	fi
+
+	# Helper Apps
+	exeinto /opt/bin/
+
+	if use X; then
+		doexe ${NV_OBJ}/nvidia-xconfig
+	fi
+
+	if use kernel_linux; then
+		doexe ${NV_OBJ}/nvidia-cuda-mps-control
+		doexe ${NV_OBJ}/nvidia-cuda-mps-server
+		doexe ${NV_OBJ}/nvidia-debugdump
+		doexe ${NV_OBJ}/nvidia-persistenced
+		doexe ${NV_OBJ}/nvidia-smi
+
+		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
+		doexe ${NV_OBJ}/nvidia-modprobe
+		fowners root:video /opt/bin/nvidia-modprobe
+		fperms 4710 /opt/bin/nvidia-modprobe
+		dosym /{opt,usr}/bin/nvidia-modprobe
+
+		doman nvidia-cuda-mps-control.1.gz
+		doman nvidia-modprobe.1.gz
+		doman nvidia-persistenced.1.gz
+		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
+		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
+		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
+	fi
+
+	if use tools; then
+		doexe ${NV_OBJ}/nvidia-settings
+		use gtk2 && donvidia libnvidia-gtk2.so ${PV}
+		use gtk3 && donvidia libnvidia-gtk3.so ${PV}
+		insinto /usr/share/nvidia/
+		doins nvidia-application-profiles-${PV}-key-documentation
+		insinto /etc/nvidia
+		newins nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
+	fi
+
+	dobin ${NV_OBJ}/nvidia-bug-report.sh
+
+	# Desktop entries for nvidia-settings
+	if use tools; then
+		# There is no icon in the FreeBSD tarball.
+		use kernel_FreeBSD || newicon ${NV_OBJ}/nvidia-settings.png ${PN}-settings.png
+		domenu "${FILESDIR}"/${PN}-settings.desktop
+		exeinto /etc/X11/xinit/xinitrc.d
+		doexe "${FILESDIR}"/95-nvidia-settings
+	fi
+
+	#doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
+
+	if has_multilib_profile && use multilib; then
+		local OABI=${ABI}
+		for ABI in $(get_install_abis); do
+			src_install-libs
+		done
+		ABI=${OABI}
+		unset OABI
+	else
+		src_install-libs
+	fi
+
+	is_final_abi || die "failed to iterate through all ABIs"
+
+	readme.gentoo_create_doc
+}
+
+src_install-libs() {
+	local inslibdir=$(get_libdir)
+	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
+	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
+	local libdir=${NV_OBJ}
+
+	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
+		libdir=${NV_OBJ}/32
+	fi
+
+	if use X; then
+		NV_GLX_LIBRARIES=(
+			"libEGL.so 1 ${GL_ROOT}"
+			"libEGL_nvidia.so 0 ${GL_ROOT}"
+			"libGL.so ${NV_SOVER} ${GL_ROOT}"
+			"libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}"
+			"libGLdispatch.so 0 ${GL_ROOT}"
+			"libOpenCL.so 1.0.0 ${CL_ROOT}"
+			"libOpenGL.so 0 ${GL_ROOT}"
+			"libcuda.so ${NV_SOVER}"
+			"libnvcuvid.so ${NV_SOVER}"
+			"libnvidia-compiler.so ${NV_SOVER}"
+			"libnvidia-eglcore.so ${NV_SOVER}"
+			"libnvidia-encode.so ${NV_SOVER}"
+			"libnvidia-fbc.so ${NV_SOVER}"
+			"libnvidia-glcore.so ${NV_SOVER}"
+			"libnvidia-glsi.so ${NV_SOVER}"
+			"libnvidia-ifr.so ${NV_SOVER}"
+			"libnvidia-opencl.so ${NV_SOVER}"
+			"libvdpau.so ${NV_SOVER} ${GL_ROOT}"
+			"libvdpau_nvidia.so ${NV_SOVER}"
+			"libvdpau_trace.so ${NV_SOVER} ${GL_ROOT}"
+		)
+		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=( "libnvidia-wfb.so ${NV_SOVER}" )
+		fi
+
+		if use kernel_FreeBSD; then
+			NV_GLX_LIBRARIES+=( "libnvidia-tls.so ${NV_SOVER}" )
+		fi
+
+		if use kernel_linux; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-ml.so ${NV_SOVER}"
+				"tls/libnvidia-tls.so ${NV_SOVER}"
+			)
+		fi
+
+		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
+			donvidia ${libdir}/${NV_LIB}
+		done
+
+		# GLES v2 library is special
+		insinto ${GL_ROOT}
+		doexe ${libdir}/libGLESv2.so.${PV}
+		dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
+		dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
+	fi
+}
+
+pkg_preinst() {
+	if use kernel_linux; then
+		linux-mod_pkg_preinst
+
+		local videogroup="$(egetent group video | cut -d ':' -f 3)"
+		if [ -z "${videogroup}" ]; then
+			eerror "Failed to determine the video group gid"
+			die "Failed to determine the video group gid"
+		else
+			sed -i \
+				-e "s:PACKAGE:${PF}:g" \
+				-e "s:VIDEOGID:${videogroup}:" \
+				"${D}"/etc/modprobe.d/nvidia.conf || die
+		fi
+	fi
+
+	# Clean the dynamic libGL stuff's home to ensure
+	# we dont have stale libs floating around
+	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
+		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
+	fi
+	# Make sure we nuke the old nvidia-glx's env.d file
+	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
+		rm -f "${ROOT}"/etc/env.d/09nvidia
+	fi
+}
+
+pkg_postinst() {
+	use kernel_linux && linux-mod_pkg_postinst
+
+	# Switch to the nvidia implementation
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
+	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
+
+	readme.gentoo_print_elog
+
+	if ! use X; then
+		elog "You have elected to not install the X.org driver. Along with"
+		elog "this the OpenGL libraries and VDPAU libraries were not"
+		elog "installed. Additionally, once the driver is loaded your card"
+		elog "and fan will run at max speed which may not be desirable."
+		elog "Use the 'nvidia-smi' init script to have your card and fan"
+		elog "speed scale appropriately."
+		elog
+	fi
+	if ! use tools; then
+		elog "USE=tools controls whether the nvidia-settings application"
+		elog "is installed. If you would like to use it, enable that"
+		elog "flag and re-emerge this ebuild. Optionally you can install"
+		elog "media-video/nvidia-settings"
+		elog
+	fi
+}
+
+pkg_prerm() {
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}
+
+pkg_postrm() {
+	use kernel_linux && linux-mod_pkg_postrm
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2016-03-24  5:05 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2016-03-24  5:05 UTC (permalink / raw
  To: gentoo-commits

commit:     499a44e081d16f81575f09d7e5658ec24c0fe0aa
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 24 05:05:31 2016 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Thu Mar 24 05:05:31 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=499a44e0

x11-drivers/nvidia-drivers: Update PaX patch on behalf of the Hardened team (bug #571662).

Package-Manager: portage-2.2.28

 .../files/nvidia-drivers-361.28-pax.patch          | 351 +++++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-361.28-r2.ebuild |   2 +-
 .../nvidia-drivers/nvidia-drivers-361.28.ebuild    |   2 +-
 .../nvidia-drivers/nvidia-drivers-364.12.ebuild    |   2 +-
 4 files changed, 354 insertions(+), 3 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-361.28-pax.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-361.28-pax.patch
new file mode 100644
index 0000000..09e4384
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-361.28-pax.patch
@@ -0,0 +1,351 @@
+diff -urp work.orig/kernel/common/inc/nv-linux.h work/kernel/common/inc/nv-linux.h
+--- work.orig/kernel/common/inc/nv-linux.h	2016-02-03 23:31:51.000000000 +0100
++++ work/kernel/common/inc/nv-linux.h	2016-02-10 11:49:15.309410457 +0100
+@@ -1351,6 +1351,9 @@ extern void *nvidia_stack_t_cache;
+ #define NV_KMEM_CACHE_CREATE(name, type)    \
+     NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, 0, NULL)
+ 
++#define NV_KMEM_CACHE_CREATE_USERCOPY(name, type)    \
++    NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, SLAB_USERCOPY, NULL)
++
+ #define NV_KMEM_CACHE_DESTROY(kmem_cache)   \
+     kmem_cache_destroy(kmem_cache)
+ 
+diff -urp work.orig/kernel/common/inc/nv-modeset-interface.h work/kernel/common/inc/nv-modeset-interface.h
+--- work.orig/kernel/common/inc/nv-modeset-interface.h	2016-02-03 23:31:51.000000000 +0100
++++ work/kernel/common/inc/nv-modeset-interface.h	2016-02-10 11:49:54.970985152 +0100
+@@ -70,7 +70,7 @@ typedef struct {
+      * mix nvidia and nvidia-modeset kernel modules from different
+      * releases.
+      */
+-    const char *version_string;
++//    const char *version_string;
+ 
+     /*
+      * Allocate and free an nvidia_stack_t to pass into
+@@ -104,6 +104,6 @@ typedef struct {
+ 
+ } nvidia_modeset_rm_ops_t;
+ 
+-NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops);
++NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string);
+ 
+ #endif /* _NV_MODESET_INTERFACE_H_ */
+diff -urp work.orig/kernel/common/inc/nv-register-module.h work/kernel/common/inc/nv-register-module.h
+--- work.orig/kernel/common/inc/nv-register-module.h	2016-02-03 23:31:51.000000000 +0100
++++ work/kernel/common/inc/nv-register-module.h	2016-02-10 11:50:18.941376865 +0100
+@@ -34,7 +34,7 @@ typedef struct nvidia_module_s {
+     int (*ioctl)(struct inode *, struct file * file, unsigned int cmd, unsigned long arg);
+     unsigned int (*poll)(struct file * file, poll_table *wait);
+ 
+-} nvidia_module_t;
++} __do_const nvidia_module_t;
+ 
+ int nvidia_register_module(nvidia_module_t *);
+ int nvidia_unregister_module(nvidia_module_t *);
+diff -urp work.orig/kernel/nvidia/nv.c work/kernel/nvidia/nv.c
+--- work.orig/kernel/nvidia/nv.c	2016-02-03 23:31:51.000000000 +0100
++++ work/kernel/nvidia/nv.c	2016-02-10 11:50:40.191828792 +0100
+@@ -704,7 +704,7 @@ int __init nvidia_init_module(void)
+     NV_SPIN_LOCK_INIT(&km_lock);
+ #endif
+ 
+-    nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE(nvidia_stack_cache_name,
++    nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE_USERCOPY(nvidia_stack_cache_name,
+                                                 nvidia_stack_t);
+     if (nvidia_stack_t_cache == NULL)
+     {
+diff -urp work.orig/kernel/nvidia/nv-chrdev.c work/kernel/nvidia/nv-chrdev.c
+--- work.orig/kernel/nvidia/nv-chrdev.c	2016-02-03 23:31:51.000000000 +0100
++++ work/kernel/nvidia/nv-chrdev.c	2016-02-10 11:50:57.201126955 +0100
+@@ -20,8 +20,6 @@ int nv_register_chrdev(void *param)
+ {
+     nvidia_module_t *module = (nvidia_module_t *)param;
+ 
+-    module->instance = nv_module_instance;
+-
+     return (nvidia_register_module(module));
+ }
+ 
+diff -urp work.orig/kernel/nvidia/nv-instance.c work/kernel/nvidia/nv-instance.c
+--- work.orig/kernel/nvidia/nv-instance.c	2016-02-03 23:31:51.000000000 +0100
++++ work/kernel/nvidia/nv-instance.c	2016-02-10 11:51:35.418977554 +0100
+@@ -54,6 +54,7 @@ struct pci_driver nv_pci_driver = {
+ nvidia_module_t nv_fops = {
+     .owner       = THIS_MODULE,
+     .module_name = MODULE_NAME,
++    .instance    = MODULE_INSTANCE_NUMBER,
+     .open        = nvidia_open,
+     .close       = nvidia_close,
+     .ioctl       = nvidia_ioctl,
+diff -urp work.orig/kernel/nvidia/nv-mmap.c work/kernel/nvidia/nv-mmap.c
+--- work.orig/kernel/nvidia/nv-mmap.c	2016-02-03 23:31:51.000000000 +0100
++++ work/kernel/nvidia/nv-mmap.c	2016-02-10 11:14:27.996577127 +0100
+@@ -113,12 +113,12 @@ nvidia_vma_release(struct vm_area_struct
+ }
+ 
+ #if defined(NV_VM_OPERATIONS_STRUCT_HAS_ACCESS)
+-static int
++static ssize_t
+ nvidia_vma_access(
+     struct vm_area_struct *vma,
+     unsigned long addr,
+     void *buffer,
+-    int length,
++    size_t length,
+     int write
+ )
+ {
+diff -urp work.orig/kernel/nvidia/nv-modeset-interface.c work/kernel/nvidia/nv-modeset-interface.c
+--- work.orig/kernel/nvidia/nv-modeset-interface.c	2016-02-03 23:31:51.000000000 +0100
++++ work/kernel/nvidia/nv-modeset-interface.c	2016-02-10 12:05:23.822391866 +0100
+@@ -59,10 +59,9 @@ void nvidia_modeset_resume(NvU32 gpuId)
+     }
+ }
+ 
+-NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops)
++NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string)
+ {
+-    const nvidia_modeset_rm_ops_t local_rm_ops = {
+-        .version_string = NV_VERSION_STRING,
++    static const nvidia_modeset_rm_ops_t local_rm_ops = {
+         .alloc_stack    = nvidia_modeset_rm_ops_alloc_stack,
+         .free_stack     = nvidia_modeset_rm_ops_free_stack,
+         .get_gpuid_list = nvidia_get_gpuid_list,
+@@ -72,13 +71,13 @@ NV_STATUS nvidia_get_rm_ops(nvidia_modes
+         .set_callbacks  = nvidia_modeset_set_callbacks,
+     };
+ 
+-    if (strcmp(rm_ops->version_string, NV_VERSION_STRING) != 0)
++    if (strcmp(*version_string, NV_VERSION_STRING) != 0)
+     {
+-        rm_ops->version_string = NV_VERSION_STRING;
++        *version_string = NV_VERSION_STRING;
+         return NV_ERR_GENERIC;
+     }
+ 
+-    *rm_ops = local_rm_ops;
++    *rm_ops = &local_rm_ops;
+ 
+     return NV_OK;
+ }
+diff -urp work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c work/kernel/nvidia-modeset/nvidia-modeset-linux.c
+--- work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c	2016-02-03 23:32:20.000000000 +0100
++++ work/kernel/nvidia-modeset/nvidia-modeset-linux.c	2016-02-10 12:08:02.275059160 +0100
+@@ -320,49 +320,48 @@ static void nvkms_resume(NvU32 gpuId)
+  * so we can use a single nvidia_modeset_stack_ptr for calling RM.
+  *************************************************************************/
+ 
+-static nvidia_modeset_rm_ops_t __rm_ops = { 0 };
++static const nvidia_modeset_rm_ops_t *__rm_ops;
+ static nvidia_modeset_stack_ptr nvkms_nvidia_stack = NULL;
+ static nvidia_modeset_callbacks_t nvkms_rm_callbacks = {
+-    nvkms_suspend,
+-    nvkms_resume
++    .suspend = nvkms_suspend,
++    .resume = nvkms_resume
+ };
+ 
+ static int nvkms_alloc_rm(void)
+ {
+     NV_STATUS nvstatus;
+     int ret;
++    const char *version_string = NV_VERSION_STRING;
+ 
+-    __rm_ops.version_string = NV_VERSION_STRING;
+-
+-    nvstatus = nvidia_get_rm_ops(&__rm_ops);
++    nvstatus = nvidia_get_rm_ops(&__rm_ops, &version_string);
+ 
+     if (nvstatus != NV_OK) {
+         printk(KERN_ERR NVKMS_LOG_PREFIX "Version mismatch: "
+                "nvidia.ko(%s) nvidia-modeset.ko(%s)\n",
+-               __rm_ops.version_string, NV_VERSION_STRING);
++               version_string, NV_VERSION_STRING);
+         return -EINVAL;
+     }
+ 
+-    ret = __rm_ops.set_callbacks(&nvkms_rm_callbacks);
++    ret = __rm_ops->set_callbacks(&nvkms_rm_callbacks);
+     if (ret < 0) {
+         printk(KERN_ERR NVKMS_LOG_PREFIX "Failed to register callbacks\n");
+         return ret;
+     }
+ 
+-    return __rm_ops.alloc_stack(&nvkms_nvidia_stack);
++    return __rm_ops->alloc_stack(&nvkms_nvidia_stack);
+ }
+ 
+ static void nvkms_free_rm(void)
+ {
+-    __rm_ops.set_callbacks(NULL);
+-    if (__rm_ops.free_stack != NULL) {
+-        __rm_ops.free_stack(nvkms_nvidia_stack);
++    __rm_ops->set_callbacks(NULL);
++    if (__rm_ops->free_stack != NULL) {
++        __rm_ops->free_stack(nvkms_nvidia_stack);
+     }
+ }
+ 
+ void NVKMS_API_CALL nvkms_call_rm(void *ops)
+ {
+-    __rm_ops.op(nvkms_nvidia_stack, ops);
++    __rm_ops->op(nvkms_nvidia_stack, ops);
+ }
+ 
+ /*************************************************************************
+@@ -681,17 +680,17 @@ done:
+ 
+ NvBool NVKMS_API_CALL nvkms_open_gpu(NvU32 gpuId)
+ {
+-    return __rm_ops.open_gpu(gpuId, nvkms_nvidia_stack) == 0;
++    return __rm_ops->open_gpu(gpuId, nvkms_nvidia_stack) == 0;
+ }
+ 
+ void NVKMS_API_CALL nvkms_close_gpu(NvU32 gpuId)
+ {
+-    __rm_ops.close_gpu(gpuId, nvkms_nvidia_stack);
++    __rm_ops->close_gpu(gpuId, nvkms_nvidia_stack);
+ }
+ 
+ NvBool NVKMS_API_CALL nvkms_list_gpus(NvU32 *gpu_ids, NvU32 *gpu_count)
+ {
+-    return __rm_ops.get_gpuid_list(gpu_ids, gpu_count);
++    return __rm_ops->get_gpuid_list(gpu_ids, gpu_count);
+ }
+ 
+ /*************************************************************************
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_channel.c work/kernel/nvidia-uvm/uvm8_channel.c
+--- work.orig/kernel/nvidia-uvm/uvm8_channel.c	2016-02-03 23:32:32.000000000 +0100
++++ work/kernel/nvidia-uvm/uvm8_channel.c	2016-02-10 11:39:16.735603941 +0100
+@@ -268,7 +268,7 @@ void uvm_channel_end_push(uvm_push_t *pu
+     mb();
+ 
+     channel->cpu_put = new_cpu_put;
+-    ACCESS_ONCE(*channel->channel_info.GPPut) = new_cpu_put;
++    ACCESS_ONCE_RW(*channel->channel_info.GPPut) = new_cpu_put;
+ 
+     uvm_spin_unlock(&channel->pool->lock);
+ 
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_global.c work/kernel/nvidia-uvm/uvm8_global.c
+--- work.orig/kernel/nvidia-uvm/uvm8_global.c	2016-02-03 23:32:32.000000000 +0100
++++ work/kernel/nvidia-uvm/uvm8_global.c	2016-02-10 11:28:23.142115625 +0100
+@@ -32,16 +32,16 @@
+ #include "nv_uvm_interface.h"
+ 
+ uvm_global_t g_uvm_global;
+-static struct UvmOpsUvmEvents g_exported_uvm8_ops;
++static struct UvmOpsUvmEvents g_exported_uvm8_ops = {
++    .startDevice = NULL,
++    .stopDevice  = NULL,
++    .isrTopHalf  = uvm8_isr_top_half,
++};
+ 
+ static NV_STATUS uvm8_register_callbacks(void)
+ {
+     NV_STATUS status = NV_OK;
+ 
+-    g_exported_uvm8_ops.startDevice = NULL;
+-    g_exported_uvm8_ops.stopDevice  = NULL;
+-    g_exported_uvm8_ops.isrTopHalf  = uvm8_isr_top_half;
+-
+     // Register the UVM callbacks with the main GPU driver:
+     status = uvm_rm_locked_call(nvUvmInterfaceRegisterUvmCallbacks(&g_exported_uvm8_ops));
+     return status;
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c
+--- work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c	2016-02-03 23:32:32.000000000 +0100
++++ work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c	2016-02-10 11:38:57.478030852 +0100
+@@ -288,7 +288,7 @@ NvU64 uvm_gpu_semaphore_get_gpu_va(uvm_g
+ 
+ NvU32 uvm_gpu_semaphore_get_payload(uvm_gpu_semaphore_t *semaphore)
+ {
+-    return ACCESS_ONCE(*semaphore->payload);
++    return ACCESS_ONCE_RW(*semaphore->payload);
+ }
+ 
+ void uvm_gpu_semaphore_set_payload(uvm_gpu_semaphore_t *semaphore, NvU32 payload)
+@@ -304,7 +304,7 @@ void uvm_gpu_semaphore_set_payload(uvm_g
+     // being optimized out on non-SMP configs (we need them for interacting with
+     // the GPU correctly even on non-SMP).
+     mb();
+-    ACCESS_ONCE(*semaphore->payload) = payload;
++    ACCESS_ONCE_RW(*semaphore->payload) = payload;
+ }
+ 
+ NV_STATUS uvm_gpu_tracking_semaphore_alloc(uvm_gpu_semaphore_pool_t *pool, uvm_gpu_tracking_semaphore_t *tracking_sem)
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_hal.c work/kernel/nvidia-uvm/uvm8_hal.c
+--- work.orig/kernel/nvidia-uvm/uvm8_hal.c	2016-02-03 23:32:32.000000000 +0100
++++ work/kernel/nvidia-uvm/uvm8_hal.c	2016-02-10 11:47:13.377356162 +0100
+@@ -58,7 +58,7 @@ typedef struct
+         // arch_ops: id is an architecture
+         uvm_arch_hal_t arch_ops;
+     } u;
+-} uvm_hal_class_ops_t;
++} __do_const uvm_hal_class_ops_t;
+ 
+ // Table for copy engine functions.
+ // Each entry is associated with a copy engine class through the 'class' field.
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_mmu.h work/kernel/nvidia-uvm/uvm8_mmu.h
+--- work.orig/kernel/nvidia-uvm/uvm8_mmu.h	2016-02-03 23:32:32.000000000 +0100
++++ work/kernel/nvidia-uvm/uvm8_mmu.h	2016-02-10 12:09:05.463637996 +0100
+@@ -24,7 +24,6 @@
+ #ifndef __UVM8_MMU_H__
+ #define __UVM8_MMU_H__
+ 
+-#include "uvm8_forward_decl.h"
+ #include "uvm8_pmm_gpu.h"
+ #include "uvmtypes.h"
+ #include "uvm_common.h"
+diff -urp work.orig/kernel/nvidia-uvm/uvm_common.c work/kernel/nvidia-uvm/uvm_common.c
+--- work.orig/kernel/nvidia-uvm/uvm_common.c	2016-02-03 23:32:32.000000000 +0100
++++ work/kernel/nvidia-uvm/uvm_common.c	2016-02-10 11:45:58.008501609 +0100
+@@ -74,7 +74,6 @@ static int uvmnext_activated(void)
+ #endif
+ 
+ static dev_t g_uvmBaseDev;
+-struct UvmOpsUvmEvents g_exportedUvmOps;
+ 
+ static char* uvm_driver_mode = "lite";
+ 
+@@ -198,12 +197,17 @@ static NV_STATUS uvmSetupGpuProvider(voi
+ {
+     NV_STATUS status = NV_OK;
+ 
+-    g_exportedUvmOps.startDevice = uvm_gpu_event_start_device;
+-    g_exportedUvmOps.stopDevice  = uvm_gpu_event_stop_device;
++    static struct UvmOpsUvmEvents g_exportedUvmOps = {
++        .startDevice = uvm_gpu_event_start_device,
++        .stopDevice  = uvm_gpu_event_stop_device,
++    };
++
++    pax_open_kernel();
+     if (uvmnext_activated())
+-        g_exportedUvmOps.isrTopHalf = uvmnext_isr_top_half;
++        *(void **)&g_exportedUvmOps.isrTopHalf = uvmnext_isr_top_half;
+     else if (uvmfull_activated())
+-        g_exportedUvmOps.isrTopHalf = uvmfull_isr_top_half;
++        *(void **)&g_exportedUvmOps.isrTopHalf = uvmfull_isr_top_half;
++    pax_close_kernel();
+ 
+     // call RM to exchange the function pointers.
+     status = nvUvmInterfaceRegisterUvmCallbacks(&g_exportedUvmOps);
+diff -urp work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h work/kernel/nvidia-uvm/uvm_full_fault_buffer.h
+--- work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h	2016-02-03 23:32:32.000000000 +0100
++++ work/kernel/nvidia-uvm/uvm_full_fault_buffer.h	2016-02-10 11:26:28.143422741 +0100
+@@ -31,6 +31,7 @@
+ #define _UVM_FULL_FAULT_BUFFER_H_
+ 
+ #include "uvmtypes.h"
++#include "linux/compiler.h"
+ 
+ #define MAXWELL_FAULT_BUFFER_A (0xb069)
+ #define MEM_RD32(a) (*(const volatile NvU32 *)(a)) 
+@@ -303,7 +304,7 @@ typedef struct
+     NvUvmControlPrefetch_t              controlPrefetch;
+     NvUvmTestFaultBufferOverflow_t      testFaultBufferOverflow;
+     NvUvmClearFaultBufferOverflow_t     clearFaultBufferOverflow;
+-} UvmFaultBufferOps;
++} __no_const UvmFaultBufferOps;
+ 
+ /******************************************************************************
+     uvmfull_fault_buffer_init

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-361.28-r2.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-361.28-r2.ebuild
index a82746c..fabb035 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-361.28-r2.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-361.28-r2.ebuild
@@ -171,7 +171,7 @@ src_prepare() {
 		ewarn "Using PAX patches is not supported. You will be asked to"
 		ewarn "use a standard kernel should you have issues. Should you"
 		ewarn "need support with these patches, contact the PaX team."
-		epatch "${FILESDIR}"/${PN}-355.06-pax.patch
+		epatch "${FILESDIR}"/${PN}-361.28-pax.patch
 	fi
 
 	# Allow user patches so they can support RC kernels and whatever else

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-361.28.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-361.28.ebuild
index 9c6bd52..a7c4f35 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-361.28.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-361.28.ebuild
@@ -171,7 +171,7 @@ src_prepare() {
 		ewarn "Using PAX patches is not supported. You will be asked to"
 		ewarn "use a standard kernel should you have issues. Should you"
 		ewarn "need support with these patches, contact the PaX team."
-		epatch "${FILESDIR}"/${PN}-355.06-pax.patch
+		epatch "${FILESDIR}"/${PN}-361.28-pax.patch
 	fi
 
 	# Allow user patches so they can support RC kernels and whatever else

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-364.12.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-364.12.ebuild
index d1dbf5f..ce64361 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-364.12.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-364.12.ebuild
@@ -172,7 +172,7 @@ src_prepare() {
 		ewarn "Using PAX patches is not supported. You will be asked to"
 		ewarn "use a standard kernel should you have issues. Should you"
 		ewarn "need support with these patches, contact the PaX team."
-		epatch "${FILESDIR}"/${PN}-355.06-pax.patch
+		epatch "${FILESDIR}"/${PN}-361.26-pax.patch
 	fi
 
 	# Allow user patches so they can support RC kernels and whatever else


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2016-03-25  3:30 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2016-03-25  3:30 UTC (permalink / raw
  To: gentoo-commits

commit:     86f03a27b3472a36119caa56cbfba98f498175dd
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 25 03:25:26 2016 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Fri Mar 25 03:25:26 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=86f03a27

x11-drivers/nvidia-drivers: Add 364 PaX patch.

Package-Manager: portage-2.2.28

 .../files/nvidia-drivers-364.12-pax.patch          | 398 +++++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-364.12-r1.ebuild |   2 +-
 2 files changed, 399 insertions(+), 1 deletion(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-364.12-pax.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-364.12-pax.patch
new file mode 100644
index 0000000..18c3162
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-364.12-pax.patch
@@ -0,0 +1,398 @@
+diff -urp work.orig/kernel/common/inc/nv-linux.h work/kernel/common/inc/nv-linux.h
+--- work.orig/kernel/common/inc/nv-linux.h	2016-03-17 03:58:29.000000000 +0100
++++ work/kernel/common/inc/nv-linux.h	2016-03-22 13:51:58.637292065 +0100
+@@ -1307,6 +1307,9 @@ extern void *nvidia_stack_t_cache;
+ #define NV_KMEM_CACHE_CREATE(name, type)    \
+     NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, 0, NULL)
+ 
++#define NV_KMEM_CACHE_CREATE_USERCOPY(name, type)    \
++    NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, SLAB_USERCOPY, NULL)
++
+ #define NV_KMEM_CACHE_DESTROY(kmem_cache)   \
+     kmem_cache_destroy(kmem_cache)
+ 
+diff -urp work.orig/kernel/common/inc/nv-modeset-interface.h work/kernel/common/inc/nv-modeset-interface.h
+--- work.orig/kernel/common/inc/nv-modeset-interface.h	2016-03-17 03:58:29.000000000 +0100
++++ work/kernel/common/inc/nv-modeset-interface.h	2016-03-22 13:51:58.637292065 +0100
+@@ -72,7 +72,7 @@ typedef struct {
+      * mix nvidia and nvidia-modeset kernel modules from different
+      * releases.
+      */
+-    const char *version_string;
++//    const char *version_string;
+ 
+     /*
+      * Allocate and free an nvidia_stack_t to pass into
+@@ -115,6 +115,6 @@ typedef struct {
+ 
+ } nvidia_modeset_rm_ops_t;
+ 
+-NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops);
++NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string);
+ 
+ #endif /* _NV_MODESET_INTERFACE_H_ */
+diff -urp work.orig/kernel/common/inc/nv-register-module.h work/kernel/common/inc/nv-register-module.h
+--- work.orig/kernel/common/inc/nv-register-module.h	2016-03-17 03:58:29.000000000 +0100
++++ work/kernel/common/inc/nv-register-module.h	2016-03-22 13:51:58.637292065 +0100
+@@ -34,7 +34,7 @@ typedef struct nvidia_module_s {
+     int (*ioctl)(struct inode *, struct file * file, unsigned int cmd, unsigned long arg);
+     unsigned int (*poll)(struct file * file, poll_table *wait);
+ 
+-} nvidia_module_t;
++} __do_const nvidia_module_t;
+ 
+ int nvidia_register_module(nvidia_module_t *);
+ int nvidia_unregister_module(nvidia_module_t *);
+diff -urp work.orig/kernel/nvidia/nv.c work/kernel/nvidia/nv.c
+--- work.orig/kernel/nvidia/nv.c	2016-03-17 03:58:29.000000000 +0100
++++ work/kernel/nvidia/nv.c	2016-03-22 13:51:58.637292065 +0100
+@@ -654,7 +654,7 @@ int __init nvidia_init_module(void)
+     NV_SPIN_LOCK_INIT(&km_lock);
+ #endif
+ 
+-    nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE(nvidia_stack_cache_name,
++    nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE_USERCOPY(nvidia_stack_cache_name,
+                                                 nvidia_stack_t);
+     if (nvidia_stack_t_cache == NULL)
+     {
+diff -urp work.orig/kernel/nvidia/nv-chrdev.c work/kernel/nvidia/nv-chrdev.c
+--- work.orig/kernel/nvidia/nv-chrdev.c	2016-03-17 03:58:29.000000000 +0100
++++ work/kernel/nvidia/nv-chrdev.c	2016-03-22 13:51:58.637292065 +0100
+@@ -20,8 +20,6 @@ int nv_register_chrdev(void *param)
+ {
+     nvidia_module_t *module = (nvidia_module_t *)param;
+ 
+-    module->instance = nv_module_instance;
+-
+     return (nvidia_register_module(module));
+ }
+ 
+diff -urp work.orig/kernel/nvidia/nv-instance.c work/kernel/nvidia/nv-instance.c
+--- work.orig/kernel/nvidia/nv-instance.c	2016-03-17 03:58:29.000000000 +0100
++++ work/kernel/nvidia/nv-instance.c	2016-03-22 13:51:58.637292065 +0100
+@@ -51,6 +51,7 @@ struct pci_driver nv_pci_driver = {
+ nvidia_module_t nv_fops = {
+     .owner       = THIS_MODULE,
+     .module_name = MODULE_NAME,
++    .instance    = MODULE_INSTANCE_NUMBER,
+     .open        = nvidia_open,
+     .close       = nvidia_close,
+     .ioctl       = nvidia_ioctl,
+diff -urp work.orig/kernel/nvidia/nv-mmap.c work/kernel/nvidia/nv-mmap.c
+--- work.orig/kernel/nvidia/nv-mmap.c	2016-03-17 03:58:29.000000000 +0100
++++ work/kernel/nvidia/nv-mmap.c	2016-03-22 13:51:58.637292065 +0100
+@@ -113,12 +113,12 @@ nvidia_vma_release(struct vm_area_struct
+ }
+ 
+ #if defined(NV_VM_OPERATIONS_STRUCT_HAS_ACCESS)
+-static int
++static ssize_t
+ nvidia_vma_access(
+     struct vm_area_struct *vma,
+     unsigned long addr,
+     void *buffer,
+-    int length,
++    size_t length,
+     int write
+ )
+ {
+diff -urp work.orig/kernel/nvidia/nv-modeset-interface.c work/kernel/nvidia/nv-modeset-interface.c
+--- work.orig/kernel/nvidia/nv-modeset-interface.c	2016-03-17 03:58:29.000000000 +0100
++++ work/kernel/nvidia/nv-modeset-interface.c	2016-03-22 13:56:37.019870910 +0100
+@@ -100,10 +100,9 @@ static NvU32 nvidia_modeset_enumerate_gp
+     return count;
+ }
+ 
+-NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops)
++NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string)
+ {
+-    const nvidia_modeset_rm_ops_t local_rm_ops = {
+-        .version_string = NV_VERSION_STRING,
++    static const nvidia_modeset_rm_ops_t local_rm_ops = {
+         .alloc_stack    = nvidia_modeset_rm_ops_alloc_stack,
+         .free_stack     = nvidia_modeset_rm_ops_free_stack,
+         .get_gpuid_list = nvidia_get_gpuid_list,
+@@ -114,13 +113,13 @@ NV_STATUS nvidia_get_rm_ops(nvidia_modes
+         .set_callbacks  = nvidia_modeset_set_callbacks,
+     };
+ 
+-    if (strcmp(rm_ops->version_string, NV_VERSION_STRING) != 0)
++    if (strcmp(*version_string, NV_VERSION_STRING) != 0)
+     {
+-        rm_ops->version_string = NV_VERSION_STRING;
++        *version_string = NV_VERSION_STRING;
+         return NV_ERR_GENERIC;
+     }
+ 
+-    *rm_ops = local_rm_ops;
++    *rm_ops = &local_rm_ops;
+ 
+     return NV_OK;
+ }
+diff -urp work.orig/kernel/nvidia-drm/nvidia-drm-drv.c work/kernel/nvidia-drm/nvidia-drm-drv.c
+--- work.orig/kernel/nvidia-drm/nvidia-drm-drv.c	2016-03-17 03:57:24.000000000 +0100
++++ work/kernel/nvidia-drm/nvidia-drm-drv.c	2016-03-22 14:23:07.084230003 +0100
+@@ -586,7 +586,7 @@ static const struct drm_ioctl_desc nv_dr
+                       DRM_CONTROL_ALLOW|DRM_RENDER_ALLOW|DRM_UNLOCKED),
+ };
+ 
+-static struct drm_driver nv_drm_driver = {
++static drm_driver_no_const nv_drm_driver __read_only = {
+ 
+     .driver_features        = DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER,
+ 
+@@ -643,6 +643,7 @@ static void nvidia_update_drm_driver_fea
+         return;
+     }
+ 
++    pax_open_kernel();
+     nv_drm_driver.driver_features |= DRIVER_MODESET | DRIVER_ATOMIC;
+ 
+     nv_drm_driver.master_set       = nvidia_drm_master_set;
+@@ -651,6 +652,7 @@ static void nvidia_update_drm_driver_fea
+     nv_drm_driver.dumb_create      = nvidia_drm_dumb_create;
+     nv_drm_driver.dumb_map_offset  = nvidia_drm_dumb_map_offset;
+     nv_drm_driver.dumb_destroy     = drm_gem_dumb_destroy;
++    pax_close_kernel();
+ 
+ #endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */
+ }
+diff -urp work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c work/kernel/nvidia-modeset/nvidia-modeset-linux.c
+--- work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c	2016-03-17 03:57:25.000000000 +0100
++++ work/kernel/nvidia-modeset/nvidia-modeset-linux.c	2016-03-22 13:55:05.208148788 +0100
+@@ -317,29 +317,28 @@ static void nvkms_resume(NvU32 gpuId)
+  * Interface with resman.
+  *************************************************************************/
+ 
+-static nvidia_modeset_rm_ops_t __rm_ops = { 0 };
++static const nvidia_modeset_rm_ops_t *__rm_ops;
+ static nvidia_modeset_callbacks_t nvkms_rm_callbacks = {
+-    nvkms_suspend,
+-    nvkms_resume
++    .suspend = nvkms_suspend,
++    .resume = nvkms_resume
+ };
+ 
+ static int nvkms_alloc_rm(void)
+ {
+     NV_STATUS nvstatus;
+     int ret;
++    const char *version_string = NV_VERSION_STRING;
+ 
+-    __rm_ops.version_string = NV_VERSION_STRING;
+-
+-    nvstatus = nvidia_get_rm_ops(&__rm_ops);
++    nvstatus = nvidia_get_rm_ops(&__rm_ops, &version_string);
+ 
+     if (nvstatus != NV_OK) {
+         printk(KERN_ERR NVKMS_LOG_PREFIX "Version mismatch: "
+                "nvidia.ko(%s) nvidia-modeset.ko(%s)\n",
+-               __rm_ops.version_string, NV_VERSION_STRING);
++               version_string, NV_VERSION_STRING);
+         return -EINVAL;
+     }
+ 
+-    ret = __rm_ops.set_callbacks(&nvkms_rm_callbacks);
++    ret = __rm_ops->set_callbacks(&nvkms_rm_callbacks);
+     if (ret < 0) {
+         printk(KERN_ERR NVKMS_LOG_PREFIX "Failed to register callbacks\n");
+         return ret;
+@@ -350,20 +349,20 @@ static int nvkms_alloc_rm(void)
+ 
+ static void nvkms_free_rm(void)
+ {
+-    __rm_ops.set_callbacks(NULL);
++    __rm_ops->set_callbacks(NULL);
+ }
+ 
+ void NVKMS_API_CALL nvkms_call_rm(void *ops)
+ {
+     nvidia_modeset_stack_ptr stack = NULL;
+ 
+-    if (__rm_ops.alloc_stack(&stack) != 0) {
++    if (__rm_ops->alloc_stack(&stack) != 0) {
+         return;
+     }
+ 
+-    __rm_ops.op(stack, ops);
++    __rm_ops->op(stack, ops);
+ 
+-    __rm_ops.free_stack(stack);
++    __rm_ops->free_stack(stack);
+ }
+ 
+ /*************************************************************************
+@@ -685,13 +684,13 @@ NvBool NVKMS_API_CALL nvkms_open_gpu(NvU
+     nvidia_modeset_stack_ptr stack = NULL;
+     NvBool ret;
+ 
+-    if (__rm_ops.alloc_stack(&stack) != 0) {
++    if (__rm_ops->alloc_stack(&stack) != 0) {
+         return NV_FALSE;
+     }
+ 
+-    ret = __rm_ops.open_gpu(gpuId, stack) == 0;
++    ret = __rm_ops->open_gpu(gpuId, stack) == 0;
+ 
+-    __rm_ops.free_stack(stack);
++    __rm_ops->free_stack(stack);
+ 
+     return ret;
+ }
+@@ -700,18 +699,18 @@ void NVKMS_API_CALL nvkms_close_gpu(NvU3
+ {
+     nvidia_modeset_stack_ptr stack = NULL;
+ 
+-    if (__rm_ops.alloc_stack(&stack) != 0) {
++    if (__rm_ops->alloc_stack(&stack) != 0) {
+         return;
+     }
+ 
+-    __rm_ops.close_gpu(gpuId, stack);
++    __rm_ops->close_gpu(gpuId, stack);
+ 
+-    __rm_ops.free_stack(stack);
++    __rm_ops->free_stack(stack);
+ }
+ 
+ NvU32 NVKMS_API_CALL nvkms_enumerate_gpus(nv_gpu_info_t *gpu_info)
+ {
+-    return __rm_ops.enumerate_gpus(gpu_info);
++    return __rm_ops->enumerate_gpus(gpu_info);
+ }
+ 
+ /*************************************************************************
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_global.c work/kernel/nvidia-uvm/uvm8_global.c
+--- work.orig/kernel/nvidia-uvm/uvm8_global.c	2016-03-17 03:59:59.000000000 +0100
++++ work/kernel/nvidia-uvm/uvm8_global.c	2016-03-22 14:00:03.852089935 +0100
+@@ -33,17 +33,17 @@
+ #include "nv_uvm_interface.h"
+ 
+ uvm_global_t g_uvm_global;
+-static struct UvmOpsUvmEvents g_exported_uvm8_ops;
++static struct UvmOpsUvmEvents g_exported_uvm8_ops = {
++    .startDevice = NULL,
++    .stopDevice  = NULL,
++    .isrTopHalf  = uvm8_isr_top_half,
++};
+ static bool g_ops_registered = false;
+ 
+ static NV_STATUS uvm8_register_callbacks(void)
+ {
+     NV_STATUS status = NV_OK;
+ 
+-    g_exported_uvm8_ops.startDevice = NULL;
+-    g_exported_uvm8_ops.stopDevice  = NULL;
+-    g_exported_uvm8_ops.isrTopHalf  = uvm8_isr_top_half;
+-
+     // Register the UVM callbacks with the main GPU driver:
+     status = uvm_rm_locked_call(nvUvmInterfaceRegisterUvmCallbacks(&g_exported_uvm8_ops));
+     if (status != NV_OK)
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c
+--- work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c	2016-03-17 03:59:59.000000000 +0100
++++ work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c	2016-03-22 13:51:58.641294799 +0100
+@@ -285,7 +285,7 @@ NvU64 uvm_gpu_semaphore_get_gpu_va(uvm_g
+ 
+ NvU32 uvm_gpu_semaphore_get_payload(uvm_gpu_semaphore_t *semaphore)
+ {
+-    return ACCESS_ONCE(*semaphore->payload);
++    return ACCESS_ONCE_RW(*semaphore->payload);
+ }
+ 
+ void uvm_gpu_semaphore_set_payload(uvm_gpu_semaphore_t *semaphore, NvU32 payload)
+@@ -301,7 +301,7 @@ void uvm_gpu_semaphore_set_payload(uvm_g
+     // being optimized out on non-SMP configs (we need them for interacting with
+     // the GPU correctly even on non-SMP).
+     mb();
+-    ACCESS_ONCE(*semaphore->payload) = payload;
++    ACCESS_ONCE_RW(*semaphore->payload) = payload;
+ }
+ 
+ NV_STATUS uvm_gpu_tracking_semaphore_alloc(uvm_gpu_semaphore_pool_t *pool, uvm_gpu_tracking_semaphore_t *tracking_sem)
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_hal.h work/kernel/nvidia-uvm/uvm8_hal.h
+--- work.orig/kernel/nvidia-uvm/uvm8_hal.h	2016-03-17 03:59:59.000000000 +0100
++++ work/kernel/nvidia-uvm/uvm8_hal.h	2016-03-22 13:55:38.620347598 +0100
+@@ -293,7 +293,7 @@ typedef struct
+         // fault_buffer_ops: id is a hardware class
+         uvm_fault_buffer_hal_t fault_buffer_ops;
+     } u;
+-} uvm_hal_class_ops_t;
++} __do_const uvm_hal_class_ops_t;
+ 
+ // When UVM next support is enabled support for future chips in the hal is
+ // enabled by providing additional hal table entries below.
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_mmu.h work/kernel/nvidia-uvm/uvm8_mmu.h
+--- work.orig/kernel/nvidia-uvm/uvm8_mmu.h	2016-03-17 03:59:59.000000000 +0100
++++ work/kernel/nvidia-uvm/uvm8_mmu.h	2016-03-22 13:57:44.255581049 +0100
+@@ -24,7 +24,6 @@
+ #ifndef __UVM8_MMU_H__
+ #define __UVM8_MMU_H__
+ 
+-#include "uvm8_forward_decl.h"
+ #include "uvm8_hal_types.h"
+ #include "uvm8_pmm_gpu.h"
+ #include "uvmtypes.h"
+diff -urp work.orig/kernel/nvidia-uvm/uvm_common.c work/kernel/nvidia-uvm/uvm_common.c
+--- work.orig/kernel/nvidia-uvm/uvm_common.c	2016-03-17 03:59:59.000000000 +0100
++++ work/kernel/nvidia-uvm/uvm_common.c	2016-03-22 13:59:20.045675359 +0100
+@@ -54,7 +54,6 @@
+ #include "uvm8_forward_decl.h"
+ 
+ static dev_t g_uvmBaseDev;
+-struct UvmOpsUvmEvents g_exportedUvmOps;
+ 
+ static char* uvm_driver_mode = "lite";
+ 
+@@ -171,10 +170,16 @@ static NV_STATUS uvmSetupGpuProvider(voi
+ {
+     NV_STATUS status = NV_OK;
+ 
+-    g_exportedUvmOps.startDevice = uvm_gpu_event_start_device;
+-    g_exportedUvmOps.stopDevice  = uvm_gpu_event_stop_device;
+-    if (uvmfull_activated())
+-        g_exportedUvmOps.isrTopHalf = uvmfull_isr_top_half;
++    static struct UvmOpsUvmEvents g_exportedUvmOps = {
++        .startDevice = uvm_gpu_event_start_device,
++        .stopDevice  = uvm_gpu_event_stop_device,
++    };
++
++    if (uvmfull_activated()) {
++        pax_open_kernel();
++        *(void **)&g_exportedUvmOps.isrTopHalf = uvmfull_isr_top_half;
++        pax_close_kernel();
++    }
+ 
+     // call RM to exchange the function pointers.
+     status = nvUvmInterfaceRegisterUvmCallbacks(&g_exportedUvmOps);
+diff -urp work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h work/kernel/nvidia-uvm/uvm_full_fault_buffer.h
+--- work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h	2016-03-17 03:59:59.000000000 +0100
++++ work/kernel/nvidia-uvm/uvm_full_fault_buffer.h	2016-03-22 13:51:58.645297533 +0100
+@@ -31,6 +31,7 @@
+ #define _UVM_FULL_FAULT_BUFFER_H_
+ 
+ #include "uvmtypes.h"
++#include "linux/compiler.h"
+ 
+ #define MAXWELL_FAULT_BUFFER_A (0xb069)
+ #define MEM_RD32(a) (*(const volatile NvU32 *)(a)) 
+@@ -303,7 +304,7 @@ typedef struct
+     NvUvmControlPrefetch_t              controlPrefetch;
+     NvUvmTestFaultBufferOverflow_t      testFaultBufferOverflow;
+     NvUvmClearFaultBufferOverflow_t     clearFaultBufferOverflow;
+-} UvmFaultBufferOps;
++} __no_const UvmFaultBufferOps;
+ 
+ /******************************************************************************
+     uvmfull_fault_buffer_init
+diff -urp work.orig/kernel/nvidia-uvm/uvm_linux.h work/kernel/nvidia-uvm/uvm_linux.h
+--- work.orig/kernel/nvidia-uvm/uvm_linux.h	2016-03-17 03:59:59.000000000 +0100
++++ work/kernel/nvidia-uvm/uvm_linux.h	2016-03-22 14:09:14.810534336 +0100
+@@ -485,7 +485,7 @@ static inline NvU64 NV_GETTIME(void)
+ 
+ // WRITE_ONCE/READ_ONCE have incompatible definitions across versions, which produces warnings.
+ // Therefore, we define our own macros
+-#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE(x) = (val))
++#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE_RW(x) = (val))
+ #define UVM_READ_ONCE(x) ACCESS_ONCE(x)
+ 
+ // Added in 3.11

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-364.12-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-364.12-r1.ebuild
index fa7716c..d71ecbf 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-364.12-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-364.12-r1.ebuild
@@ -172,7 +172,7 @@ src_prepare() {
 		ewarn "Using PAX patches is not supported. You will be asked to"
 		ewarn "use a standard kernel should you have issues. Should you"
 		ewarn "need support with these patches, contact the PaX team."
-		epatch "${FILESDIR}"/${PN}-361.26-pax.patch
+		epatch "${FILESDIR}"/${PN}-364.12-pax.patch
 	fi
 
 	# Allow user patches so they can support RC kernels and whatever else


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2016-08-28  8:14 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2016-08-28  8:14 UTC (permalink / raw
  To: gentoo-commits

commit:     5758c11515ed36f765a6d713740b0e2154cd3b28
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 28 08:13:43 2016 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Sun Aug 28 08:14:18 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5758c115

x11-drivers/nvidia-drivers: Version bump (bug #592254 by josef.95).

Package-Manager: portage-2.3.0

 x11-drivers/nvidia-drivers/Manifest                |   6 +
 .../files/nvidia-drivers-367.44-profiles-rc.patch  |  11 +
 .../nvidia-drivers/nvidia-drivers-367.44.ebuild    | 552 +++++++++++++++++++++
 3 files changed, 569 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index 93471ea..1b320de 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -17,6 +17,7 @@ DIST NVIDIA-FreeBSD-x86-364.19.tar.gz 65807198 SHA256 5096640e9ad8a774fa76d0b64d
 DIST NVIDIA-FreeBSD-x86-367.18.tar.gz 66752524 SHA256 48f91a7f0ccc252f3812eba00facb5683b32087bf855ead9667135ba228e650d SHA512 70184e2feaa2546748e275aa8c4e69a692e542460f80636f21cfc29f63303c23e7c7d371d5fc4b15a2153ec9fff033ab1ca584e60eab930a72d146afbcf821f9 WHIRLPOOL d526280998a9a7290ff532a7b55aa1e8a76f289003283c1f2f3ca912d4397b8abeac23ec8ce957a2d0b64743514ce0a364b43203223d18ee5aaa379497f5a7fa
 DIST NVIDIA-FreeBSD-x86-367.27.tar.gz 62605521 SHA256 906038b40f46b2a5c8915b57aaeb0432eb4e60f6d156845e6e2afd49ec9d78b8 SHA512 166bd578b5536772e81f05f411e1bbdd2d9cd81f7210e96a388eff758bd1bb714fbf5dc2f3e4204e08e7555558e74901d6ad96607ee9c7b32ca4fe0b0cf373b5 WHIRLPOOL a31e9fe0e5817f1232a2dba8719110e9404f9b2feee4e0d6fe49ec50b63fd24852863670f0c36de357c9ed357738c30d1951e8fb1e6f40b5b2f8a1e2c7a8dc84
 DIST NVIDIA-FreeBSD-x86-367.35.tar.gz 62636433 SHA256 2edf78801213dea72ddd6c40acd860893623224166ad522fd47e202443cb6d50 SHA512 7b056814be81532dcf63bae13a55a3f190325c207e6e675151b01f655c861ec85804792a43b8c82a3e733394c92b336411ec4e2e70d308c70036f6625d55eb78 WHIRLPOOL a7768389f1e69b7a373e7e2a4cbcddb2f451a8b44346987ee898093c4c87c57a69744c1f7538fd41d1f81b44e02e505107f73c7584c07bce4104dc09349ece4c
+DIST NVIDIA-FreeBSD-x86-367.44.tar.gz 62815733 SHA256 687a178cc0e63f79f38f6e71da904363579b833ab3dadac424bcb2264889d4ec SHA512 2dccfe2b1b86d972b3a8961d8eb114911784cd7fab6d8cfe667a0e2853234fe3e4b2661bd5d0064677155f9631315d1000f23c11feea035292c55dbe73f4baaa WHIRLPOOL 4b243c3c053a11d723fd4fce927e15b36524cf6c4795763a5c728de8952c80e01a72f7e023456637917253dd1298bf6a732cd76da3f0648c26d48088d937fb27
 DIST NVIDIA-FreeBSD-x86-370.23.tar.gz 58560696 SHA256 d70aa4a7334e0592f359d089eb073b7731901c947dd7bc5b1346ee775330f05f SHA512 a5b208053d76b044687431d8e72bb75b7f7ccf1c041da82d910ca3fc9038c707b1bf0f8fd3f57d191c42d8caaaec46a3df5fc628f00b12f63ebfefc6042efcb6 WHIRLPOOL 33f589b8d57108e3202f22844bf7c12c6c38e631097ef4a8f81c7acc2284d983cb49d49ea81c362e642392967eea4155e986e3fe7357fa6b8c84677db25ef531
 DIST NVIDIA-FreeBSD-x86-96.43.23.tar.gz 15463464 SHA256 18d855db8381eda1a6cf548c9e5095fc5bb8694bf1d6e24fc1072fba4e54cd78 SHA512 42d7b1b76cdb3b23680363e565614a22112162a5dd3639cb804fe670c0c3f3f23595bbefa3f78afdc6a8ca848446dee853c7a355f2c96a0d01b354753ba2785c WHIRLPOOL f8e59ce521990cd9edee441e73f973f074db492952807a0931e362102874cddbb47604ff5c5eb20a0cbde27f9b6d4e440dd12cc2e5a20c9cb65bf3c0b3e62511
 DIST NVIDIA-FreeBSD-x86_64-304.131.tar.gz 35812363 SHA256 e10aa34f4aeb6981c0bc6762f37e6ad57de52b45c7322d0caef9781c1a43858a SHA512 0df69d11c79cfd66f40f5adf091f9c3ad494b89fbe9200a1a01fef8cb2d2591ffdeb703d82a263e050384d39ef81af3a717ac24716f96b1fd8386d1758bcf45b WHIRLPOOL a7e01ac4646d52229efb1d22df9b4db98bfd6bc30c79fc4c65273001b1cd09c4db823a0141a060f8c53926ae23a33fe66e27aec805879228d64bf3f45aa66bcd
@@ -37,9 +38,11 @@ DIST NVIDIA-FreeBSD-x86_64-364.19.tar.gz 62553892 SHA256 3b691c259b2a85da49d16ce
 DIST NVIDIA-FreeBSD-x86_64-367.18.tar.gz 63499863 SHA256 be862c654e290b32d78275d05fe38843b969e50f14d5e089ae800dab2a08b558 SHA512 565b606e006ce9263bb578501032aa19f3b55c76d4119f4ab5c6a6a6c0b872b8d7398dfa8d7ecc74609b9cea965e762eeffb9fa951aeb712632b0056c5fa637d WHIRLPOOL 60252d5d6b382108d6c0a52f404365f8d456fa2cc64dd4bfc008f1da74efff7905634141cf0f5a9b4c3513be414d8f20e310b7662057a3fa91ad128e0d3984c5
 DIST NVIDIA-FreeBSD-x86_64-367.27.tar.gz 59357230 SHA256 dea9bf156229b9353e033fa3cf02685c14e539d959d7c2759f233ad1f707f2d2 SHA512 3eb129723317d277c0788b966709369c382035e287e4e14000fae09b98bc12359e5218205a86abcb08894978343f3185986d643df3ceeb81b35ba475bb16b99f WHIRLPOOL a33ae3d01d953b090e169e651ff9cc478d91ea21753cbd4c806dc08898edbd078d191d91ae1f7d46dea8ba931bc63f722bb88e728e31cf98a7681c1d806bd1a5
 DIST NVIDIA-FreeBSD-x86_64-367.35.tar.gz 59393955 SHA256 b33057ce23ce1ae44ddd246a7d2d9e2b0aa2ed5a289d8a83e849249de81a1035 SHA512 724735dbe9a79edd50405b8ccd76bfca35d706b61f489fb57c6b7b71d070148ea97603abb96deab68df1c56e2a48e301eee75fc0de99b15b56d112660ef3bf14 WHIRLPOOL 690220131b40c8e84184c8fc0a5c4f511b44c84863f73b7610451ad9dbc6f563ce8b3b86b38b0f5b2311a2721288d788044c3477a4d76563effad1ed706cfa06
+DIST NVIDIA-FreeBSD-x86_64-367.44.tar.gz 59577943 SHA256 e07d21b0ad39a0a24cdc4840094fb2f2de2f52b704538f7ac60c019465de7137 SHA512 98433879d9093f67a1b794e4c171479871cd489d5577a58084c3165c26d9f733117cf9043d33f5674f51d81dc509ab545b65d538a261f9dd6db4fcf2855f3655 WHIRLPOOL 0320b14e56f800b6fae313b61665fb2390e8f2ed1df63126fb12fdc08dae67ad4e4e9fb9a58950ad26c8e62ad4ee0b3ab96aafcf53a525687e240a77b58c5291
 DIST NVIDIA-FreeBSD-x86_64-370.23.tar.gz 57734638 SHA256 e661ca8442580cef98520d8247b5b74e6ecf5de34e8b903258b078ae401049c0 SHA512 ebcf65a03e31b573f29cd4697683d8cbfaacdada8e56058e9bf26be00e8476af48fb8b2a395b735294ca7b041100524a2f22c07ec6d1aefee75f0298dbbc8e11 WHIRLPOOL 6d4df4c4295daada5e8f9459cc81826c28a087190db7cb189a8d694cbc956fd020a0013166897d220265afcd6d47dd7bd00732596f722d862429a107afd6825c
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.27.run 25585174 SHA256 ae0855b247d5a5474561c76a79536fe82c44bd10e6154792978c5572d11c47f9 SHA512 dd60292f262e1d7d6cca09a35c3f8b65820d216d46f2b94feb208554496b30a983a73ffb8b2a1473cef0b7e08a3cda901eeca855e1db77f4f6dd23779772580b WHIRLPOOL c55d4102a6717f81d8bde7e66d1772c7b1f370d4d610ef61561c94f5ea6cc4797b5f15b9cbc31216b2ef9ef9132a66682b280d9ef5b74c4a57ee2ee8da6c1122
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.35.run 25628654 SHA256 6087bd2cc594f860d27d26e30acd3593310ce00938c10e5729175f037efa222e SHA512 3157c3dc9d07dd0eb8aaa0bf21edf62aa1338f10c1431981494d2a7b1f0be8a1eee8b5bc41914cfca9b4c76773b0056e7ad5c80a4c7acadfadb52a7647baabbe WHIRLPOOL 49c8896d1a40e1f634224227100b303c3d2ebc66ee93f31aa18bc39c898585eba49400d148f47476e4253d35d7379047dbcf7f43cf027df0b16179bfc8912db0
+DIST NVIDIA-Linux-armv7l-gnueabihf-367.44.run 25674978 SHA256 b42af2009460614c6d4b6585535dc2f0c1e98244f00bf75ece37dc31d2cc45c3 SHA512 0fd72fe7afa1415eb961a5308c142316cb5311195486b331c406f4cbcc7d30dd5f0e85e5b179ffb8f38ce5ee1b5abac671d89f62b7dc7e1b1d738212af6acd91 WHIRLPOOL ce2b0fa6b8c545af63292da214cfeb564f765179f531907ac7750c7a9d890816ce869dd7e6898ea0a0a6f446d20868d55c235a5ee2e88105731e8812b5f67c79
 DIST NVIDIA-Linux-armv7l-gnueabihf-370.23.run 26484565 SHA256 9fc44fc0a109606349a88b6f312adf92767c0ea8f6e83f9cfa49ccbb0068edae SHA512 12f0d46a6eb52755b05cef06f71d557ef40e9b9df3765faef09116f6161cf52a3c5cd82f72009761fdf7f9a3b03c4bec93e8f5bb003783cb427901e39dd61bff WHIRLPOOL b10b932bfc955d418bdc39cba36dc68a177f9899cc4562942808b48482240d5fb00ce10e755f4436ff9981e92fedf9c80300cb95c9571265e84fedff79d6ab3d
 DIST NVIDIA-Linux-x86-173.14.39-pkg0.run 15134997 SHA256 a09935f37121ed3db8ae3da63a0d8e9d4348a19c859811c9fe44d6ce8e3eab23 SHA512 e24e15ccec725d3cbca502c2b77061776a81ef92917a950adec4ff6bdc34f10903aa654433177ea74be0dade4af81c5380d5710d375a5ea445940d06154bde93 WHIRLPOOL fce3d8e4f6cdf698f5a057514b6fe220bb1011025bdce5bd4cf0e424fb4d306d38251b6726bda03f290ea8137d5a95ed418cf8751722879f9042462abd9181b6
 DIST NVIDIA-Linux-x86-304.131.run 40893199 SHA256 d2554bb6f7867e7762d0ecedcac5bde7de0634e43b952bf466323ea8b4032da8 SHA512 3e67c40648554dc49472081eee88ae982c3b235b3346e4d9e7fb5ae33ec5f10ed088da804ac7d8bd1565995df3861f12b3560030cd3a19339a2d35768b0a943e WHIRLPOOL 88e9cc0270a4fc64ed8475a217c7c8c50e6ea21fe14b5b5beb16f494bd62bf5ada2f47e26e5380dd3d0bc678091e29f0e26937eef1ee3c7bdc5805153201bae3
@@ -61,6 +64,7 @@ DIST NVIDIA-Linux-x86-364.19.run 50074922 SHA256 9f891d4b22c43c9094b59af5c8474e2
 DIST NVIDIA-Linux-x86-367.18.run 50290002 SHA256 9a5184308a981b1b36dde4466006b7b45ff4c2a2f364374b3835112899a55dbd SHA512 5124a68f757b2c511d1e44eaec7b7368df7c5808d4a1575d58f87ec70bff22ad5ef3d9fb936ec0673a34d58a8fb936c9564e18c04f5e766edaadb7012e2b687f WHIRLPOOL 35298c16b29907c9d13e05671e71befa066aaed805778b5268672c8506ce0293b4c78e941b90050ac1b4f9e4716fa57c7d1fcd7c18233a3c91538654d50651e5
 DIST NVIDIA-Linux-x86-367.27.run 44740794 SHA256 faa7c0f73c04a6d343a3952d264ec56fdf816cc6bf2a1c1bb95726401e99654b SHA512 54302f0de936a859561b756989ff84f73afe41dfb89ed680ee3df3c46b0de9d57eaf2d07876dea0eb1154fbc1a716d4d3e693cb7eaa7ab325b4bbee569ddb709 WHIRLPOOL b46005fa221f0e9b466168530ff08271c63d72a29ef1dea2831215aebd7b4f8dc2947d1f56f1fe490e4d809ed337f7f9116f0263f187dbb7f3d347378367a552
 DIST NVIDIA-Linux-x86-367.35.run 44717708 SHA256 38cb22fa85ef74ea960d3e5d644838cd961984ffc32bb0d052414cc7fa32e315 SHA512 3151995153a3c3857e291df933dbaeaad779544a39a9482980ccb89531ca924d71e6bf0e44767755c484c4b693cfaf01f55e61e3d82cef79f73c0b1964411f39 WHIRLPOOL ff85a42f339c59ceeaef0dc2c6ebc2a52c516fb09f05d16ad91e7c6f7d3368b8af717a2a716a1d606927a2bba689d755ce64b0d1e256ab809040c662cbb2f1da
+DIST NVIDIA-Linux-x86-367.44.run 44079774 SHA256 b2ad4d0d4a2e98528e877ae0d98c38039c2400b09cfb5928cd21899f3a991291 SHA512 5dbeda283b277697eb161b01a6d361a68fcc5e982fcbb9f6c9d08705c9af8b0bf3d78cf68feddce9d72407eea3ccabf955d404975fce5e56d1690bc5008577da WHIRLPOOL ea5f4f9c43cfb6db33906e715fa6b4d5a298e4bbf76959c18589753bcce5b2faa91c38e0aad10e3bcd89b28ee2ee8b73da3deee6c048bebc08fe93e32e214b7e
 DIST NVIDIA-Linux-x86-370.23.run 42185790 SHA256 7a275413a3709ef11649ed65d07bae92368c0a1b754fec5c9f9769e516a19263 SHA512 af944f570736e5c7445b9e4dbdff9cd0566054fdb16140010a986bfe2c30374c26c1487deeb931a78c21de9fd0622627f2f98ceee46d3767432b967bd46542d0 WHIRLPOOL fc77357b6e5d38162138de1d089a64588801c02b1794a923a5bc9001464028a5998054c6f3beef2c36188eb1f4467822b0e9d37e9f813210790a049403ccf2ee
 DIST NVIDIA-Linux-x86-96.43.23-pkg0.run 11504817 SHA256 51e6adf4ba73071622045fc37169f80db3ae3e784dff53b29d35146a04042142 SHA512 bed5726e57637481fe4e3c03a65ec14fe949f00860e729ebde408f4fd861d7bfdc296a78bc2f5d42e8b282db09f4bbde1e0545df7228fa20227080dc4b868ba7 WHIRLPOOL 6d4fd1786c11f4e326cc3101d0bb1a2f8b63c25c3dd59f10188f8355759e2861ce44fd53d60258b513d5a1d6124d0f91ba8edf4d3668b6feabfb3e8d585f14fe
 DIST NVIDIA-Linux-x86_64-173.14.39-pkg2.run 21100833 SHA256 15a953666d5681ba54c97498b578ffd286a1dc96d605f3b02110f3f99813100e SHA512 a65cd496e6ed57f771c3d99f37f616a1242d97844f6faef7a807825ad899c0e536a99fde397020839f0857883b934032f9491024f3047a6b06d3eea1f5d77713 WHIRLPOOL dc5f243b7d1de7e2d1b7f005e018a2940d63335b11a7c83c234b348b7a1839e9131169d2ea928bd8c2f549a4535149b03e16e6c94d59dfa745f7f904ff790a45
@@ -83,6 +87,7 @@ DIST NVIDIA-Linux-x86_64-364.19.run 87961023 SHA256 7b8680a815ac74d5b3a7e3d38113
 DIST NVIDIA-Linux-x86_64-367.18.run 88160263 SHA256 20d0e682ac2be862e574d3de5b3942c499e35c4608e13e85f7106e3d97948e47 SHA512 a2f1cfcfa20222a60a5f8f21b150cb46c938d9a5b2a6ff6f5955064b27749dad4243fe8a147e6892097fa8dabe17e8d9ef1ea37e9170d8feff88118af90460a0 WHIRLPOOL dba8653a0efa830d99a3f830d1db660a0f86c961ebb30a79dfb4b976bda910f16bd260ea08a2d5200127b7b142bdf5503ca2ff6159d708ac8eaa7a37c3c90471
 DIST NVIDIA-Linux-x86_64-367.27.run 76945324 SHA256 7b84583f8ed90b2b97ed4f9bbafac2b054da285fb94b37cfaadc5741cb442571 SHA512 d1aac4eb2e805054463cb974e4a4acf96a0404bf75de37188ccd0bd5a88916d003941b70f695216dee543b12779a38787c9675bbe03803ae15d6a48d1013ee28 WHIRLPOOL 8b71552e91eb37f1a3f6c0a11987471ef366fa97b4c580535ed35c8b650d3cb58ada09c5d1b4cdf803c5bdc3720df2f69c9e44153088861f2c78b55836559b7d
 DIST NVIDIA-Linux-x86_64-367.35.run 75600336 SHA256 d2df3fcb1a145984b9de4f2f38a90e353469e9d12279cf5e2c67c553b112d075 SHA512 18e2b1f342d1fc73c68f3c3ce526ab744fd7dd664cfd857849d497baf94eb057482d88444a792b64d3cd71ac624b9cbaae39b7f1884ca0370521cac0e5650d1b WHIRLPOOL 93612de22e0298383dfb16bf0f8893b55359a634c331b981fafebb1cd1a1dcfa602e1b35d2ff4a128b60753146bc494852410352be9309e531c78f62f708d8c3
+DIST NVIDIA-Linux-x86_64-367.44.run 75032664 SHA256 09a4e67afa79c159f96071215bac3e027b553117b91ee35a4ff134a98d8fe7cc SHA512 efb97ee084f68a0d4ad658f8700fec14a3b3f5ec585a14efa88be791f951445d8b6b944103bfb95408aeb43618f1a1f6fda5ab4ad7f7d2de82f1a7e92f354fa1 WHIRLPOOL 54c642a3c6b9065980569fb45cd358296205c6aa483cb1c402bc75a26f00c95783786b7f0414b11a19f0c7233c77f802c0d40494d5c859ae5c4c8da5f4eeaf33
 DIST NVIDIA-Linux-x86_64-370.23.run 74533367 SHA256 b5b3c4016a0ee595965066db293c6c9d30e6d64b9f54dd7cd2c9d9eeaf6df581 SHA512 6792281fd8c74dca00cd340f28e052ff164a0137ea78101a574082fc407a425cdfc532d14f823b27506fd1da28af78a9ce83602ac57a3df0d3056875749d029d WHIRLPOOL 7c22044a6c5228d12797c498690b648e788e1975afa83a99ed1dccd150c67a6af4fb7e2a048031e345c4e188d5dabba528aeaa547291581c86a09d0737b08ae7
 DIST NVIDIA-Linux-x86_64-96.43.23-pkg2.run 15962375 SHA256 ce8d8253e7dab7da63fbdac449ebf190cd0c10cbfffea0f8d0165515f851bc64 SHA512 04bec1187a6024a2b9839f008ec829281f1f2602dae2e639030bc385943186506bcaa2b46a230b2ab87f9217190841abc62f9e2d6395ab5559623389c31c6563 WHIRLPOOL 0651c44a51a1a06fcff5bfddbf9c3e408977e03263c7fe806cb6c01f9fe92f716dfe4e5190ffe1048bde72fcffdc8bca8267e74dd43ba5c9dfb22b6201fcc2bb
 DIST nvidia-settings-304.131.tar.bz2 1480447 SHA256 d36d2d1ae7c1bb72cd18e713470546d2aa7057624b1f61319daf559a94054d29 SHA512 9269f54f87581e29e6d7cabeaf989c70cb27aa55f6b8f5f1c71b8a14401326d06ea194710722b41283cca56f5808b90a9b1fb12158d48c6332cce15a701c5796 WHIRLPOOL be8e38a09a0bfa40267b9cdae2800a9ef00a89e28e618b743b7acb0cd9ece4b242b74ced32018d735989592300b49b2ee683caa11a1e161bcecf070a58952dfd
@@ -100,4 +105,5 @@ DIST nvidia-settings-364.19.tar.bz2 1573005 SHA256 fe8e9cc4d0ade9caaf51109e7e528
 DIST nvidia-settings-367.18.tar.bz2 1572077 SHA256 035a45b3deca126596c1ac6088e13a72be62cc60d5b56f71978bb45ae67b6c14 SHA512 582158e12988b1588bcae0f116dbe814f96ebdd25b058be1222e5cecea894bed1b844ec2c4173fdd37a193543fc9f2f29dd7778c0c02ec5eb72d2672c5d774ca WHIRLPOOL ae49db45def98bb062788ec7a5ef0c21f0bc87ca6e7cd61ebeb0ededc0eb28ae83fc5dea2f6a6c90cac395c46c010251f010ff09655155eae0fcd12e1e18c4c9
 DIST nvidia-settings-367.27.tar.bz2 1572210 SHA256 d141d56a2e9b88686a391f97636df4834b5dda132726edf69f329bcfd9db5a4d SHA512 94a29cfff1b56b282be6802deb9d6b1b81a41f254464bf0ece567e6d7d708574ca111df32d82e4af68ac2b6bdfda387bb6113c60834fb084bf15582bff6a2273 WHIRLPOOL 4bd192d2cc316f1bae3af40ec8ae03c679aa128f0d3aaedb4a3dd1240503e6ea56d20248b7f6ec7d82e1ec972719cb9983cbc1af60263159ae9d42ed7b3f971f
 DIST nvidia-settings-367.35.tar.bz2 1572606 SHA256 6b0cf0b63bbf8c3d29538587bad8b639b42f8c9bac754bf5ca629df2054a0239 SHA512 9acba704118a8523ec92d26eb998a33755d334a8c5bbd72954ce9b9afbe2cfa63a5b572199e507bf8142dcda8f02a85517115bf07386e15fafe1915ace736770 WHIRLPOOL 644e950c22f686c00e59acc499f3c7af1578cdd45ddc8e4fe53b64abb8c703062e6f2a2548cf636359d52b294ef7e31589f06b7d3e71043d10554f4226169e17
+DIST nvidia-settings-367.44.tar.bz2 1571750 SHA256 74ca3c7ac3e75c13b6aaef92739e2bdb6c9c83e4d860cbe0f1474746c6123fc4 SHA512 d021b162f1cb027da4c4f87e68608fb2efa01f82e2fb739c76b7acd2a2468aca17e9b0b56a61e2a5e2b9f34e3232f373a268eabbfa6ee49f9e9548d53affde0c WHIRLPOOL 36f8d2ab83ca12f02adab1ccd9d62cf763de916c0cf1cc5f18a14bc8428df2ee91fd270d481d225766919fc2b14361da33c5baaf83fc14e82bdc624c88a7ea3f
 DIST nvidia-settings-370.23.tar.bz2 1573513 SHA256 bf27b9f6239515035586b151929fc3d84def68e9171b860f9fbf205e2525d457 SHA512 6fde281d141bd2c6e9802924d3451f7e6d1d6117b6df4282f1ea3420e7c05924da68f78340dce5b03226623a54285715027f8852acdd7fb32ddadfc9142aaca0 WHIRLPOOL 287f3866f757603d67eeb970b766ca83a5bf8aebfb13b2d84cefbeffe84f2ed622bd240896964a67fb72454c7a0db369bccea49b36cc93d9b3eddc4ce4637e62

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.44-profiles-rc.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.44-profiles-rc.patch
new file mode 100644
index 00000000..2eb14e9
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.44-profiles-rc.patch
@@ -0,0 +1,11 @@
+--- a/nvidia-application-profiles-367.44-rc
++++ b/nvidia-application-profiles-367.44-rc
+@@ -44,7 +44,7 @@
+         {
+           "name" : "NamedVertexAttributesApplyDivisor",
+           "settings" : [ "GL23cd0e", 1 ]
+-        },
++        }
+     ],
+     "rules" : [
+         {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-367.44.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-367.44.ebuild
new file mode 100644
index 00000000..1b72cb1
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-367.44.ebuild
@@ -0,0 +1,552 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
+	portability toolchain-funcs unpacker user udev
+
+NV_URI="http://us.download.nvidia.com/XFree86/"
+X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
+ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
+X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
+AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
+SRC_URI="
+	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
+	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
+	arm? ( ${NV_URI}Linux-x86-ARM/${PV}/${ARM_NV_PACKAGE}.run )
+	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
+	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
+	tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
+"
+
+LICENSE="GPL-2 NVIDIA-r2"
+SLOT="0/${PV%.*}"
+KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
+RESTRICT="bindist mirror"
+EMULTILIB_PKG="true"
+
+IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
+REQUIRED_USE="
+	tools? ( X )
+	static-libs? ( tools )
+"
+
+COMMON="
+	app-eselect/eselect-opencl
+	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		dev-libs/jansson
+		gtk3? ( x11-libs/gtk+:3 )
+		x11-libs/cairo
+		x11-libs/gdk-pixbuf[X]
+		x11-libs/gtk+:2
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXrandr
+		x11-libs/libXv
+		x11-libs/libXxf86vm
+		x11-libs/pango[X]
+	)
+	X? (
+		>=app-eselect/eselect-opengl-1.0.9
+		app-misc/pax-utils
+	)
+"
+DEPEND="
+	${COMMON}
+	kernel_linux? ( virtual/linux-sources )
+"
+RDEPEND="
+	${COMMON}
+	acpi? ( sys-power/acpid )
+	tools? ( !media-video/nvidia-settings )
+	wayland? ( dev-libs/wayland )
+	X? (
+		<x11-base/xorg-server-1.18.99:=
+		>=x11-libs/libvdpau-1.0
+		multilib? (
+			>=x11-libs/libX11-1.6.2[abi_x86_32]
+			>=x11-libs/libXext-1.3.2[abi_x86_32]
+		)
+	)
+"
+
+QA_PREBUILT="opt/* usr/lib*"
+
+S=${WORKDIR}/
+
+pkg_pretend() {
+	if use amd64 && has_multilib_profile && \
+		[ "${DEFAULT_ABI}" != "amd64" ]; then
+		eerror "This ebuild doesn't currently support changing your default ABI"
+		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
+	fi
+
+	if use kernel_linux && kernel_is ge 4 8; then
+		ewarn "Gentoo supports kernels which are supported by NVIDIA"
+		ewarn "which are limited to the following kernels:"
+		ewarn "<sys-kernel/gentoo-sources-4.8"
+		ewarn "<sys-kernel/vanilla-sources-4.8"
+		ewarn ""
+		ewarn "You are free to utilize epatch_user to provide whatever"
+		ewarn "support you feel is appropriate, but will not receive"
+		ewarn "support as a result of those changes."
+		ewarn ""
+		ewarn "Do not file a bug report about this."
+		ewarn ""
+	fi
+
+	# Since Nvidia ships many different series of drivers, we need to give the user
+	# some kind of guidance as to what version they should install. This tries
+	# to point the user in the right direction but can't be perfect. check
+	# nvidia-driver.eclass
+	nvidia-driver-check-warning
+
+	# Kernel features/options to check for
+	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
+	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
+
+	# Now do the above checks
+	use kernel_linux && check_extra_config
+}
+
+pkg_setup() {
+	# try to turn off distcc and ccache for people that have a problem with it
+	export DISTCC_DISABLE=1
+	export CCACHE_DISABLE=1
+
+	if use driver && use kernel_linux; then
+		MODULE_NAMES="nvidia(video:${S}/kernel)"
+		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
+		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
+
+		# This needs to run after MODULE_NAMES (so that the eclass checks
+		# whether the kernel supports loadable modules) but before BUILD_PARAMS
+		# is set (so that KV_DIR is populated).
+		linux-mod_pkg_setup
+
+		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
+		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
+
+		# linux-mod_src_compile calls set_arch_to_kernel, which
+		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
+		# expects x86_64 or i386 and then converts it to x86
+		# later on in the build process
+		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
+	fi
+
+	if use kernel_linux && kernel_is lt 2 6 9; then
+		eerror "You must build this against 2.6.9 or higher kernels."
+	fi
+
+	# set variables to where files are in the package structure
+	if use kernel_FreeBSD; then
+		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
+		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
+		NV_DOC="${S}/doc"
+		NV_OBJ="${S}/obj"
+		NV_SRC="${S}/src"
+		NV_MAN="${S}/x11/man"
+		NV_X11="${S}/obj"
+		NV_SOVER=1
+	elif use kernel_linux; then
+		NV_DOC="${S}"
+		NV_OBJ="${S}"
+		NV_SRC="${S}/kernel"
+		NV_MAN="${S}"
+		NV_X11="${S}"
+		NV_SOVER=${PV}
+	else
+		die "Could not determine proper NVIDIA package"
+	fi
+}
+
+src_prepare() {
+	epatch "${FILESDIR}"/${PN}-367.44-profiles-rc.patch
+
+	if use pax_kernel; then
+		ewarn "Using PAX patches is not supported. You will be asked to"
+		ewarn "use a standard kernel should you have issues. Should you"
+		ewarn "need support with these patches, contact the PaX team."
+		epatch "${FILESDIR}"/${PN}-364.12-pax.patch
+	fi
+
+	# Allow user patches so they can support RC kernels and whatever else
+	epatch_user
+}
+
+src_compile() {
+	# This is already the default on Linux, as there's no toplevel Makefile, but
+	# on FreeBSD there's one and triggers the kernel module build, as we install
+	# it by itself, pass this.
+
+	cd "${NV_SRC}"
+	if use kernel_FreeBSD; then
+		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
+			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
+	elif use driver && use kernel_linux; then
+		MAKEOPTS=-j1 linux-mod_src_compile
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			AR="$(tc-getAR)" \
+			CC="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NV_VERBOSE=1 \
+			RANLIB="$(tc-getRANLIB)" \
+			DO_STRIP= \
+			build-xnvctrl
+
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			CC="$(tc-getCC)" \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LD="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NVML_ENABLED=0 \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			DO_STRIP=
+	fi
+}
+
+# Install nvidia library:
+# the first parameter is the library to install
+# the second parameter is the provided soversion
+# the third parameter is the target directory if it is not /usr/lib
+donvidia() {
+	# Full path to library
+	nv_LIB="${1}"
+
+	# SOVER to use
+	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
+
+	# Where to install
+	nv_DEST="${2}"
+
+	# Get just the library name
+	nv_LIBNAME=$(basename "${nv_LIB}")
+
+	if [[ "${nv_DEST}" ]]; then
+		exeinto ${nv_DEST}
+		action="doexe"
+	else
+		nv_DEST="/usr/$(get_libdir)"
+		action="dolib.so"
+	fi
+
+	# Install the library
+	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
+
+	# If the library has a SONAME and SONAME does not match the library name,
+	# then we need to create a symlink
+	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
+		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
+			|| die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
+	fi
+
+	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
+		|| die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
+}
+
+src_install() {
+	if use driver && use kernel_linux; then
+		linux-mod_src_install
+
+		# Add the aliases
+		# This file is tweaked with the appropriate video group in
+		# pkg_preinst, see bug #491414
+		insinto /etc/modprobe.d
+		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
+		doins "${FILESDIR}"/nvidia-rmmod.conf
+
+		# Ensures that our device nodes are created when not using X
+		exeinto "$(get_udevdir)"
+		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
+		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
+	elif use kernel_FreeBSD; then
+		if use x86-fbsd; then
+			insinto /boot/modules
+			doins "${S}/src/nvidia.kld"
+		fi
+
+		exeinto /boot/modules
+		doexe "${S}/src/nvidia.ko"
+	fi
+
+	# NVIDIA kernel <-> userspace driver config lib
+	donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
+
+	# NVIDIA framebuffer capture library
+	donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
+
+	# NVIDIA video encode/decode <-> CUDA
+	if use kernel_linux; then
+		donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
+		donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
+	fi
+
+	if use X; then
+		# Xorg DDX driver
+		insinto /usr/$(get_libdir)/xorg/modules/drivers
+		doins ${NV_X11}/nvidia_drv.so
+
+		# Xorg GLX driver
+		donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
+			/usr/$(get_libdir)/opengl/nvidia/extensions
+
+		# Xorg nvidia.conf
+		if has_version '>=x11-base/xorg-server-1.16'; then
+			insinto /usr/share/X11/xorg.conf.d
+			newins {,50-}nvidia-drm-outputclass.conf
+		fi
+	fi
+
+	# OpenCL ICD for NVIDIA
+	if use kernel_linux; then
+		insinto /etc/OpenCL/vendors
+		doins ${NV_OBJ}/nvidia.icd
+	fi
+
+	# Documentation
+	dohtml ${NV_DOC}/html/*
+	if use kernel_FreeBSD; then
+		dodoc "${NV_DOC}/README"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1"
+		use tools && doman "${NV_MAN}/nvidia-settings.1"
+	else
+		# Docs
+		newdoc "${NV_DOC}/README.txt" README
+		dodoc "${NV_DOC}/NVIDIA_Changelog"
+		doman "${NV_MAN}/nvidia-smi.1.gz"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
+		use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
+		doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
+	fi
+
+	# Helper Apps
+	exeinto /opt/bin/
+
+	if use X; then
+		doexe ${NV_OBJ}/nvidia-xconfig
+	fi
+
+	if use kernel_linux; then
+		doexe ${NV_OBJ}/nvidia-cuda-mps-control
+		doexe ${NV_OBJ}/nvidia-cuda-mps-server
+		doexe ${NV_OBJ}/nvidia-debugdump
+		doexe ${NV_OBJ}/nvidia-persistenced
+		doexe ${NV_OBJ}/nvidia-smi
+
+		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
+		doexe ${NV_OBJ}/nvidia-modprobe
+		fowners root:video /opt/bin/nvidia-modprobe
+		fperms 4710 /opt/bin/nvidia-modprobe
+		dosym /{opt,usr}/bin/nvidia-modprobe
+
+		doman nvidia-cuda-mps-control.1.gz
+		doman nvidia-modprobe.1.gz
+		doman nvidia-persistenced.1.gz
+		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
+		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
+		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/ \
+			DESTDIR="${D}" \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LIBDIR="${D}/usr/$(get_libdir)" \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			PREFIX=/usr \
+			DO_STRIP= \
+			install
+
+		if use static-libs; then
+			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
+
+			insinto /usr/include/NVCtrl
+			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
+		fi
+
+		insinto /usr/share/nvidia/
+		doins nvidia-application-profiles-${PV}-key-documentation
+
+		insinto /etc/nvidia
+		newins \
+			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
+
+		# There is no icon in the FreeBSD tarball.
+		use kernel_FreeBSD || \
+			doicon ${NV_OBJ}/nvidia-settings.png
+
+		domenu "${FILESDIR}"/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+
+		insinto /etc/vulkan/icd.d
+		doins nvidia_icd.json
+	fi
+
+	dobin ${NV_OBJ}/nvidia-bug-report.sh
+
+	if has_multilib_profile && use multilib; then
+		local OABI=${ABI}
+		for ABI in $(get_install_abis); do
+			src_install-libs
+		done
+		ABI=${OABI}
+		unset OABI
+	else
+		src_install-libs
+	fi
+
+	is_final_abi || die "failed to iterate through all ABIs"
+
+	readme.gentoo_create_doc
+}
+
+src_install-libs() {
+	local inslibdir=$(get_libdir)
+	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
+	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
+	local libdir=${NV_OBJ}
+
+	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
+		libdir=${NV_OBJ}/32
+	fi
+
+	if use X; then
+		NV_GLX_LIBRARIES=(
+			"libEGL.so.1 ${GL_ROOT}"
+			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
+			"libGLESv1_CM.so.1 ${GL_ROOT}"
+			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLESv2.so.2 ${GL_ROOT}"
+			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLX.so.0 ${GL_ROOT}"
+			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLdispatch.so.0 ${GL_ROOT}"
+			"libOpenCL.so.1.0.0 ${CL_ROOT}"
+			"libOpenGL.so.0 ${GL_ROOT}"
+			"libcuda.so.${NV_SOVER}"
+			"libnvcuvid.so.${NV_SOVER}"
+			"libnvidia-compiler.so.${NV_SOVER}"
+			"libnvidia-eglcore.so.${NV_SOVER}"
+			"libnvidia-encode.so.${NV_SOVER}"
+			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
+			"libnvidia-fbc.so.${NV_SOVER}"
+			"libnvidia-glcore.so.${NV_SOVER}"
+			"libnvidia-glsi.so.${NV_SOVER}"
+			"libnvidia-ifr.so.${NV_SOVER}"
+			"libnvidia-opencl.so.${NV_SOVER}"
+			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
+			"libvdpau_nvidia.so.${NV_SOVER}"
+		)
+
+		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-egl-wayland.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-wfb.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_FreeBSD; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-ml.so.${NV_SOVER}"
+				"tls/libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
+			donvidia ${libdir}/${NV_LIB}
+		done
+	fi
+}
+
+pkg_preinst() {
+	if use driver && use kernel_linux; then
+		linux-mod_pkg_preinst
+
+		local videogroup="$(egetent group video | cut -d ':' -f 3)"
+		if [ -z "${videogroup}" ]; then
+			eerror "Failed to determine the video group gid"
+			die "Failed to determine the video group gid"
+		else
+			sed -i \
+				-e "s:PACKAGE:${PF}:g" \
+				-e "s:VIDEOGID:${videogroup}:" \
+				"${D}"/etc/modprobe.d/nvidia.conf || die
+		fi
+	fi
+
+	# Clean the dynamic libGL stuff's home to ensure
+	# we dont have stale libs floating around
+	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
+		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
+	fi
+	# Make sure we nuke the old nvidia-glx's env.d file
+	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
+		rm -f "${ROOT}"/etc/env.d/09nvidia
+	fi
+}
+
+pkg_postinst() {
+	use driver && use kernel_linux && linux-mod_pkg_postinst
+
+	# Switch to the nvidia implementation
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
+	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
+
+	readme.gentoo_print_elog
+
+	if ! use X; then
+		elog "You have elected to not install the X.org driver. Along with"
+		elog "this the OpenGL libraries and VDPAU libraries were not"
+		elog "installed. Additionally, once the driver is loaded your card"
+		elog "and fan will run at max speed which may not be desirable."
+		elog "Use the 'nvidia-smi' init script to have your card and fan"
+		elog "speed scale appropriately."
+		elog
+	fi
+	if ! use tools; then
+		elog "USE=tools controls whether the nvidia-settings application"
+		elog "is installed. If you would like to use it, enable that"
+		elog "flag and re-emerge this ebuild. Optionally you can install"
+		elog "media-video/nvidia-settings"
+		elog
+	fi
+}
+
+pkg_prerm() {
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}
+
+pkg_postrm() {
+	use driver && use kernel_linux && linux-mod_pkg_postrm
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2016-09-10 12:33 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2016-09-10 12:33 UTC (permalink / raw
  To: gentoo-commits

commit:     5a3e690d799c539d0627169fc3bd83a59c5f9441
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 10 12:33:17 2016 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Sat Sep 10 12:33:17 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5a3e690d

x11-drivers/nvidia-drivers: Old.

Package-Manager: portage-2.3.0

 x11-drivers/nvidia-drivers/Manifest                |   6 -
 .../files/nvidia-drivers-370.23-profiles-rc.patch  |  11 -
 .../nvidia-drivers/nvidia-drivers-370.23.ebuild    | 552 ---------------------
 3 files changed, 569 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index 09e5992..4c52a42 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -18,7 +18,6 @@ DIST NVIDIA-FreeBSD-x86-367.18.tar.gz 66752524 SHA256 48f91a7f0ccc252f3812eba00f
 DIST NVIDIA-FreeBSD-x86-367.27.tar.gz 62605521 SHA256 906038b40f46b2a5c8915b57aaeb0432eb4e60f6d156845e6e2afd49ec9d78b8 SHA512 166bd578b5536772e81f05f411e1bbdd2d9cd81f7210e96a388eff758bd1bb714fbf5dc2f3e4204e08e7555558e74901d6ad96607ee9c7b32ca4fe0b0cf373b5 WHIRLPOOL a31e9fe0e5817f1232a2dba8719110e9404f9b2feee4e0d6fe49ec50b63fd24852863670f0c36de357c9ed357738c30d1951e8fb1e6f40b5b2f8a1e2c7a8dc84
 DIST NVIDIA-FreeBSD-x86-367.35.tar.gz 62636433 SHA256 2edf78801213dea72ddd6c40acd860893623224166ad522fd47e202443cb6d50 SHA512 7b056814be81532dcf63bae13a55a3f190325c207e6e675151b01f655c861ec85804792a43b8c82a3e733394c92b336411ec4e2e70d308c70036f6625d55eb78 WHIRLPOOL a7768389f1e69b7a373e7e2a4cbcddb2f451a8b44346987ee898093c4c87c57a69744c1f7538fd41d1f81b44e02e505107f73c7584c07bce4104dc09349ece4c
 DIST NVIDIA-FreeBSD-x86-367.44.tar.gz 62815733 SHA256 687a178cc0e63f79f38f6e71da904363579b833ab3dadac424bcb2264889d4ec SHA512 2dccfe2b1b86d972b3a8961d8eb114911784cd7fab6d8cfe667a0e2853234fe3e4b2661bd5d0064677155f9631315d1000f23c11feea035292c55dbe73f4baaa WHIRLPOOL 4b243c3c053a11d723fd4fce927e15b36524cf6c4795763a5c728de8952c80e01a72f7e023456637917253dd1298bf6a732cd76da3f0648c26d48088d937fb27
-DIST NVIDIA-FreeBSD-x86-370.23.tar.gz 58560696 SHA256 d70aa4a7334e0592f359d089eb073b7731901c947dd7bc5b1346ee775330f05f SHA512 a5b208053d76b044687431d8e72bb75b7f7ccf1c041da82d910ca3fc9038c707b1bf0f8fd3f57d191c42d8caaaec46a3df5fc628f00b12f63ebfefc6042efcb6 WHIRLPOOL 33f589b8d57108e3202f22844bf7c12c6c38e631097ef4a8f81c7acc2284d983cb49d49ea81c362e642392967eea4155e986e3fe7357fa6b8c84677db25ef531
 DIST NVIDIA-FreeBSD-x86-370.28.tar.gz 58718517 SHA256 52193b15b4ca822b029f860eed4d00270c925f5d24f7bb511a5b7bbea696d58c SHA512 83ffb19069cc240f8836d808a5eb02c142e7ad923fc2e3049a3b316acc12df070d42dfdc5a8a8e1411ccc9fba0bfa4ed84f457435e985434cd86ae966a63a3f4 WHIRLPOOL b1bec4d5e34ea39c3b1b44adcf85b7392cef39517979d32bc800e48a79a57cfb5f1ca5ff82bc302aa67ed12094782e09ab146f021a9c04e18430034a5ab341a9
 DIST NVIDIA-FreeBSD-x86-96.43.23.tar.gz 15463464 SHA256 18d855db8381eda1a6cf548c9e5095fc5bb8694bf1d6e24fc1072fba4e54cd78 SHA512 42d7b1b76cdb3b23680363e565614a22112162a5dd3639cb804fe670c0c3f3f23595bbefa3f78afdc6a8ca848446dee853c7a355f2c96a0d01b354753ba2785c WHIRLPOOL f8e59ce521990cd9edee441e73f973f074db492952807a0931e362102874cddbb47604ff5c5eb20a0cbde27f9b6d4e440dd12cc2e5a20c9cb65bf3c0b3e62511
 DIST NVIDIA-FreeBSD-x86_64-304.131.tar.gz 35812363 SHA256 e10aa34f4aeb6981c0bc6762f37e6ad57de52b45c7322d0caef9781c1a43858a SHA512 0df69d11c79cfd66f40f5adf091f9c3ad494b89fbe9200a1a01fef8cb2d2591ffdeb703d82a263e050384d39ef81af3a717ac24716f96b1fd8386d1758bcf45b WHIRLPOOL a7e01ac4646d52229efb1d22df9b4db98bfd6bc30c79fc4c65273001b1cd09c4db823a0141a060f8c53926ae23a33fe66e27aec805879228d64bf3f45aa66bcd
@@ -40,12 +39,10 @@ DIST NVIDIA-FreeBSD-x86_64-367.18.tar.gz 63499863 SHA256 be862c654e290b32d78275d
 DIST NVIDIA-FreeBSD-x86_64-367.27.tar.gz 59357230 SHA256 dea9bf156229b9353e033fa3cf02685c14e539d959d7c2759f233ad1f707f2d2 SHA512 3eb129723317d277c0788b966709369c382035e287e4e14000fae09b98bc12359e5218205a86abcb08894978343f3185986d643df3ceeb81b35ba475bb16b99f WHIRLPOOL a33ae3d01d953b090e169e651ff9cc478d91ea21753cbd4c806dc08898edbd078d191d91ae1f7d46dea8ba931bc63f722bb88e728e31cf98a7681c1d806bd1a5
 DIST NVIDIA-FreeBSD-x86_64-367.35.tar.gz 59393955 SHA256 b33057ce23ce1ae44ddd246a7d2d9e2b0aa2ed5a289d8a83e849249de81a1035 SHA512 724735dbe9a79edd50405b8ccd76bfca35d706b61f489fb57c6b7b71d070148ea97603abb96deab68df1c56e2a48e301eee75fc0de99b15b56d112660ef3bf14 WHIRLPOOL 690220131b40c8e84184c8fc0a5c4f511b44c84863f73b7610451ad9dbc6f563ce8b3b86b38b0f5b2311a2721288d788044c3477a4d76563effad1ed706cfa06
 DIST NVIDIA-FreeBSD-x86_64-367.44.tar.gz 59577943 SHA256 e07d21b0ad39a0a24cdc4840094fb2f2de2f52b704538f7ac60c019465de7137 SHA512 98433879d9093f67a1b794e4c171479871cd489d5577a58084c3165c26d9f733117cf9043d33f5674f51d81dc509ab545b65d538a261f9dd6db4fcf2855f3655 WHIRLPOOL 0320b14e56f800b6fae313b61665fb2390e8f2ed1df63126fb12fdc08dae67ad4e4e9fb9a58950ad26c8e62ad4ee0b3ab96aafcf53a525687e240a77b58c5291
-DIST NVIDIA-FreeBSD-x86_64-370.23.tar.gz 57734638 SHA256 e661ca8442580cef98520d8247b5b74e6ecf5de34e8b903258b078ae401049c0 SHA512 ebcf65a03e31b573f29cd4697683d8cbfaacdada8e56058e9bf26be00e8476af48fb8b2a395b735294ca7b041100524a2f22c07ec6d1aefee75f0298dbbc8e11 WHIRLPOOL 6d4df4c4295daada5e8f9459cc81826c28a087190db7cb189a8d694cbc956fd020a0013166897d220265afcd6d47dd7bd00732596f722d862429a107afd6825c
 DIST NVIDIA-FreeBSD-x86_64-370.28.tar.gz 57905860 SHA256 5087a93af8aaab6cff35ba60c9d67b4249827f6b7681abaaa571a20784a54552 SHA512 40637d64a0ee5029bb1c5ad7a590c5be61253ef6283c4217666768ad8601d7f51ef0d8705c8711f65c3d0a5a5721490813220c5f9186c6d2d12baf5d9c11122e WHIRLPOOL 361648788b7efb9e550b3e67d2e6022e31dab29f5660c42a1b6c961fe4638216fb8785814ee9fa1636fc39c39afce7caffbdc24fcf8bbd14e4eec5b5eeaeb1eb
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.27.run 25585174 SHA256 ae0855b247d5a5474561c76a79536fe82c44bd10e6154792978c5572d11c47f9 SHA512 dd60292f262e1d7d6cca09a35c3f8b65820d216d46f2b94feb208554496b30a983a73ffb8b2a1473cef0b7e08a3cda901eeca855e1db77f4f6dd23779772580b WHIRLPOOL c55d4102a6717f81d8bde7e66d1772c7b1f370d4d610ef61561c94f5ea6cc4797b5f15b9cbc31216b2ef9ef9132a66682b280d9ef5b74c4a57ee2ee8da6c1122
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.35.run 25628654 SHA256 6087bd2cc594f860d27d26e30acd3593310ce00938c10e5729175f037efa222e SHA512 3157c3dc9d07dd0eb8aaa0bf21edf62aa1338f10c1431981494d2a7b1f0be8a1eee8b5bc41914cfca9b4c76773b0056e7ad5c80a4c7acadfadb52a7647baabbe WHIRLPOOL 49c8896d1a40e1f634224227100b303c3d2ebc66ee93f31aa18bc39c898585eba49400d148f47476e4253d35d7379047dbcf7f43cf027df0b16179bfc8912db0
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.44.run 25674978 SHA256 b42af2009460614c6d4b6585535dc2f0c1e98244f00bf75ece37dc31d2cc45c3 SHA512 0fd72fe7afa1415eb961a5308c142316cb5311195486b331c406f4cbcc7d30dd5f0e85e5b179ffb8f38ce5ee1b5abac671d89f62b7dc7e1b1d738212af6acd91 WHIRLPOOL ce2b0fa6b8c545af63292da214cfeb564f765179f531907ac7750c7a9d890816ce869dd7e6898ea0a0a6f446d20868d55c235a5ee2e88105731e8812b5f67c79
-DIST NVIDIA-Linux-armv7l-gnueabihf-370.23.run 26484565 SHA256 9fc44fc0a109606349a88b6f312adf92767c0ea8f6e83f9cfa49ccbb0068edae SHA512 12f0d46a6eb52755b05cef06f71d557ef40e9b9df3765faef09116f6161cf52a3c5cd82f72009761fdf7f9a3b03c4bec93e8f5bb003783cb427901e39dd61bff WHIRLPOOL b10b932bfc955d418bdc39cba36dc68a177f9899cc4562942808b48482240d5fb00ce10e755f4436ff9981e92fedf9c80300cb95c9571265e84fedff79d6ab3d
 DIST NVIDIA-Linux-armv7l-gnueabihf-370.28.run 26117701 SHA256 efb60a23aa22b46e94e91d5f5a5fc0c17b47bcf50471e4371653ced5a5350dce SHA512 04699849441bccfb9214fda4c7ff8ecefa11249d1fbfe470e37fefdd132becc225a1bcc16bc976c3fb145a427961f5402c95ecc84b613adb71caef9c96fe7d90 WHIRLPOOL 675a495594c46666ec11c83a76cdc8821e9b57079ee53cd7adcf00e783d121e163b7c5b10598aa55a1fee72eee47defc514fba986685af41c90ab2c5d890abbd
 DIST NVIDIA-Linux-x86-173.14.39-pkg0.run 15134997 SHA256 a09935f37121ed3db8ae3da63a0d8e9d4348a19c859811c9fe44d6ce8e3eab23 SHA512 e24e15ccec725d3cbca502c2b77061776a81ef92917a950adec4ff6bdc34f10903aa654433177ea74be0dade4af81c5380d5710d375a5ea445940d06154bde93 WHIRLPOOL fce3d8e4f6cdf698f5a057514b6fe220bb1011025bdce5bd4cf0e424fb4d306d38251b6726bda03f290ea8137d5a95ed418cf8751722879f9042462abd9181b6
 DIST NVIDIA-Linux-x86-304.131.run 40893199 SHA256 d2554bb6f7867e7762d0ecedcac5bde7de0634e43b952bf466323ea8b4032da8 SHA512 3e67c40648554dc49472081eee88ae982c3b235b3346e4d9e7fb5ae33ec5f10ed088da804ac7d8bd1565995df3861f12b3560030cd3a19339a2d35768b0a943e WHIRLPOOL 88e9cc0270a4fc64ed8475a217c7c8c50e6ea21fe14b5b5beb16f494bd62bf5ada2f47e26e5380dd3d0bc678091e29f0e26937eef1ee3c7bdc5805153201bae3
@@ -68,7 +65,6 @@ DIST NVIDIA-Linux-x86-367.18.run 50290002 SHA256 9a5184308a981b1b36dde4466006b7b
 DIST NVIDIA-Linux-x86-367.27.run 44740794 SHA256 faa7c0f73c04a6d343a3952d264ec56fdf816cc6bf2a1c1bb95726401e99654b SHA512 54302f0de936a859561b756989ff84f73afe41dfb89ed680ee3df3c46b0de9d57eaf2d07876dea0eb1154fbc1a716d4d3e693cb7eaa7ab325b4bbee569ddb709 WHIRLPOOL b46005fa221f0e9b466168530ff08271c63d72a29ef1dea2831215aebd7b4f8dc2947d1f56f1fe490e4d809ed337f7f9116f0263f187dbb7f3d347378367a552
 DIST NVIDIA-Linux-x86-367.35.run 44717708 SHA256 38cb22fa85ef74ea960d3e5d644838cd961984ffc32bb0d052414cc7fa32e315 SHA512 3151995153a3c3857e291df933dbaeaad779544a39a9482980ccb89531ca924d71e6bf0e44767755c484c4b693cfaf01f55e61e3d82cef79f73c0b1964411f39 WHIRLPOOL ff85a42f339c59ceeaef0dc2c6ebc2a52c516fb09f05d16ad91e7c6f7d3368b8af717a2a716a1d606927a2bba689d755ce64b0d1e256ab809040c662cbb2f1da
 DIST NVIDIA-Linux-x86-367.44.run 44079774 SHA256 b2ad4d0d4a2e98528e877ae0d98c38039c2400b09cfb5928cd21899f3a991291 SHA512 5dbeda283b277697eb161b01a6d361a68fcc5e982fcbb9f6c9d08705c9af8b0bf3d78cf68feddce9d72407eea3ccabf955d404975fce5e56d1690bc5008577da WHIRLPOOL ea5f4f9c43cfb6db33906e715fa6b4d5a298e4bbf76959c18589753bcce5b2faa91c38e0aad10e3bcd89b28ee2ee8b73da3deee6c048bebc08fe93e32e214b7e
-DIST NVIDIA-Linux-x86-370.23.run 42185790 SHA256 7a275413a3709ef11649ed65d07bae92368c0a1b754fec5c9f9769e516a19263 SHA512 af944f570736e5c7445b9e4dbdff9cd0566054fdb16140010a986bfe2c30374c26c1487deeb931a78c21de9fd0622627f2f98ceee46d3767432b967bd46542d0 WHIRLPOOL fc77357b6e5d38162138de1d089a64588801c02b1794a923a5bc9001464028a5998054c6f3beef2c36188eb1f4467822b0e9d37e9f813210790a049403ccf2ee
 DIST NVIDIA-Linux-x86-370.28.run 44189522 SHA256 6323254ccf2a75d7ced1374a76ca56778689d0d8a9819e4ee5378ea3347b9835 SHA512 2df8b3d1064073c8b793287994fe0648625d095f3434b7b67531e19632cbad318994df90b55de18aa457d55a1374b35d64a646564259995d3f2197c48737921c WHIRLPOOL 85a089c833311abdc06bbc1fc68cd5ff8ed43dd5e5887d340dc854f905ae741de0ae4343d024259f493dd668075096c460bc1f93c1795d2befb81dd3c4a4983a
 DIST NVIDIA-Linux-x86-96.43.23-pkg0.run 11504817 SHA256 51e6adf4ba73071622045fc37169f80db3ae3e784dff53b29d35146a04042142 SHA512 bed5726e57637481fe4e3c03a65ec14fe949f00860e729ebde408f4fd861d7bfdc296a78bc2f5d42e8b282db09f4bbde1e0545df7228fa20227080dc4b868ba7 WHIRLPOOL 6d4fd1786c11f4e326cc3101d0bb1a2f8b63c25c3dd59f10188f8355759e2861ce44fd53d60258b513d5a1d6124d0f91ba8edf4d3668b6feabfb3e8d585f14fe
 DIST NVIDIA-Linux-x86_64-173.14.39-pkg2.run 21100833 SHA256 15a953666d5681ba54c97498b578ffd286a1dc96d605f3b02110f3f99813100e SHA512 a65cd496e6ed57f771c3d99f37f616a1242d97844f6faef7a807825ad899c0e536a99fde397020839f0857883b934032f9491024f3047a6b06d3eea1f5d77713 WHIRLPOOL dc5f243b7d1de7e2d1b7f005e018a2940d63335b11a7c83c234b348b7a1839e9131169d2ea928bd8c2f549a4535149b03e16e6c94d59dfa745f7f904ff790a45
@@ -92,7 +88,6 @@ DIST NVIDIA-Linux-x86_64-367.18.run 88160263 SHA256 20d0e682ac2be862e574d3de5b39
 DIST NVIDIA-Linux-x86_64-367.27.run 76945324 SHA256 7b84583f8ed90b2b97ed4f9bbafac2b054da285fb94b37cfaadc5741cb442571 SHA512 d1aac4eb2e805054463cb974e4a4acf96a0404bf75de37188ccd0bd5a88916d003941b70f695216dee543b12779a38787c9675bbe03803ae15d6a48d1013ee28 WHIRLPOOL 8b71552e91eb37f1a3f6c0a11987471ef366fa97b4c580535ed35c8b650d3cb58ada09c5d1b4cdf803c5bdc3720df2f69c9e44153088861f2c78b55836559b7d
 DIST NVIDIA-Linux-x86_64-367.35.run 75600336 SHA256 d2df3fcb1a145984b9de4f2f38a90e353469e9d12279cf5e2c67c553b112d075 SHA512 18e2b1f342d1fc73c68f3c3ce526ab744fd7dd664cfd857849d497baf94eb057482d88444a792b64d3cd71ac624b9cbaae39b7f1884ca0370521cac0e5650d1b WHIRLPOOL 93612de22e0298383dfb16bf0f8893b55359a634c331b981fafebb1cd1a1dcfa602e1b35d2ff4a128b60753146bc494852410352be9309e531c78f62f708d8c3
 DIST NVIDIA-Linux-x86_64-367.44.run 75032664 SHA256 09a4e67afa79c159f96071215bac3e027b553117b91ee35a4ff134a98d8fe7cc SHA512 efb97ee084f68a0d4ad658f8700fec14a3b3f5ec585a14efa88be791f951445d8b6b944103bfb95408aeb43618f1a1f6fda5ab4ad7f7d2de82f1a7e92f354fa1 WHIRLPOOL 54c642a3c6b9065980569fb45cd358296205c6aa483cb1c402bc75a26f00c95783786b7f0414b11a19f0c7233c77f802c0d40494d5c859ae5c4c8da5f4eeaf33
-DIST NVIDIA-Linux-x86_64-370.23.run 74533367 SHA256 b5b3c4016a0ee595965066db293c6c9d30e6d64b9f54dd7cd2c9d9eeaf6df581 SHA512 6792281fd8c74dca00cd340f28e052ff164a0137ea78101a574082fc407a425cdfc532d14f823b27506fd1da28af78a9ce83602ac57a3df0d3056875749d029d WHIRLPOOL 7c22044a6c5228d12797c498690b648e788e1975afa83a99ed1dccd150c67a6af4fb7e2a048031e345c4e188d5dabba528aeaa547291581c86a09d0737b08ae7
 DIST NVIDIA-Linux-x86_64-370.28.run 76690360 SHA256 90aa3c186e45b39e6fc0064ab8dbda8bcc897cb61d2e7b7cb30b4ec9a4b39239 SHA512 931476f92a63d142478b2d6b3da4031769fd3b93aee2387800a78b1354b59a5fb5e4e293436b6b4c246627d51c0f55d140ab230de385cb1567bc8b25518eb741 WHIRLPOOL ce866c38291d2ab4aeeff05654a0e61196129f77baea5af93ddbc22fab9574ba39cc05d58020ea2407cc7342f0bcf5c2702d42290f4cc3b53c9e04fb7c617413
 DIST NVIDIA-Linux-x86_64-96.43.23-pkg2.run 15962375 SHA256 ce8d8253e7dab7da63fbdac449ebf190cd0c10cbfffea0f8d0165515f851bc64 SHA512 04bec1187a6024a2b9839f008ec829281f1f2602dae2e639030bc385943186506bcaa2b46a230b2ab87f9217190841abc62f9e2d6395ab5559623389c31c6563 WHIRLPOOL 0651c44a51a1a06fcff5bfddbf9c3e408977e03263c7fe806cb6c01f9fe92f716dfe4e5190ffe1048bde72fcffdc8bca8267e74dd43ba5c9dfb22b6201fcc2bb
 DIST nvidia-settings-304.131.tar.bz2 1480447 SHA256 d36d2d1ae7c1bb72cd18e713470546d2aa7057624b1f61319daf559a94054d29 SHA512 9269f54f87581e29e6d7cabeaf989c70cb27aa55f6b8f5f1c71b8a14401326d06ea194710722b41283cca56f5808b90a9b1fb12158d48c6332cce15a701c5796 WHIRLPOOL be8e38a09a0bfa40267b9cdae2800a9ef00a89e28e618b743b7acb0cd9ece4b242b74ced32018d735989592300b49b2ee683caa11a1e161bcecf070a58952dfd
@@ -111,5 +106,4 @@ DIST nvidia-settings-367.18.tar.bz2 1572077 SHA256 035a45b3deca126596c1ac6088e13
 DIST nvidia-settings-367.27.tar.bz2 1572210 SHA256 d141d56a2e9b88686a391f97636df4834b5dda132726edf69f329bcfd9db5a4d SHA512 94a29cfff1b56b282be6802deb9d6b1b81a41f254464bf0ece567e6d7d708574ca111df32d82e4af68ac2b6bdfda387bb6113c60834fb084bf15582bff6a2273 WHIRLPOOL 4bd192d2cc316f1bae3af40ec8ae03c679aa128f0d3aaedb4a3dd1240503e6ea56d20248b7f6ec7d82e1ec972719cb9983cbc1af60263159ae9d42ed7b3f971f
 DIST nvidia-settings-367.35.tar.bz2 1572606 SHA256 6b0cf0b63bbf8c3d29538587bad8b639b42f8c9bac754bf5ca629df2054a0239 SHA512 9acba704118a8523ec92d26eb998a33755d334a8c5bbd72954ce9b9afbe2cfa63a5b572199e507bf8142dcda8f02a85517115bf07386e15fafe1915ace736770 WHIRLPOOL 644e950c22f686c00e59acc499f3c7af1578cdd45ddc8e4fe53b64abb8c703062e6f2a2548cf636359d52b294ef7e31589f06b7d3e71043d10554f4226169e17
 DIST nvidia-settings-367.44.tar.bz2 1571750 SHA256 74ca3c7ac3e75c13b6aaef92739e2bdb6c9c83e4d860cbe0f1474746c6123fc4 SHA512 d021b162f1cb027da4c4f87e68608fb2efa01f82e2fb739c76b7acd2a2468aca17e9b0b56a61e2a5e2b9f34e3232f373a268eabbfa6ee49f9e9548d53affde0c WHIRLPOOL 36f8d2ab83ca12f02adab1ccd9d62cf763de916c0cf1cc5f18a14bc8428df2ee91fd270d481d225766919fc2b14361da33c5baaf83fc14e82bdc624c88a7ea3f
-DIST nvidia-settings-370.23.tar.bz2 1573513 SHA256 bf27b9f6239515035586b151929fc3d84def68e9171b860f9fbf205e2525d457 SHA512 6fde281d141bd2c6e9802924d3451f7e6d1d6117b6df4282f1ea3420e7c05924da68f78340dce5b03226623a54285715027f8852acdd7fb32ddadfc9142aaca0 WHIRLPOOL 287f3866f757603d67eeb970b766ca83a5bf8aebfb13b2d84cefbeffe84f2ed622bd240896964a67fb72454c7a0db369bccea49b36cc93d9b3eddc4ce4637e62
 DIST nvidia-settings-370.28.tar.bz2 1573509 SHA256 59d7818a4837144e373ce958233db059fde59e279477001e187579770ebf0c5f SHA512 c4da6ae54839a8f91d3557153a648f69095e9a486dbaaf73e453d625660f1adcada12ee5c4bccc1afe2cfd454ead13c1df0e59d5d6aa70f6065823d53f7bb461 WHIRLPOOL e5f0a9fd67e50aee42598d6a0ce9a69a162405a6121518c7aaf9ede409e9bdeb44e3102a123eb6f8c963e0fdaca429a8b693f6af2f0467e746c42f57a496d45f

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-370.23-profiles-rc.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-370.23-profiles-rc.patch
deleted file mode 100644
index 244b55d..00000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-370.23-profiles-rc.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/nvidia-application-profiles-370.23-rc
-+++ b/nvidia-application-profiles-370.23-rc
-@@ -44,7 +44,7 @@
-         {
-           "name" : "NamedVertexAttributesApplyDivisor",
-           "settings" : [ "GL23cd0e", 1 ]
--        },
-+        }
-     ],
-     "rules" : [
-         {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-370.23.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-370.23.ebuild
deleted file mode 100644
index 0f5dd5c..00000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-370.23.ebuild
+++ /dev/null
@@ -1,552 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
-	portability toolchain-funcs unpacker user udev
-
-NV_URI="http://us.download.nvidia.com/XFree86/"
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
-ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
-X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
-SRC_URI="
-	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
-	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
-	arm? ( ${NV_URI}Linux-x86-ARM/${PV}/${ARM_NV_PACKAGE}.run )
-	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
-	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
-	tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
-"
-
-LICENSE="GPL-2 NVIDIA-r2"
-SLOT="0/${PV%.*}"
-KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
-RESTRICT="bindist mirror"
-EMULTILIB_PKG="true"
-
-IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
-REQUIRED_USE="
-	tools? ( X )
-	static-libs? ( tools )
-"
-
-COMMON="
-	app-eselect/eselect-opencl
-	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
-	tools? (
-		dev-libs/atk
-		dev-libs/glib:2
-		dev-libs/jansson
-		gtk3? ( x11-libs/gtk+:3 )
-		x11-libs/cairo
-		x11-libs/gdk-pixbuf[X]
-		x11-libs/gtk+:2
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXrandr
-		x11-libs/libXv
-		x11-libs/libXxf86vm
-		x11-libs/pango[X]
-	)
-	X? (
-		>=app-eselect/eselect-opengl-1.0.9
-		app-misc/pax-utils
-	)
-"
-DEPEND="
-	${COMMON}
-	kernel_linux? ( virtual/linux-sources )
-"
-RDEPEND="
-	${COMMON}
-	acpi? ( sys-power/acpid )
-	tools? ( !media-video/nvidia-settings )
-	wayland? ( dev-libs/wayland )
-	X? (
-		<x11-base/xorg-server-1.18.99:=
-		>=x11-libs/libvdpau-1.0
-		multilib? (
-			>=x11-libs/libX11-1.6.2[abi_x86_32]
-			>=x11-libs/libXext-1.3.2[abi_x86_32]
-		)
-	)
-"
-
-QA_PREBUILT="opt/* usr/lib*"
-
-S=${WORKDIR}/
-
-pkg_pretend() {
-	if use amd64 && has_multilib_profile && \
-		[ "${DEFAULT_ABI}" != "amd64" ]; then
-		eerror "This ebuild doesn't currently support changing your default ABI"
-		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
-	fi
-
-	if use kernel_linux && kernel_is ge 4 8; then
-		ewarn "Gentoo supports kernels which are supported by NVIDIA"
-		ewarn "which are limited to the following kernels:"
-		ewarn "<sys-kernel/gentoo-sources-4.8"
-		ewarn "<sys-kernel/vanilla-sources-4.8"
-		ewarn ""
-		ewarn "You are free to utilize epatch_user to provide whatever"
-		ewarn "support you feel is appropriate, but will not receive"
-		ewarn "support as a result of those changes."
-		ewarn ""
-		ewarn "Do not file a bug report about this."
-		ewarn ""
-	fi
-
-	# Since Nvidia ships many different series of drivers, we need to give the user
-	# some kind of guidance as to what version they should install. This tries
-	# to point the user in the right direction but can't be perfect. check
-	# nvidia-driver.eclass
-	nvidia-driver-check-warning
-
-	# Kernel features/options to check for
-	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
-	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
-
-	# Now do the above checks
-	use kernel_linux && check_extra_config
-}
-
-pkg_setup() {
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	if use driver && use kernel_linux; then
-		MODULE_NAMES="nvidia(video:${S}/kernel)"
-		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
-		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
-
-		# This needs to run after MODULE_NAMES (so that the eclass checks
-		# whether the kernel supports loadable modules) but before BUILD_PARAMS
-		# is set (so that KV_DIR is populated).
-		linux-mod_pkg_setup
-
-		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
-
-		# linux-mod_src_compile calls set_arch_to_kernel, which
-		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
-		# expects x86_64 or i386 and then converts it to x86
-		# later on in the build process
-		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
-	fi
-
-	if use kernel_linux && kernel_is lt 2 6 9; then
-		eerror "You must build this against 2.6.9 or higher kernels."
-	fi
-
-	# set variables to where files are in the package structure
-	if use kernel_FreeBSD; then
-		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
-		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
-		NV_DOC="${S}/doc"
-		NV_OBJ="${S}/obj"
-		NV_SRC="${S}/src"
-		NV_MAN="${S}/x11/man"
-		NV_X11="${S}/obj"
-		NV_SOVER=1
-	elif use kernel_linux; then
-		NV_DOC="${S}"
-		NV_OBJ="${S}"
-		NV_SRC="${S}/kernel"
-		NV_MAN="${S}"
-		NV_X11="${S}"
-		NV_SOVER=${PV}
-	else
-		die "Could not determine proper NVIDIA package"
-	fi
-}
-
-src_prepare() {
-	epatch "${FILESDIR}"/${PN}-370.23-profiles-rc.patch
-
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		epatch "${FILESDIR}"/${PN}-364.12-pax.patch
-	fi
-
-	# Allow user patches so they can support RC kernels and whatever else
-	epatch_user
-}
-
-src_compile() {
-	# This is already the default on Linux, as there's no toplevel Makefile, but
-	# on FreeBSD there's one and triggers the kernel module build, as we install
-	# it by itself, pass this.
-
-	cd "${NV_SRC}"
-	if use kernel_FreeBSD; then
-		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
-			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
-	elif use driver && use kernel_linux; then
-		MAKEOPTS=-j1 linux-mod_src_compile
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			AR="$(tc-getAR)" \
-			CC="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NV_VERBOSE=1 \
-			RANLIB="$(tc-getRANLIB)" \
-			DO_STRIP= \
-			build-xnvctrl
-
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			CC="$(tc-getCC)" \
-			GTK3_AVAILABLE=$(usex gtk3 1 0) \
-			LD="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NVML_ENABLED=0 \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			DO_STRIP=
-	fi
-}
-
-# Install nvidia library:
-# the first parameter is the library to install
-# the second parameter is the provided soversion
-# the third parameter is the target directory if it is not /usr/lib
-donvidia() {
-	# Full path to library
-	nv_LIB="${1}"
-
-	# SOVER to use
-	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
-
-	# Where to install
-	nv_DEST="${2}"
-
-	# Get just the library name
-	nv_LIBNAME=$(basename "${nv_LIB}")
-
-	if [[ "${nv_DEST}" ]]; then
-		exeinto ${nv_DEST}
-		action="doexe"
-	else
-		nv_DEST="/usr/$(get_libdir)"
-		action="dolib.so"
-	fi
-
-	# Install the library
-	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
-
-	# If the library has a SONAME and SONAME does not match the library name,
-	# then we need to create a symlink
-	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
-		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
-			|| die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
-	fi
-
-	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
-		|| die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
-}
-
-src_install() {
-	if use driver && use kernel_linux; then
-		linux-mod_src_install
-
-		# Add the aliases
-		# This file is tweaked with the appropriate video group in
-		# pkg_preinst, see bug #491414
-		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-		doins "${FILESDIR}"/nvidia-rmmod.conf
-
-		# Ensures that our device nodes are created when not using X
-		exeinto "$(get_udevdir)"
-		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
-		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
-	elif use kernel_FreeBSD; then
-		if use x86-fbsd; then
-			insinto /boot/modules
-			doins "${S}/src/nvidia.kld"
-		fi
-
-		exeinto /boot/modules
-		doexe "${S}/src/nvidia.ko"
-	fi
-
-	# NVIDIA kernel <-> userspace driver config lib
-	donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
-
-	# NVIDIA framebuffer capture library
-	donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
-
-	# NVIDIA video encode/decode <-> CUDA
-	if use kernel_linux; then
-		donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
-		donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
-	fi
-
-	if use X; then
-		# Xorg DDX driver
-		insinto /usr/$(get_libdir)/xorg/modules/drivers
-		doins ${NV_X11}/nvidia_drv.so
-
-		# Xorg GLX driver
-		donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
-			/usr/$(get_libdir)/opengl/nvidia/extensions
-
-		# Xorg nvidia.conf
-		if has_version '>=x11-base/xorg-server-1.16'; then
-			insinto /usr/share/X11/xorg.conf.d
-			newins {,50-}nvidia-drm-outputclass.conf
-		fi
-	fi
-
-	# OpenCL ICD for NVIDIA
-	if use kernel_linux; then
-		insinto /etc/OpenCL/vendors
-		doins ${NV_OBJ}/nvidia.icd
-	fi
-
-	# Documentation
-	dohtml ${NV_DOC}/html/*
-	if use kernel_FreeBSD; then
-		dodoc "${NV_DOC}/README"
-		use X && doman "${NV_MAN}/nvidia-xconfig.1"
-		use tools && doman "${NV_MAN}/nvidia-settings.1"
-	else
-		# Docs
-		newdoc "${NV_DOC}/README.txt" README
-		dodoc "${NV_DOC}/NVIDIA_Changelog"
-		doman "${NV_MAN}/nvidia-smi.1.gz"
-		use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
-		use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
-		doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
-	fi
-
-	# Helper Apps
-	exeinto /opt/bin/
-
-	if use X; then
-		doexe ${NV_OBJ}/nvidia-xconfig
-	fi
-
-	if use kernel_linux; then
-		doexe ${NV_OBJ}/nvidia-cuda-mps-control
-		doexe ${NV_OBJ}/nvidia-cuda-mps-server
-		doexe ${NV_OBJ}/nvidia-debugdump
-		doexe ${NV_OBJ}/nvidia-persistenced
-		doexe ${NV_OBJ}/nvidia-smi
-
-		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
-		doexe ${NV_OBJ}/nvidia-modprobe
-		fowners root:video /opt/bin/nvidia-modprobe
-		fperms 4710 /opt/bin/nvidia-modprobe
-		dosym /{opt,usr}/bin/nvidia-modprobe
-
-		doman nvidia-cuda-mps-control.1.gz
-		doman nvidia-modprobe.1.gz
-		doman nvidia-persistenced.1.gz
-		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
-		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
-		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src/ \
-			DESTDIR="${D}" \
-			GTK3_AVAILABLE=$(usex gtk3 1 0) \
-			LIBDIR="${D}/usr/$(get_libdir)" \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			PREFIX=/usr \
-			DO_STRIP= \
-			install
-
-		if use static-libs; then
-			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
-
-			insinto /usr/include/NVCtrl
-			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
-		fi
-
-		insinto /usr/share/nvidia/
-		doins nvidia-application-profiles-${PV}-key-documentation
-
-		insinto /etc/nvidia
-		newins \
-			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
-
-		# There is no icon in the FreeBSD tarball.
-		use kernel_FreeBSD || \
-			doicon ${NV_OBJ}/nvidia-settings.png
-
-		domenu "${FILESDIR}"/nvidia-settings.desktop
-
-		exeinto /etc/X11/xinit/xinitrc.d
-		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-
-		insinto /etc/vulkan/icd.d
-		doins nvidia_icd.json
-	fi
-
-	dobin ${NV_OBJ}/nvidia-bug-report.sh
-
-	if has_multilib_profile && use multilib; then
-		local OABI=${ABI}
-		for ABI in $(get_install_abis); do
-			src_install-libs
-		done
-		ABI=${OABI}
-		unset OABI
-	else
-		src_install-libs
-	fi
-
-	is_final_abi || die "failed to iterate through all ABIs"
-
-	readme.gentoo_create_doc
-}
-
-src_install-libs() {
-	local inslibdir=$(get_libdir)
-	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
-	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
-	local libdir=${NV_OBJ}
-
-	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
-		libdir=${NV_OBJ}/32
-	fi
-
-	if use X; then
-		NV_GLX_LIBRARIES=(
-			"libEGL.so.1 ${GL_ROOT}"
-			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
-			"libGLESv1_CM.so.1 ${GL_ROOT}"
-			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLESv2.so.2 ${GL_ROOT}"
-			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLX.so.0 ${GL_ROOT}"
-			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLdispatch.so.0 ${GL_ROOT}"
-			"libOpenCL.so.1.0.0 ${CL_ROOT}"
-			"libOpenGL.so.0 ${GL_ROOT}"
-			"libcuda.so.${NV_SOVER}"
-			"libnvcuvid.so.${NV_SOVER}"
-			"libnvidia-compiler.so.${NV_SOVER}"
-			"libnvidia-eglcore.so.${NV_SOVER}"
-			"libnvidia-encode.so.${NV_SOVER}"
-			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
-			"libnvidia-fbc.so.${NV_SOVER}"
-			"libnvidia-glcore.so.${NV_SOVER}"
-			"libnvidia-glsi.so.${NV_SOVER}"
-			"libnvidia-ifr.so.${NV_SOVER}"
-			"libnvidia-opencl.so.${NV_SOVER}"
-			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
-			"libvdpau_nvidia.so.${NV_SOVER}"
-		)
-
-		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
-		then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-egl-wayland.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
-		then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-wfb.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_FreeBSD; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-tls.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_linux; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-ml.so.${NV_SOVER}"
-				"tls/libnvidia-tls.so.${NV_SOVER}"
-			)
-		fi
-
-		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
-			donvidia ${libdir}/${NV_LIB}
-		done
-	fi
-}
-
-pkg_preinst() {
-	if use driver && use kernel_linux; then
-		linux-mod_pkg_preinst
-
-		local videogroup="$(egetent group video | cut -d ':' -f 3)"
-		if [ -z "${videogroup}" ]; then
-			eerror "Failed to determine the video group gid"
-			die "Failed to determine the video group gid"
-		else
-			sed -i \
-				-e "s:PACKAGE:${PF}:g" \
-				-e "s:VIDEOGID:${videogroup}:" \
-				"${D}"/etc/modprobe.d/nvidia.conf || die
-		fi
-	fi
-
-	# Clean the dynamic libGL stuff's home to ensure
-	# we dont have stale libs floating around
-	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
-		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
-	fi
-	# Make sure we nuke the old nvidia-glx's env.d file
-	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
-		rm -f "${ROOT}"/etc/env.d/09nvidia
-	fi
-}
-
-pkg_postinst() {
-	use driver && use kernel_linux && linux-mod_pkg_postinst
-
-	# Switch to the nvidia implementation
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
-	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
-
-	readme.gentoo_print_elog
-
-	if ! use X; then
-		elog "You have elected to not install the X.org driver. Along with"
-		elog "this the OpenGL libraries and VDPAU libraries were not"
-		elog "installed. Additionally, once the driver is loaded your card"
-		elog "and fan will run at max speed which may not be desirable."
-		elog "Use the 'nvidia-smi' init script to have your card and fan"
-		elog "speed scale appropriately."
-		elog
-	fi
-	if ! use tools; then
-		elog "USE=tools controls whether the nvidia-settings application"
-		elog "is installed. If you would like to use it, enable that"
-		elog "flag and re-emerge this ebuild. Optionally you can install"
-		elog "media-video/nvidia-settings"
-		elog
-	fi
-}
-
-pkg_prerm() {
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}
-
-pkg_postrm() {
-	use driver && use kernel_linux && linux-mod_pkg_postrm
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2016-09-10 12:33 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2016-09-10 12:33 UTC (permalink / raw
  To: gentoo-commits

commit:     e0e89cf41a385a5b16f0bf12ffcdeaccba96ccd9
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 10 12:29:27 2016 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Sat Sep 10 12:29:27 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e0e89cf4

x11-drivers/nvidia-drivers: Version bump.

Package-Manager: portage-2.3.0

 x11-drivers/nvidia-drivers/Manifest                |   6 +
 .../files/nvidia-drivers-370.28-profiles-rc.patch  |  11 +
 .../nvidia-drivers/nvidia-drivers-370.28.ebuild    | 552 +++++++++++++++++++++
 3 files changed, 569 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index 1b320de..09e5992 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -19,6 +19,7 @@ DIST NVIDIA-FreeBSD-x86-367.27.tar.gz 62605521 SHA256 906038b40f46b2a5c8915b57aa
 DIST NVIDIA-FreeBSD-x86-367.35.tar.gz 62636433 SHA256 2edf78801213dea72ddd6c40acd860893623224166ad522fd47e202443cb6d50 SHA512 7b056814be81532dcf63bae13a55a3f190325c207e6e675151b01f655c861ec85804792a43b8c82a3e733394c92b336411ec4e2e70d308c70036f6625d55eb78 WHIRLPOOL a7768389f1e69b7a373e7e2a4cbcddb2f451a8b44346987ee898093c4c87c57a69744c1f7538fd41d1f81b44e02e505107f73c7584c07bce4104dc09349ece4c
 DIST NVIDIA-FreeBSD-x86-367.44.tar.gz 62815733 SHA256 687a178cc0e63f79f38f6e71da904363579b833ab3dadac424bcb2264889d4ec SHA512 2dccfe2b1b86d972b3a8961d8eb114911784cd7fab6d8cfe667a0e2853234fe3e4b2661bd5d0064677155f9631315d1000f23c11feea035292c55dbe73f4baaa WHIRLPOOL 4b243c3c053a11d723fd4fce927e15b36524cf6c4795763a5c728de8952c80e01a72f7e023456637917253dd1298bf6a732cd76da3f0648c26d48088d937fb27
 DIST NVIDIA-FreeBSD-x86-370.23.tar.gz 58560696 SHA256 d70aa4a7334e0592f359d089eb073b7731901c947dd7bc5b1346ee775330f05f SHA512 a5b208053d76b044687431d8e72bb75b7f7ccf1c041da82d910ca3fc9038c707b1bf0f8fd3f57d191c42d8caaaec46a3df5fc628f00b12f63ebfefc6042efcb6 WHIRLPOOL 33f589b8d57108e3202f22844bf7c12c6c38e631097ef4a8f81c7acc2284d983cb49d49ea81c362e642392967eea4155e986e3fe7357fa6b8c84677db25ef531
+DIST NVIDIA-FreeBSD-x86-370.28.tar.gz 58718517 SHA256 52193b15b4ca822b029f860eed4d00270c925f5d24f7bb511a5b7bbea696d58c SHA512 83ffb19069cc240f8836d808a5eb02c142e7ad923fc2e3049a3b316acc12df070d42dfdc5a8a8e1411ccc9fba0bfa4ed84f457435e985434cd86ae966a63a3f4 WHIRLPOOL b1bec4d5e34ea39c3b1b44adcf85b7392cef39517979d32bc800e48a79a57cfb5f1ca5ff82bc302aa67ed12094782e09ab146f021a9c04e18430034a5ab341a9
 DIST NVIDIA-FreeBSD-x86-96.43.23.tar.gz 15463464 SHA256 18d855db8381eda1a6cf548c9e5095fc5bb8694bf1d6e24fc1072fba4e54cd78 SHA512 42d7b1b76cdb3b23680363e565614a22112162a5dd3639cb804fe670c0c3f3f23595bbefa3f78afdc6a8ca848446dee853c7a355f2c96a0d01b354753ba2785c WHIRLPOOL f8e59ce521990cd9edee441e73f973f074db492952807a0931e362102874cddbb47604ff5c5eb20a0cbde27f9b6d4e440dd12cc2e5a20c9cb65bf3c0b3e62511
 DIST NVIDIA-FreeBSD-x86_64-304.131.tar.gz 35812363 SHA256 e10aa34f4aeb6981c0bc6762f37e6ad57de52b45c7322d0caef9781c1a43858a SHA512 0df69d11c79cfd66f40f5adf091f9c3ad494b89fbe9200a1a01fef8cb2d2591ffdeb703d82a263e050384d39ef81af3a717ac24716f96b1fd8386d1758bcf45b WHIRLPOOL a7e01ac4646d52229efb1d22df9b4db98bfd6bc30c79fc4c65273001b1cd09c4db823a0141a060f8c53926ae23a33fe66e27aec805879228d64bf3f45aa66bcd
 DIST NVIDIA-FreeBSD-x86_64-340.93.tar.gz 60215584 SHA256 07208f6a832c2da8748b1c4f8b5ce42a7b617f2ee1ac59155fecaff952c30988 SHA512 c480df2f36c3d6eba53af9c3070e1561ae7c56cd5d31fb531dcb6897ca02d0d205c0ce99597304ea36b7b75b173e31a9a4c07ddd143ad13884aff0a7c3479bce WHIRLPOOL c1b28898ffe733961bdb622e8b430715c74871cfaab0348a9e5990df5a92676e8fb8c199ea1f1a06fa6c6ded65877b987b802a7a9ea0b7023cbaa62fb52eda01
@@ -40,10 +41,12 @@ DIST NVIDIA-FreeBSD-x86_64-367.27.tar.gz 59357230 SHA256 dea9bf156229b9353e033fa
 DIST NVIDIA-FreeBSD-x86_64-367.35.tar.gz 59393955 SHA256 b33057ce23ce1ae44ddd246a7d2d9e2b0aa2ed5a289d8a83e849249de81a1035 SHA512 724735dbe9a79edd50405b8ccd76bfca35d706b61f489fb57c6b7b71d070148ea97603abb96deab68df1c56e2a48e301eee75fc0de99b15b56d112660ef3bf14 WHIRLPOOL 690220131b40c8e84184c8fc0a5c4f511b44c84863f73b7610451ad9dbc6f563ce8b3b86b38b0f5b2311a2721288d788044c3477a4d76563effad1ed706cfa06
 DIST NVIDIA-FreeBSD-x86_64-367.44.tar.gz 59577943 SHA256 e07d21b0ad39a0a24cdc4840094fb2f2de2f52b704538f7ac60c019465de7137 SHA512 98433879d9093f67a1b794e4c171479871cd489d5577a58084c3165c26d9f733117cf9043d33f5674f51d81dc509ab545b65d538a261f9dd6db4fcf2855f3655 WHIRLPOOL 0320b14e56f800b6fae313b61665fb2390e8f2ed1df63126fb12fdc08dae67ad4e4e9fb9a58950ad26c8e62ad4ee0b3ab96aafcf53a525687e240a77b58c5291
 DIST NVIDIA-FreeBSD-x86_64-370.23.tar.gz 57734638 SHA256 e661ca8442580cef98520d8247b5b74e6ecf5de34e8b903258b078ae401049c0 SHA512 ebcf65a03e31b573f29cd4697683d8cbfaacdada8e56058e9bf26be00e8476af48fb8b2a395b735294ca7b041100524a2f22c07ec6d1aefee75f0298dbbc8e11 WHIRLPOOL 6d4df4c4295daada5e8f9459cc81826c28a087190db7cb189a8d694cbc956fd020a0013166897d220265afcd6d47dd7bd00732596f722d862429a107afd6825c
+DIST NVIDIA-FreeBSD-x86_64-370.28.tar.gz 57905860 SHA256 5087a93af8aaab6cff35ba60c9d67b4249827f6b7681abaaa571a20784a54552 SHA512 40637d64a0ee5029bb1c5ad7a590c5be61253ef6283c4217666768ad8601d7f51ef0d8705c8711f65c3d0a5a5721490813220c5f9186c6d2d12baf5d9c11122e WHIRLPOOL 361648788b7efb9e550b3e67d2e6022e31dab29f5660c42a1b6c961fe4638216fb8785814ee9fa1636fc39c39afce7caffbdc24fcf8bbd14e4eec5b5eeaeb1eb
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.27.run 25585174 SHA256 ae0855b247d5a5474561c76a79536fe82c44bd10e6154792978c5572d11c47f9 SHA512 dd60292f262e1d7d6cca09a35c3f8b65820d216d46f2b94feb208554496b30a983a73ffb8b2a1473cef0b7e08a3cda901eeca855e1db77f4f6dd23779772580b WHIRLPOOL c55d4102a6717f81d8bde7e66d1772c7b1f370d4d610ef61561c94f5ea6cc4797b5f15b9cbc31216b2ef9ef9132a66682b280d9ef5b74c4a57ee2ee8da6c1122
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.35.run 25628654 SHA256 6087bd2cc594f860d27d26e30acd3593310ce00938c10e5729175f037efa222e SHA512 3157c3dc9d07dd0eb8aaa0bf21edf62aa1338f10c1431981494d2a7b1f0be8a1eee8b5bc41914cfca9b4c76773b0056e7ad5c80a4c7acadfadb52a7647baabbe WHIRLPOOL 49c8896d1a40e1f634224227100b303c3d2ebc66ee93f31aa18bc39c898585eba49400d148f47476e4253d35d7379047dbcf7f43cf027df0b16179bfc8912db0
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.44.run 25674978 SHA256 b42af2009460614c6d4b6585535dc2f0c1e98244f00bf75ece37dc31d2cc45c3 SHA512 0fd72fe7afa1415eb961a5308c142316cb5311195486b331c406f4cbcc7d30dd5f0e85e5b179ffb8f38ce5ee1b5abac671d89f62b7dc7e1b1d738212af6acd91 WHIRLPOOL ce2b0fa6b8c545af63292da214cfeb564f765179f531907ac7750c7a9d890816ce869dd7e6898ea0a0a6f446d20868d55c235a5ee2e88105731e8812b5f67c79
 DIST NVIDIA-Linux-armv7l-gnueabihf-370.23.run 26484565 SHA256 9fc44fc0a109606349a88b6f312adf92767c0ea8f6e83f9cfa49ccbb0068edae SHA512 12f0d46a6eb52755b05cef06f71d557ef40e9b9df3765faef09116f6161cf52a3c5cd82f72009761fdf7f9a3b03c4bec93e8f5bb003783cb427901e39dd61bff WHIRLPOOL b10b932bfc955d418bdc39cba36dc68a177f9899cc4562942808b48482240d5fb00ce10e755f4436ff9981e92fedf9c80300cb95c9571265e84fedff79d6ab3d
+DIST NVIDIA-Linux-armv7l-gnueabihf-370.28.run 26117701 SHA256 efb60a23aa22b46e94e91d5f5a5fc0c17b47bcf50471e4371653ced5a5350dce SHA512 04699849441bccfb9214fda4c7ff8ecefa11249d1fbfe470e37fefdd132becc225a1bcc16bc976c3fb145a427961f5402c95ecc84b613adb71caef9c96fe7d90 WHIRLPOOL 675a495594c46666ec11c83a76cdc8821e9b57079ee53cd7adcf00e783d121e163b7c5b10598aa55a1fee72eee47defc514fba986685af41c90ab2c5d890abbd
 DIST NVIDIA-Linux-x86-173.14.39-pkg0.run 15134997 SHA256 a09935f37121ed3db8ae3da63a0d8e9d4348a19c859811c9fe44d6ce8e3eab23 SHA512 e24e15ccec725d3cbca502c2b77061776a81ef92917a950adec4ff6bdc34f10903aa654433177ea74be0dade4af81c5380d5710d375a5ea445940d06154bde93 WHIRLPOOL fce3d8e4f6cdf698f5a057514b6fe220bb1011025bdce5bd4cf0e424fb4d306d38251b6726bda03f290ea8137d5a95ed418cf8751722879f9042462abd9181b6
 DIST NVIDIA-Linux-x86-304.131.run 40893199 SHA256 d2554bb6f7867e7762d0ecedcac5bde7de0634e43b952bf466323ea8b4032da8 SHA512 3e67c40648554dc49472081eee88ae982c3b235b3346e4d9e7fb5ae33ec5f10ed088da804ac7d8bd1565995df3861f12b3560030cd3a19339a2d35768b0a943e WHIRLPOOL 88e9cc0270a4fc64ed8475a217c7c8c50e6ea21fe14b5b5beb16f494bd62bf5ada2f47e26e5380dd3d0bc678091e29f0e26937eef1ee3c7bdc5805153201bae3
 DIST NVIDIA-Linux-x86-340.93.run 38703394 SHA256 4a81c158302c595e1e72b5a1812eb3c67c8cf584ca74b1bc24163dad5289d612 SHA512 7507553bd4b11cac2cd882cd8afba59e773f58a26e67ee7e781c488be963a4f1eb54dcd72b40b29d33dd81c74d4748a76c1632b2c8ea08b524b4318c18b5dfe5 WHIRLPOOL 242190999da74f2fe4bfe4b223f43dec6ec73d97afd1e84e2c78c5fd5616d9814b647067ddf3f591ea8064d29234491de1c6f87b442e240d2aac4a1e598aefad
@@ -66,6 +69,7 @@ DIST NVIDIA-Linux-x86-367.27.run 44740794 SHA256 faa7c0f73c04a6d343a3952d264ec56
 DIST NVIDIA-Linux-x86-367.35.run 44717708 SHA256 38cb22fa85ef74ea960d3e5d644838cd961984ffc32bb0d052414cc7fa32e315 SHA512 3151995153a3c3857e291df933dbaeaad779544a39a9482980ccb89531ca924d71e6bf0e44767755c484c4b693cfaf01f55e61e3d82cef79f73c0b1964411f39 WHIRLPOOL ff85a42f339c59ceeaef0dc2c6ebc2a52c516fb09f05d16ad91e7c6f7d3368b8af717a2a716a1d606927a2bba689d755ce64b0d1e256ab809040c662cbb2f1da
 DIST NVIDIA-Linux-x86-367.44.run 44079774 SHA256 b2ad4d0d4a2e98528e877ae0d98c38039c2400b09cfb5928cd21899f3a991291 SHA512 5dbeda283b277697eb161b01a6d361a68fcc5e982fcbb9f6c9d08705c9af8b0bf3d78cf68feddce9d72407eea3ccabf955d404975fce5e56d1690bc5008577da WHIRLPOOL ea5f4f9c43cfb6db33906e715fa6b4d5a298e4bbf76959c18589753bcce5b2faa91c38e0aad10e3bcd89b28ee2ee8b73da3deee6c048bebc08fe93e32e214b7e
 DIST NVIDIA-Linux-x86-370.23.run 42185790 SHA256 7a275413a3709ef11649ed65d07bae92368c0a1b754fec5c9f9769e516a19263 SHA512 af944f570736e5c7445b9e4dbdff9cd0566054fdb16140010a986bfe2c30374c26c1487deeb931a78c21de9fd0622627f2f98ceee46d3767432b967bd46542d0 WHIRLPOOL fc77357b6e5d38162138de1d089a64588801c02b1794a923a5bc9001464028a5998054c6f3beef2c36188eb1f4467822b0e9d37e9f813210790a049403ccf2ee
+DIST NVIDIA-Linux-x86-370.28.run 44189522 SHA256 6323254ccf2a75d7ced1374a76ca56778689d0d8a9819e4ee5378ea3347b9835 SHA512 2df8b3d1064073c8b793287994fe0648625d095f3434b7b67531e19632cbad318994df90b55de18aa457d55a1374b35d64a646564259995d3f2197c48737921c WHIRLPOOL 85a089c833311abdc06bbc1fc68cd5ff8ed43dd5e5887d340dc854f905ae741de0ae4343d024259f493dd668075096c460bc1f93c1795d2befb81dd3c4a4983a
 DIST NVIDIA-Linux-x86-96.43.23-pkg0.run 11504817 SHA256 51e6adf4ba73071622045fc37169f80db3ae3e784dff53b29d35146a04042142 SHA512 bed5726e57637481fe4e3c03a65ec14fe949f00860e729ebde408f4fd861d7bfdc296a78bc2f5d42e8b282db09f4bbde1e0545df7228fa20227080dc4b868ba7 WHIRLPOOL 6d4fd1786c11f4e326cc3101d0bb1a2f8b63c25c3dd59f10188f8355759e2861ce44fd53d60258b513d5a1d6124d0f91ba8edf4d3668b6feabfb3e8d585f14fe
 DIST NVIDIA-Linux-x86_64-173.14.39-pkg2.run 21100833 SHA256 15a953666d5681ba54c97498b578ffd286a1dc96d605f3b02110f3f99813100e SHA512 a65cd496e6ed57f771c3d99f37f616a1242d97844f6faef7a807825ad899c0e536a99fde397020839f0857883b934032f9491024f3047a6b06d3eea1f5d77713 WHIRLPOOL dc5f243b7d1de7e2d1b7f005e018a2940d63335b11a7c83c234b348b7a1839e9131169d2ea928bd8c2f549a4535149b03e16e6c94d59dfa745f7f904ff790a45
 DIST NVIDIA-Linux-x86_64-304.131.run 69415084 SHA256 74b7ec1c31dac03ee7c3e04612cadb9cbaa01ef4c796c27a0a649f7d32dccd0b SHA512 ddfa1f23600821dcae17ddb735b615d67504c4e276d9b41813e0f8d7690fbdf48f79644ee4c9e5449ce22a31460734cf325fc83975e0b48a0379a85cd4ef747d WHIRLPOOL fc08c2337a1b80b0444dbc914f7d17441995e4965c435028194050df9f5ec1606cdfb5bf11e56f79a736e04cf0755b296017fe79629c5ded18a72093b8689bce
@@ -89,6 +93,7 @@ DIST NVIDIA-Linux-x86_64-367.27.run 76945324 SHA256 7b84583f8ed90b2b97ed4f9bbafa
 DIST NVIDIA-Linux-x86_64-367.35.run 75600336 SHA256 d2df3fcb1a145984b9de4f2f38a90e353469e9d12279cf5e2c67c553b112d075 SHA512 18e2b1f342d1fc73c68f3c3ce526ab744fd7dd664cfd857849d497baf94eb057482d88444a792b64d3cd71ac624b9cbaae39b7f1884ca0370521cac0e5650d1b WHIRLPOOL 93612de22e0298383dfb16bf0f8893b55359a634c331b981fafebb1cd1a1dcfa602e1b35d2ff4a128b60753146bc494852410352be9309e531c78f62f708d8c3
 DIST NVIDIA-Linux-x86_64-367.44.run 75032664 SHA256 09a4e67afa79c159f96071215bac3e027b553117b91ee35a4ff134a98d8fe7cc SHA512 efb97ee084f68a0d4ad658f8700fec14a3b3f5ec585a14efa88be791f951445d8b6b944103bfb95408aeb43618f1a1f6fda5ab4ad7f7d2de82f1a7e92f354fa1 WHIRLPOOL 54c642a3c6b9065980569fb45cd358296205c6aa483cb1c402bc75a26f00c95783786b7f0414b11a19f0c7233c77f802c0d40494d5c859ae5c4c8da5f4eeaf33
 DIST NVIDIA-Linux-x86_64-370.23.run 74533367 SHA256 b5b3c4016a0ee595965066db293c6c9d30e6d64b9f54dd7cd2c9d9eeaf6df581 SHA512 6792281fd8c74dca00cd340f28e052ff164a0137ea78101a574082fc407a425cdfc532d14f823b27506fd1da28af78a9ce83602ac57a3df0d3056875749d029d WHIRLPOOL 7c22044a6c5228d12797c498690b648e788e1975afa83a99ed1dccd150c67a6af4fb7e2a048031e345c4e188d5dabba528aeaa547291581c86a09d0737b08ae7
+DIST NVIDIA-Linux-x86_64-370.28.run 76690360 SHA256 90aa3c186e45b39e6fc0064ab8dbda8bcc897cb61d2e7b7cb30b4ec9a4b39239 SHA512 931476f92a63d142478b2d6b3da4031769fd3b93aee2387800a78b1354b59a5fb5e4e293436b6b4c246627d51c0f55d140ab230de385cb1567bc8b25518eb741 WHIRLPOOL ce866c38291d2ab4aeeff05654a0e61196129f77baea5af93ddbc22fab9574ba39cc05d58020ea2407cc7342f0bcf5c2702d42290f4cc3b53c9e04fb7c617413
 DIST NVIDIA-Linux-x86_64-96.43.23-pkg2.run 15962375 SHA256 ce8d8253e7dab7da63fbdac449ebf190cd0c10cbfffea0f8d0165515f851bc64 SHA512 04bec1187a6024a2b9839f008ec829281f1f2602dae2e639030bc385943186506bcaa2b46a230b2ab87f9217190841abc62f9e2d6395ab5559623389c31c6563 WHIRLPOOL 0651c44a51a1a06fcff5bfddbf9c3e408977e03263c7fe806cb6c01f9fe92f716dfe4e5190ffe1048bde72fcffdc8bca8267e74dd43ba5c9dfb22b6201fcc2bb
 DIST nvidia-settings-304.131.tar.bz2 1480447 SHA256 d36d2d1ae7c1bb72cd18e713470546d2aa7057624b1f61319daf559a94054d29 SHA512 9269f54f87581e29e6d7cabeaf989c70cb27aa55f6b8f5f1c71b8a14401326d06ea194710722b41283cca56f5808b90a9b1fb12158d48c6332cce15a701c5796 WHIRLPOOL be8e38a09a0bfa40267b9cdae2800a9ef00a89e28e618b743b7acb0cd9ece4b242b74ced32018d735989592300b49b2ee683caa11a1e161bcecf070a58952dfd
 DIST nvidia-settings-340.96.tar.bz2 1551011 SHA256 af7303b070a4b41e388a7be6dfae17f020a5cc197170d4815b9a291a3a98aaff SHA512 fc6096338e48c347e4e854d06e8f63d8edb6527953996e63f3f70619be59d0436176547b5197ef30d18a82cf5b58dd775dcca4a2624107b63cce1ae589f2b154 WHIRLPOOL e7266ca0395aa1a5666a43bf6e54e258706d4e76bfd15079485e2379b332d2d6ba0c97b32e49f5b041340bb2d3c0e11dace702754ffc952c149557e0ab9d820a
@@ -107,3 +112,4 @@ DIST nvidia-settings-367.27.tar.bz2 1572210 SHA256 d141d56a2e9b88686a391f97636df
 DIST nvidia-settings-367.35.tar.bz2 1572606 SHA256 6b0cf0b63bbf8c3d29538587bad8b639b42f8c9bac754bf5ca629df2054a0239 SHA512 9acba704118a8523ec92d26eb998a33755d334a8c5bbd72954ce9b9afbe2cfa63a5b572199e507bf8142dcda8f02a85517115bf07386e15fafe1915ace736770 WHIRLPOOL 644e950c22f686c00e59acc499f3c7af1578cdd45ddc8e4fe53b64abb8c703062e6f2a2548cf636359d52b294ef7e31589f06b7d3e71043d10554f4226169e17
 DIST nvidia-settings-367.44.tar.bz2 1571750 SHA256 74ca3c7ac3e75c13b6aaef92739e2bdb6c9c83e4d860cbe0f1474746c6123fc4 SHA512 d021b162f1cb027da4c4f87e68608fb2efa01f82e2fb739c76b7acd2a2468aca17e9b0b56a61e2a5e2b9f34e3232f373a268eabbfa6ee49f9e9548d53affde0c WHIRLPOOL 36f8d2ab83ca12f02adab1ccd9d62cf763de916c0cf1cc5f18a14bc8428df2ee91fd270d481d225766919fc2b14361da33c5baaf83fc14e82bdc624c88a7ea3f
 DIST nvidia-settings-370.23.tar.bz2 1573513 SHA256 bf27b9f6239515035586b151929fc3d84def68e9171b860f9fbf205e2525d457 SHA512 6fde281d141bd2c6e9802924d3451f7e6d1d6117b6df4282f1ea3420e7c05924da68f78340dce5b03226623a54285715027f8852acdd7fb32ddadfc9142aaca0 WHIRLPOOL 287f3866f757603d67eeb970b766ca83a5bf8aebfb13b2d84cefbeffe84f2ed622bd240896964a67fb72454c7a0db369bccea49b36cc93d9b3eddc4ce4637e62
+DIST nvidia-settings-370.28.tar.bz2 1573509 SHA256 59d7818a4837144e373ce958233db059fde59e279477001e187579770ebf0c5f SHA512 c4da6ae54839a8f91d3557153a648f69095e9a486dbaaf73e453d625660f1adcada12ee5c4bccc1afe2cfd454ead13c1df0e59d5d6aa70f6065823d53f7bb461 WHIRLPOOL e5f0a9fd67e50aee42598d6a0ce9a69a162405a6121518c7aaf9ede409e9bdeb44e3102a123eb6f8c963e0fdaca429a8b693f6af2f0467e746c42f57a496d45f

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-370.28-profiles-rc.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-370.28-profiles-rc.patch
new file mode 100644
index 00000000..cec890b
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-370.28-profiles-rc.patch
@@ -0,0 +1,11 @@
+--- a/nvidia-application-profiles-370.28-rc
++++ b/nvidia-application-profiles-370.28-rc
+@@ -44,7 +44,7 @@
+         {
+           "name" : "NamedVertexAttributesApplyDivisor",
+           "settings" : [ "GL23cd0e", 1 ]
+-        },
++        }
+     ],
+     "rules" : [
+         {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-370.28.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-370.28.ebuild
new file mode 100644
index 00000000..e776f90
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-370.28.ebuild
@@ -0,0 +1,552 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
+	portability toolchain-funcs unpacker user udev
+
+NV_URI="http://us.download.nvidia.com/XFree86/"
+X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
+ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
+X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
+AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
+SRC_URI="
+	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
+	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
+	arm? ( ${NV_URI}Linux-x86-ARM/${PV}/${ARM_NV_PACKAGE}.run )
+	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
+	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
+	tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
+"
+
+LICENSE="GPL-2 NVIDIA-r2"
+SLOT="0/${PV%.*}"
+KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
+RESTRICT="bindist mirror"
+EMULTILIB_PKG="true"
+
+IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
+REQUIRED_USE="
+	tools? ( X )
+	static-libs? ( tools )
+"
+
+COMMON="
+	app-eselect/eselect-opencl
+	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		dev-libs/jansson
+		gtk3? ( x11-libs/gtk+:3 )
+		x11-libs/cairo
+		x11-libs/gdk-pixbuf[X]
+		x11-libs/gtk+:2
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXrandr
+		x11-libs/libXv
+		x11-libs/libXxf86vm
+		x11-libs/pango[X]
+	)
+	X? (
+		>=app-eselect/eselect-opengl-1.0.9
+		app-misc/pax-utils
+	)
+"
+DEPEND="
+	${COMMON}
+	kernel_linux? ( virtual/linux-sources )
+"
+RDEPEND="
+	${COMMON}
+	acpi? ( sys-power/acpid )
+	tools? ( !media-video/nvidia-settings )
+	wayland? ( dev-libs/wayland )
+	X? (
+		<x11-base/xorg-server-1.18.99:=
+		>=x11-libs/libvdpau-1.0
+		multilib? (
+			>=x11-libs/libX11-1.6.2[abi_x86_32]
+			>=x11-libs/libXext-1.3.2[abi_x86_32]
+		)
+	)
+"
+
+QA_PREBUILT="opt/* usr/lib*"
+
+S=${WORKDIR}/
+
+pkg_pretend() {
+	if use amd64 && has_multilib_profile && \
+		[ "${DEFAULT_ABI}" != "amd64" ]; then
+		eerror "This ebuild doesn't currently support changing your default ABI"
+		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
+	fi
+
+	if use kernel_linux && kernel_is ge 4 8; then
+		ewarn "Gentoo supports kernels which are supported by NVIDIA"
+		ewarn "which are limited to the following kernels:"
+		ewarn "<sys-kernel/gentoo-sources-4.8"
+		ewarn "<sys-kernel/vanilla-sources-4.8"
+		ewarn ""
+		ewarn "You are free to utilize epatch_user to provide whatever"
+		ewarn "support you feel is appropriate, but will not receive"
+		ewarn "support as a result of those changes."
+		ewarn ""
+		ewarn "Do not file a bug report about this."
+		ewarn ""
+	fi
+
+	# Since Nvidia ships many different series of drivers, we need to give the user
+	# some kind of guidance as to what version they should install. This tries
+	# to point the user in the right direction but can't be perfect. check
+	# nvidia-driver.eclass
+	nvidia-driver-check-warning
+
+	# Kernel features/options to check for
+	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
+	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
+
+	# Now do the above checks
+	use kernel_linux && check_extra_config
+}
+
+pkg_setup() {
+	# try to turn off distcc and ccache for people that have a problem with it
+	export DISTCC_DISABLE=1
+	export CCACHE_DISABLE=1
+
+	if use driver && use kernel_linux; then
+		MODULE_NAMES="nvidia(video:${S}/kernel)"
+		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
+		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
+
+		# This needs to run after MODULE_NAMES (so that the eclass checks
+		# whether the kernel supports loadable modules) but before BUILD_PARAMS
+		# is set (so that KV_DIR is populated).
+		linux-mod_pkg_setup
+
+		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
+		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
+
+		# linux-mod_src_compile calls set_arch_to_kernel, which
+		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
+		# expects x86_64 or i386 and then converts it to x86
+		# later on in the build process
+		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
+	fi
+
+	if use kernel_linux && kernel_is lt 2 6 9; then
+		eerror "You must build this against 2.6.9 or higher kernels."
+	fi
+
+	# set variables to where files are in the package structure
+	if use kernel_FreeBSD; then
+		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
+		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
+		NV_DOC="${S}/doc"
+		NV_OBJ="${S}/obj"
+		NV_SRC="${S}/src"
+		NV_MAN="${S}/x11/man"
+		NV_X11="${S}/obj"
+		NV_SOVER=1
+	elif use kernel_linux; then
+		NV_DOC="${S}"
+		NV_OBJ="${S}"
+		NV_SRC="${S}/kernel"
+		NV_MAN="${S}"
+		NV_X11="${S}"
+		NV_SOVER=${PV}
+	else
+		die "Could not determine proper NVIDIA package"
+	fi
+}
+
+src_prepare() {
+	epatch "${FILESDIR}"/${P}-profiles-rc.patch
+
+	if use pax_kernel; then
+		ewarn "Using PAX patches is not supported. You will be asked to"
+		ewarn "use a standard kernel should you have issues. Should you"
+		ewarn "need support with these patches, contact the PaX team."
+		epatch "${FILESDIR}"/${PN}-364.12-pax.patch
+	fi
+
+	# Allow user patches so they can support RC kernels and whatever else
+	epatch_user
+}
+
+src_compile() {
+	# This is already the default on Linux, as there's no toplevel Makefile, but
+	# on FreeBSD there's one and triggers the kernel module build, as we install
+	# it by itself, pass this.
+
+	cd "${NV_SRC}"
+	if use kernel_FreeBSD; then
+		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
+			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
+	elif use driver && use kernel_linux; then
+		MAKEOPTS=-j1 linux-mod_src_compile
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			AR="$(tc-getAR)" \
+			CC="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NV_VERBOSE=1 \
+			RANLIB="$(tc-getRANLIB)" \
+			DO_STRIP= \
+			build-xnvctrl
+
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			CC="$(tc-getCC)" \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LD="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NVML_ENABLED=0 \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			DO_STRIP=
+	fi
+}
+
+# Install nvidia library:
+# the first parameter is the library to install
+# the second parameter is the provided soversion
+# the third parameter is the target directory if it is not /usr/lib
+donvidia() {
+	# Full path to library
+	nv_LIB="${1}"
+
+	# SOVER to use
+	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
+
+	# Where to install
+	nv_DEST="${2}"
+
+	# Get just the library name
+	nv_LIBNAME=$(basename "${nv_LIB}")
+
+	if [[ "${nv_DEST}" ]]; then
+		exeinto ${nv_DEST}
+		action="doexe"
+	else
+		nv_DEST="/usr/$(get_libdir)"
+		action="dolib.so"
+	fi
+
+	# Install the library
+	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
+
+	# If the library has a SONAME and SONAME does not match the library name,
+	# then we need to create a symlink
+	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
+		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
+			|| die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
+	fi
+
+	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
+		|| die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
+}
+
+src_install() {
+	if use driver && use kernel_linux; then
+		linux-mod_src_install
+
+		# Add the aliases
+		# This file is tweaked with the appropriate video group in
+		# pkg_preinst, see bug #491414
+		insinto /etc/modprobe.d
+		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
+		doins "${FILESDIR}"/nvidia-rmmod.conf
+
+		# Ensures that our device nodes are created when not using X
+		exeinto "$(get_udevdir)"
+		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
+		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
+	elif use kernel_FreeBSD; then
+		if use x86-fbsd; then
+			insinto /boot/modules
+			doins "${S}/src/nvidia.kld"
+		fi
+
+		exeinto /boot/modules
+		doexe "${S}/src/nvidia.ko"
+	fi
+
+	# NVIDIA kernel <-> userspace driver config lib
+	donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
+
+	# NVIDIA framebuffer capture library
+	donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
+
+	# NVIDIA video encode/decode <-> CUDA
+	if use kernel_linux; then
+		donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
+		donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
+	fi
+
+	if use X; then
+		# Xorg DDX driver
+		insinto /usr/$(get_libdir)/xorg/modules/drivers
+		doins ${NV_X11}/nvidia_drv.so
+
+		# Xorg GLX driver
+		donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
+			/usr/$(get_libdir)/opengl/nvidia/extensions
+
+		# Xorg nvidia.conf
+		if has_version '>=x11-base/xorg-server-1.16'; then
+			insinto /usr/share/X11/xorg.conf.d
+			newins {,50-}nvidia-drm-outputclass.conf
+		fi
+	fi
+
+	# OpenCL ICD for NVIDIA
+	if use kernel_linux; then
+		insinto /etc/OpenCL/vendors
+		doins ${NV_OBJ}/nvidia.icd
+	fi
+
+	# Documentation
+	dohtml ${NV_DOC}/html/*
+	if use kernel_FreeBSD; then
+		dodoc "${NV_DOC}/README"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1"
+		use tools && doman "${NV_MAN}/nvidia-settings.1"
+	else
+		# Docs
+		newdoc "${NV_DOC}/README.txt" README
+		dodoc "${NV_DOC}/NVIDIA_Changelog"
+		doman "${NV_MAN}/nvidia-smi.1.gz"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
+		use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
+		doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
+	fi
+
+	# Helper Apps
+	exeinto /opt/bin/
+
+	if use X; then
+		doexe ${NV_OBJ}/nvidia-xconfig
+	fi
+
+	if use kernel_linux; then
+		doexe ${NV_OBJ}/nvidia-cuda-mps-control
+		doexe ${NV_OBJ}/nvidia-cuda-mps-server
+		doexe ${NV_OBJ}/nvidia-debugdump
+		doexe ${NV_OBJ}/nvidia-persistenced
+		doexe ${NV_OBJ}/nvidia-smi
+
+		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
+		doexe ${NV_OBJ}/nvidia-modprobe
+		fowners root:video /opt/bin/nvidia-modprobe
+		fperms 4710 /opt/bin/nvidia-modprobe
+		dosym /{opt,usr}/bin/nvidia-modprobe
+
+		doman nvidia-cuda-mps-control.1.gz
+		doman nvidia-modprobe.1.gz
+		doman nvidia-persistenced.1.gz
+		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
+		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
+		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/ \
+			DESTDIR="${D}" \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LIBDIR="${D}/usr/$(get_libdir)" \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			PREFIX=/usr \
+			DO_STRIP= \
+			install
+
+		if use static-libs; then
+			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
+
+			insinto /usr/include/NVCtrl
+			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
+		fi
+
+		insinto /usr/share/nvidia/
+		doins nvidia-application-profiles-${PV}-key-documentation
+
+		insinto /etc/nvidia
+		newins \
+			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
+
+		# There is no icon in the FreeBSD tarball.
+		use kernel_FreeBSD || \
+			doicon ${NV_OBJ}/nvidia-settings.png
+
+		domenu "${FILESDIR}"/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+
+		insinto /etc/vulkan/icd.d
+		doins nvidia_icd.json
+	fi
+
+	dobin ${NV_OBJ}/nvidia-bug-report.sh
+
+	if has_multilib_profile && use multilib; then
+		local OABI=${ABI}
+		for ABI in $(get_install_abis); do
+			src_install-libs
+		done
+		ABI=${OABI}
+		unset OABI
+	else
+		src_install-libs
+	fi
+
+	is_final_abi || die "failed to iterate through all ABIs"
+
+	readme.gentoo_create_doc
+}
+
+src_install-libs() {
+	local inslibdir=$(get_libdir)
+	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
+	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
+	local libdir=${NV_OBJ}
+
+	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
+		libdir=${NV_OBJ}/32
+	fi
+
+	if use X; then
+		NV_GLX_LIBRARIES=(
+			"libEGL.so.1 ${GL_ROOT}"
+			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
+			"libGLESv1_CM.so.1 ${GL_ROOT}"
+			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLESv2.so.2 ${GL_ROOT}"
+			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLX.so.0 ${GL_ROOT}"
+			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLdispatch.so.0 ${GL_ROOT}"
+			"libOpenCL.so.1.0.0 ${CL_ROOT}"
+			"libOpenGL.so.0 ${GL_ROOT}"
+			"libcuda.so.${NV_SOVER}"
+			"libnvcuvid.so.${NV_SOVER}"
+			"libnvidia-compiler.so.${NV_SOVER}"
+			"libnvidia-eglcore.so.${NV_SOVER}"
+			"libnvidia-encode.so.${NV_SOVER}"
+			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
+			"libnvidia-fbc.so.${NV_SOVER}"
+			"libnvidia-glcore.so.${NV_SOVER}"
+			"libnvidia-glsi.so.${NV_SOVER}"
+			"libnvidia-ifr.so.${NV_SOVER}"
+			"libnvidia-opencl.so.${NV_SOVER}"
+			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
+			"libvdpau_nvidia.so.${NV_SOVER}"
+		)
+
+		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-egl-wayland.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-wfb.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_FreeBSD; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-ml.so.${NV_SOVER}"
+				"tls/libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
+			donvidia ${libdir}/${NV_LIB}
+		done
+	fi
+}
+
+pkg_preinst() {
+	if use driver && use kernel_linux; then
+		linux-mod_pkg_preinst
+
+		local videogroup="$(egetent group video | cut -d ':' -f 3)"
+		if [ -z "${videogroup}" ]; then
+			eerror "Failed to determine the video group gid"
+			die "Failed to determine the video group gid"
+		else
+			sed -i \
+				-e "s:PACKAGE:${PF}:g" \
+				-e "s:VIDEOGID:${videogroup}:" \
+				"${D}"/etc/modprobe.d/nvidia.conf || die
+		fi
+	fi
+
+	# Clean the dynamic libGL stuff's home to ensure
+	# we dont have stale libs floating around
+	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
+		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
+	fi
+	# Make sure we nuke the old nvidia-glx's env.d file
+	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
+		rm -f "${ROOT}"/etc/env.d/09nvidia
+	fi
+}
+
+pkg_postinst() {
+	use driver && use kernel_linux && linux-mod_pkg_postinst
+
+	# Switch to the nvidia implementation
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
+	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
+
+	readme.gentoo_print_elog
+
+	if ! use X; then
+		elog "You have elected to not install the X.org driver. Along with"
+		elog "this the OpenGL libraries and VDPAU libraries were not"
+		elog "installed. Additionally, once the driver is loaded your card"
+		elog "and fan will run at max speed which may not be desirable."
+		elog "Use the 'nvidia-smi' init script to have your card and fan"
+		elog "speed scale appropriately."
+		elog
+	fi
+	if ! use tools; then
+		elog "USE=tools controls whether the nvidia-settings application"
+		elog "is installed. If you would like to use it, enable that"
+		elog "flag and re-emerge this ebuild. Optionally you can install"
+		elog "media-video/nvidia-settings"
+		elog
+	fi
+}
+
+pkg_prerm() {
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}
+
+pkg_postrm() {
+	use driver && use kernel_linux && linux-mod_pkg_postrm
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2016-10-11  7:22 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2016-10-11  7:22 UTC (permalink / raw
  To: gentoo-commits

commit:     d83ad2a6a011d084b6bf326160a0b23cb403ae08
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 11 07:20:38 2016 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Tue Oct 11 07:22:06 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d83ad2a6

x11-drivers/nvidia-drivers: Version bump (bug #596588).

Package-Manager: portage-2.3.1

 x11-drivers/nvidia-drivers/Manifest                |  16 +
 .../files/nvidia-drivers-367.57-profiles-rc.patch  |  11 +
 .../nvidia-drivers/nvidia-drivers-304.132.ebuild   | 488 ++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-340.98.ebuild    | 517 +++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-367.57.ebuild    | 552 +++++++++++++++++++++
 5 files changed, 1584 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index 4c52a42..fcd1fa8 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -1,7 +1,9 @@
 DIST NVIDIA-FreeBSD-x86-173.14.39.tar.gz 20038266 SHA256 63a922ce4c5b676b4cb1ace98094dace4cc5408f2553e183df7b2127777a238b SHA512 96982fe7e0751c52fbef534193de09d187b99c1984c05e791223eb804719d8b3ba72efd983f227661ded4b71569bdbb914f1f629ab73a8bc9b8172832ccf3ec6 WHIRLPOOL 21f5906f42adf0064c7a7f81ac8e323de488e6d36356ee42c31a15c31ebb64335d5e2cff0ff022d41de480f9e0a57b3b96387f17151c7b59eceba2c61a7a102b
 DIST NVIDIA-FreeBSD-x86-304.131.tar.gz 10656712 SHA256 ba269b8b142429756be4fbf94a5da97bd039d6da91571bc7d4fceb750e0766ac SHA512 b8036055b5a667239b40392920a043b60b0d68529a85fec5779e9deca1bf2de8683be4e49aa7e37e1b32c547ff125d5d7df950ef059d26ebc28b244190062c59 WHIRLPOOL a8eea0d5ec4f1f931e2dc1b8f5faf0bea2b3db926b3c638e65504fdf9b3bbb2c27b8046cf859aa7f13f228cff4620d748b1cb6ef3fc8f8bfc2c650b0fe2419ad
+DIST NVIDIA-FreeBSD-x86-304.132.tar.gz 34782140 SHA256 c411d1d290a8ed0cf379c8e18fcdc0934905d0762a52a3e2e330cbff6e8ef250 SHA512 fc23e02ca8c72b0cfadbfb9f08e26fa1ed6b2dcfc660b40eede718a44134dc7e75163c79319471c60ed7e7316405966ba132926f115c7241706936eb7cc6b685 WHIRLPOOL f23076cb78a79d8b38eeb081fc83a2fad163cad9d80f59d83e67d528ab7ecc3265809e032eb3e8a34533c825d420bc734149a29d21e1ebbe1f1787bfb923f5de
 DIST NVIDIA-FreeBSD-x86-340.93.tar.gz 59385673 SHA256 094dc6df60b8e57cf9b94d982cb29c32d5e0c1d81796dbadb39145e78a3b0086 SHA512 ae5ef62aa8dea2f67026dc9e7f369294895516cd443daa277ac2c783ef1fe85df23706aef70cbce41722d239a50c562b66210fd76f662186e25c58b38e617230 WHIRLPOOL 816b2b8c1de3609c03059fbb6f102f54fba5fcc64539745701ef3e20e435ca767ff8fe93c7f0242fcee5fb941210781a526b67cf693a48974723ccbf8e95595f
 DIST NVIDIA-FreeBSD-x86-340.96.tar.gz 59678354 SHA256 dda243ed9b36e29162b1c97b987b9ca82ef7fcff4635ac78443fdb06739ec22e SHA512 dacd14a41c16bff9d26a00084c96af3fb9472fdb00832ca36f4737fb8c741e1eb89f1d6d015c3dee051482aef23631fecbad645e17014e53ee51644d4aa4b51f WHIRLPOOL d55d10682a086b6dcfb72e67f028731afd1f4a5ee2d96d6288f1a0c8eead51927b7454fff793d0b4c57d273fd5b00a9207004b14b4e6f66ab8f106ab5c68518c
+DIST NVIDIA-FreeBSD-x86-340.98.tar.gz 59690529 SHA256 eaf7b3ff2daaca269638c912044bf6129fb6e274674466d274f6ecb4b84a80f2 SHA512 7e8cedf27417c63913f5a3cb77da590bfad23780d9123bff0ce4528302f1b328d3a0eac121e49b83b05ff0a8e4f09f40dc8268f4b6da7fff493e41edbef0407c WHIRLPOOL 96b0e43694db20c1bf2c0c1614b13807a106ceece42a23410939ac108d29054780194bbc8d68865e25863e7cb19ccbd2321694fc739c25998817bfb04775bd3b
 DIST NVIDIA-FreeBSD-x86-346.96.tar.gz 58010757 SHA256 a27d7b79c053702bf6524b2c4725321fa557be18a585735e0b8122d884348c3e SHA512 f05ff7f98ae56ef992c21440e94dc12537f91353c9ba6fbe74b5928744823cb0cce38e7aa2da6c88569dda52f9ae0f6674c29255db155a2fada9b78f024dda8d WHIRLPOOL d21cfd27971847dac0118429b58b34be24f19fefc9ee05f70454e7c350d4a8678e2d01f7db72e05bd1026c45fa9373783b9817efcf76f70b70f6a5ecd8a5bc7c
 DIST NVIDIA-FreeBSD-x86-352.63.tar.gz 55368686 SHA256 1d290a9d583b6e99addb4888c2b1c568bbcec712fd98c034be2448a0d1228313 SHA512 b2cb33f6e3a2ef69dd7759217f8d2eac4197940bda5007a3d755e8769df70a197485a1df6186bb5eb5e8c2a70117a2bdcbe10b9f0e02f6eb2ca30180c4ee49bb WHIRLPOOL 695e2daff45a532e3217612d28dc102b88554c775cf67af39f413871427bfbf895901ad582e78f7581f32a571b1425d3de6e74696282f8be9eec81b556357058
 DIST NVIDIA-FreeBSD-x86-352.79.tar.gz 55381403 SHA256 baf99225383aa1b114c14504d00a400b4e2c72b521941210287d5a2f848a6189 SHA512 14dd0f52ae9fbc88b441392e32df6610121baeb5b08337d7a341d110f2735591c91a789c7825ca95fb542693f6971053a00b3dc4d7d224362d7b12a07cb315d5 WHIRLPOOL 7d5ac1efa1afb5a4cf5ef714b27fbc02190775bd11ae281df5552b836a22bc5377572a310c683d54910cbcbf5a4d57702309e5b3e61c295fb767568f8d8746bf
@@ -18,11 +20,14 @@ DIST NVIDIA-FreeBSD-x86-367.18.tar.gz 66752524 SHA256 48f91a7f0ccc252f3812eba00f
 DIST NVIDIA-FreeBSD-x86-367.27.tar.gz 62605521 SHA256 906038b40f46b2a5c8915b57aaeb0432eb4e60f6d156845e6e2afd49ec9d78b8 SHA512 166bd578b5536772e81f05f411e1bbdd2d9cd81f7210e96a388eff758bd1bb714fbf5dc2f3e4204e08e7555558e74901d6ad96607ee9c7b32ca4fe0b0cf373b5 WHIRLPOOL a31e9fe0e5817f1232a2dba8719110e9404f9b2feee4e0d6fe49ec50b63fd24852863670f0c36de357c9ed357738c30d1951e8fb1e6f40b5b2f8a1e2c7a8dc84
 DIST NVIDIA-FreeBSD-x86-367.35.tar.gz 62636433 SHA256 2edf78801213dea72ddd6c40acd860893623224166ad522fd47e202443cb6d50 SHA512 7b056814be81532dcf63bae13a55a3f190325c207e6e675151b01f655c861ec85804792a43b8c82a3e733394c92b336411ec4e2e70d308c70036f6625d55eb78 WHIRLPOOL a7768389f1e69b7a373e7e2a4cbcddb2f451a8b44346987ee898093c4c87c57a69744c1f7538fd41d1f81b44e02e505107f73c7584c07bce4104dc09349ece4c
 DIST NVIDIA-FreeBSD-x86-367.44.tar.gz 62815733 SHA256 687a178cc0e63f79f38f6e71da904363579b833ab3dadac424bcb2264889d4ec SHA512 2dccfe2b1b86d972b3a8961d8eb114911784cd7fab6d8cfe667a0e2853234fe3e4b2661bd5d0064677155f9631315d1000f23c11feea035292c55dbe73f4baaa WHIRLPOOL 4b243c3c053a11d723fd4fce927e15b36524cf6c4795763a5c728de8952c80e01a72f7e023456637917253dd1298bf6a732cd76da3f0648c26d48088d937fb27
+DIST NVIDIA-FreeBSD-x86-367.57.tar.gz 62859799 SHA256 64a0bde687aac1ec2aad859d5bea47d0691b916a851c64992bd460a05ad7c162 SHA512 13269f76d53a1818690ba8fd7aa604783e80059a031e3668c21a70158eeaa97251adda9ac058a712342e95780db86be5b893eebe0422cfce7f1073d88ea9293d WHIRLPOOL 303bebf3d73d8bc232a188c9e3a23164a70fafdd44974e5f5b1873488f682979702e2f18d838d85072a22520d959ded6bb3a4b79cb3d7cafc5de0feca6241061
 DIST NVIDIA-FreeBSD-x86-370.28.tar.gz 58718517 SHA256 52193b15b4ca822b029f860eed4d00270c925f5d24f7bb511a5b7bbea696d58c SHA512 83ffb19069cc240f8836d808a5eb02c142e7ad923fc2e3049a3b316acc12df070d42dfdc5a8a8e1411ccc9fba0bfa4ed84f457435e985434cd86ae966a63a3f4 WHIRLPOOL b1bec4d5e34ea39c3b1b44adcf85b7392cef39517979d32bc800e48a79a57cfb5f1ca5ff82bc302aa67ed12094782e09ab146f021a9c04e18430034a5ab341a9
 DIST NVIDIA-FreeBSD-x86-96.43.23.tar.gz 15463464 SHA256 18d855db8381eda1a6cf548c9e5095fc5bb8694bf1d6e24fc1072fba4e54cd78 SHA512 42d7b1b76cdb3b23680363e565614a22112162a5dd3639cb804fe670c0c3f3f23595bbefa3f78afdc6a8ca848446dee853c7a355f2c96a0d01b354753ba2785c WHIRLPOOL f8e59ce521990cd9edee441e73f973f074db492952807a0931e362102874cddbb47604ff5c5eb20a0cbde27f9b6d4e440dd12cc2e5a20c9cb65bf3c0b3e62511
 DIST NVIDIA-FreeBSD-x86_64-304.131.tar.gz 35812363 SHA256 e10aa34f4aeb6981c0bc6762f37e6ad57de52b45c7322d0caef9781c1a43858a SHA512 0df69d11c79cfd66f40f5adf091f9c3ad494b89fbe9200a1a01fef8cb2d2591ffdeb703d82a263e050384d39ef81af3a717ac24716f96b1fd8386d1758bcf45b WHIRLPOOL a7e01ac4646d52229efb1d22df9b4db98bfd6bc30c79fc4c65273001b1cd09c4db823a0141a060f8c53926ae23a33fe66e27aec805879228d64bf3f45aa66bcd
+DIST NVIDIA-FreeBSD-x86_64-304.132.tar.gz 35810728 SHA256 baedb1901f679b1d2449c49302f3abdb90ac9a85935e3ff3b0968a32089b719c SHA512 4ee6c66efc3b77d7421904ab04c621ed7374d657d0406988a3a1c4b352c092f42ed6394951247d58cbfb54b07e67ed7d02040d6eff136ab57749db813167904c WHIRLPOOL b9f5ef7d63847f76212dfc3d0dba738cb9ea9f42881becaf9c41de31858c95b4c90911eed296c5c266a4cff7dba33f09dbdbdf9e6e731e9b3f13dce7e4346d33
 DIST NVIDIA-FreeBSD-x86_64-340.93.tar.gz 60215584 SHA256 07208f6a832c2da8748b1c4f8b5ce42a7b617f2ee1ac59155fecaff952c30988 SHA512 c480df2f36c3d6eba53af9c3070e1561ae7c56cd5d31fb531dcb6897ca02d0d205c0ce99597304ea36b7b75b173e31a9a4c07ddd143ad13884aff0a7c3479bce WHIRLPOOL c1b28898ffe733961bdb622e8b430715c74871cfaab0348a9e5990df5a92676e8fb8c199ea1f1a06fa6c6ded65877b987b802a7a9ea0b7023cbaa62fb52eda01
 DIST NVIDIA-FreeBSD-x86_64-340.96.tar.gz 60536275 SHA256 b67962a4433dd1fa86cde038bb244a547f5ed6c242febc348d618886b7715d09 SHA512 1e33f062d4414011406466c1c91c70e8280ee27542bfe2e2037be82cb1186ece661be5c53ac7160f6d912ee0e02411145c9a6d06861d89d5c5abdd493032cfa5 WHIRLPOOL 63e0d843f5c3de210c9f880efada84dc08456b64e0e746a037272ec2988ce00b09f9033cedca45279aa79b80e2edef1b81dc261415e6fdf0701c62409b50e7f5
+DIST NVIDIA-FreeBSD-x86_64-340.98.tar.gz 60539385 SHA256 c2b8c7681c214de4c29fb1d8b9a5a9d17e371350dfa14dd583bc3072fb692f61 SHA512 389b1682344262b6c44e33176c712f0c0c02abef4dc0d44d923add5aee105728639c7479a3e0800687fc876e7f8184216b5518ea24e9e2b969b26ce8c9533bd8 WHIRLPOOL 20815ace25c4ba38b0bfe5ad2231e8b649135667c7d3800027d0ffdcca279dcdb093088219a2e458a2779556c8e0883af074a9e02c0239bfe2c40fa06e65ddcd
 DIST NVIDIA-FreeBSD-x86_64-346.96.tar.gz 58774970 SHA256 89daaff29afe92d825ec8c00149a703b4eb234e4f16bbfb98673f077521bcff9 SHA512 99fd84f1b2177b4af2fd83088c4f8a9a6259f059c002a771ff9c3993953787dd96f83322e4ce611234674a00792a83fa439af915d6ad6886af6de2d88de94edb WHIRLPOOL 5bca7c540c713b8e070b7d8412bcc2547335b9379429dc3a04ab50eae22c03eaa922486a900b2ab3cf147e0c4f2e8d3b60e81aa329b6b2956c28d2b32900082c
 DIST NVIDIA-FreeBSD-x86_64-352.63.tar.gz 57026971 SHA256 ac2e3926df50f6c0a020b359b29dee0f81a9474d7d68944edf9026c73f672cb6 SHA512 7ef75124b4cdd2de67f3001a74d0fb8f13f4c767c806615cb993749a54e7932d1a9f45b162bcde5dd1d617764950290cd240aa71cd3b0bf11384606986449d91 WHIRLPOOL c9a69476b8d73fa242b2f667b2eb7e40d9ec88f2a8dc65cdd6259573f53f7573e28f12845837be9b50210808536e5591b5853963348b0ccb896fc70a53ed5258
 DIST NVIDIA-FreeBSD-x86_64-352.79.tar.gz 57044396 SHA256 d2a406c4a7502096964b6fd19e99a046a0106a60ffb9e45865156c62718bf49a SHA512 7fe8564744e522b0f8ddb2fb3bc44235e5189d87acff1f894f271404315bbd17ea41f469c6cdbaf51a27f85e8103ed3cec574ed29323deeb56869746691e977c WHIRLPOOL 677b670218510228d9a03dc0f259e36a5896124ead204fff2d294135c1b7d79dd10c0b2e144e79a68d27b282e12097adf76f8694ecb5daa53f4b689935130c6f
@@ -39,15 +44,19 @@ DIST NVIDIA-FreeBSD-x86_64-367.18.tar.gz 63499863 SHA256 be862c654e290b32d78275d
 DIST NVIDIA-FreeBSD-x86_64-367.27.tar.gz 59357230 SHA256 dea9bf156229b9353e033fa3cf02685c14e539d959d7c2759f233ad1f707f2d2 SHA512 3eb129723317d277c0788b966709369c382035e287e4e14000fae09b98bc12359e5218205a86abcb08894978343f3185986d643df3ceeb81b35ba475bb16b99f WHIRLPOOL a33ae3d01d953b090e169e651ff9cc478d91ea21753cbd4c806dc08898edbd078d191d91ae1f7d46dea8ba931bc63f722bb88e728e31cf98a7681c1d806bd1a5
 DIST NVIDIA-FreeBSD-x86_64-367.35.tar.gz 59393955 SHA256 b33057ce23ce1ae44ddd246a7d2d9e2b0aa2ed5a289d8a83e849249de81a1035 SHA512 724735dbe9a79edd50405b8ccd76bfca35d706b61f489fb57c6b7b71d070148ea97603abb96deab68df1c56e2a48e301eee75fc0de99b15b56d112660ef3bf14 WHIRLPOOL 690220131b40c8e84184c8fc0a5c4f511b44c84863f73b7610451ad9dbc6f563ce8b3b86b38b0f5b2311a2721288d788044c3477a4d76563effad1ed706cfa06
 DIST NVIDIA-FreeBSD-x86_64-367.44.tar.gz 59577943 SHA256 e07d21b0ad39a0a24cdc4840094fb2f2de2f52b704538f7ac60c019465de7137 SHA512 98433879d9093f67a1b794e4c171479871cd489d5577a58084c3165c26d9f733117cf9043d33f5674f51d81dc509ab545b65d538a261f9dd6db4fcf2855f3655 WHIRLPOOL 0320b14e56f800b6fae313b61665fb2390e8f2ed1df63126fb12fdc08dae67ad4e4e9fb9a58950ad26c8e62ad4ee0b3ab96aafcf53a525687e240a77b58c5291
+DIST NVIDIA-FreeBSD-x86_64-367.57.tar.gz 59604884 SHA256 6f2986941a9f4cdcb3692c39919e5eeec09f2799b7797d3c0be0d4c61f7eed5b SHA512 06e4fd656efc88260c10b2a86308461754302dc9bad88285efe8b864012806f2d7147173ded9ee7b4ef2518ddbd6f02c5d36b184f913176732dd90cce0df006c WHIRLPOOL 9c33dd392ba0335b08c7710aaf97564d7cc0fdcc2fe87ec67ae1932848dbd6e6ad0437f6b44409b11cefc7ec33be7656199dcb2a34ab296f969fd65243bd114e
 DIST NVIDIA-FreeBSD-x86_64-370.28.tar.gz 57905860 SHA256 5087a93af8aaab6cff35ba60c9d67b4249827f6b7681abaaa571a20784a54552 SHA512 40637d64a0ee5029bb1c5ad7a590c5be61253ef6283c4217666768ad8601d7f51ef0d8705c8711f65c3d0a5a5721490813220c5f9186c6d2d12baf5d9c11122e WHIRLPOOL 361648788b7efb9e550b3e67d2e6022e31dab29f5660c42a1b6c961fe4638216fb8785814ee9fa1636fc39c39afce7caffbdc24fcf8bbd14e4eec5b5eeaeb1eb
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.27.run 25585174 SHA256 ae0855b247d5a5474561c76a79536fe82c44bd10e6154792978c5572d11c47f9 SHA512 dd60292f262e1d7d6cca09a35c3f8b65820d216d46f2b94feb208554496b30a983a73ffb8b2a1473cef0b7e08a3cda901eeca855e1db77f4f6dd23779772580b WHIRLPOOL c55d4102a6717f81d8bde7e66d1772c7b1f370d4d610ef61561c94f5ea6cc4797b5f15b9cbc31216b2ef9ef9132a66682b280d9ef5b74c4a57ee2ee8da6c1122
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.35.run 25628654 SHA256 6087bd2cc594f860d27d26e30acd3593310ce00938c10e5729175f037efa222e SHA512 3157c3dc9d07dd0eb8aaa0bf21edf62aa1338f10c1431981494d2a7b1f0be8a1eee8b5bc41914cfca9b4c76773b0056e7ad5c80a4c7acadfadb52a7647baabbe WHIRLPOOL 49c8896d1a40e1f634224227100b303c3d2ebc66ee93f31aa18bc39c898585eba49400d148f47476e4253d35d7379047dbcf7f43cf027df0b16179bfc8912db0
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.44.run 25674978 SHA256 b42af2009460614c6d4b6585535dc2f0c1e98244f00bf75ece37dc31d2cc45c3 SHA512 0fd72fe7afa1415eb961a5308c142316cb5311195486b331c406f4cbcc7d30dd5f0e85e5b179ffb8f38ce5ee1b5abac671d89f62b7dc7e1b1d738212af6acd91 WHIRLPOOL ce2b0fa6b8c545af63292da214cfeb564f765179f531907ac7750c7a9d890816ce869dd7e6898ea0a0a6f446d20868d55c235a5ee2e88105731e8812b5f67c79
+DIST NVIDIA-Linux-armv7l-gnueabihf-367.57.run 25701866 SHA256 e856debfabffe0e4ed2900e4acbc8e68340c4773651ec7a0000659588431ef7d SHA512 2d1221b8c6f01148412790c24f88a74104da4dc40f30ebe57a47468818c811119ed629ffa565f3ed58ce0b12b292b4304a2b364a83faff41ba14ea747f4e1c88 WHIRLPOOL bf7011f50360516f76ea5e176aea7d761193de877a5357a54704c60d512faf1af8e8e2450c547b5181fba98ee627a297b1c573e147c4db623324c1c35396330d
 DIST NVIDIA-Linux-armv7l-gnueabihf-370.28.run 26117701 SHA256 efb60a23aa22b46e94e91d5f5a5fc0c17b47bcf50471e4371653ced5a5350dce SHA512 04699849441bccfb9214fda4c7ff8ecefa11249d1fbfe470e37fefdd132becc225a1bcc16bc976c3fb145a427961f5402c95ecc84b613adb71caef9c96fe7d90 WHIRLPOOL 675a495594c46666ec11c83a76cdc8821e9b57079ee53cd7adcf00e783d121e163b7c5b10598aa55a1fee72eee47defc514fba986685af41c90ab2c5d890abbd
 DIST NVIDIA-Linux-x86-173.14.39-pkg0.run 15134997 SHA256 a09935f37121ed3db8ae3da63a0d8e9d4348a19c859811c9fe44d6ce8e3eab23 SHA512 e24e15ccec725d3cbca502c2b77061776a81ef92917a950adec4ff6bdc34f10903aa654433177ea74be0dade4af81c5380d5710d375a5ea445940d06154bde93 WHIRLPOOL fce3d8e4f6cdf698f5a057514b6fe220bb1011025bdce5bd4cf0e424fb4d306d38251b6726bda03f290ea8137d5a95ed418cf8751722879f9042462abd9181b6
 DIST NVIDIA-Linux-x86-304.131.run 40893199 SHA256 d2554bb6f7867e7762d0ecedcac5bde7de0634e43b952bf466323ea8b4032da8 SHA512 3e67c40648554dc49472081eee88ae982c3b235b3346e4d9e7fb5ae33ec5f10ed088da804ac7d8bd1565995df3861f12b3560030cd3a19339a2d35768b0a943e WHIRLPOOL 88e9cc0270a4fc64ed8475a217c7c8c50e6ea21fe14b5b5beb16f494bd62bf5ada2f47e26e5380dd3d0bc678091e29f0e26937eef1ee3c7bdc5805153201bae3
+DIST NVIDIA-Linux-x86-304.132.run 40910791 SHA256 d460f6ab63cc8c1f9fb89a344ad0f3ee1a90e7078b4edba78d86433e66bfd927 SHA512 70a6ed74a93ac2a1acec5eab5078dfe05fab66c6264d67f3238a6b28af7b39f7205e237214bac4ee5d2366e8c6a4a63dfc8dc113e9e977ee2387c5c8c63ccc8f WHIRLPOOL 69b24a57d906b37cc87f081209712f92eb2e7df27a2a030c51a1ef7bda607dd404b57d1fc008ee3d1ad3b81c176da1806e7b591d00a0894f2a0273ebd494e4dd
 DIST NVIDIA-Linux-x86-340.93.run 38703394 SHA256 4a81c158302c595e1e72b5a1812eb3c67c8cf584ca74b1bc24163dad5289d612 SHA512 7507553bd4b11cac2cd882cd8afba59e773f58a26e67ee7e781c488be963a4f1eb54dcd72b40b29d33dd81c74d4748a76c1632b2c8ea08b524b4318c18b5dfe5 WHIRLPOOL 242190999da74f2fe4bfe4b223f43dec6ec73d97afd1e84e2c78c5fd5616d9814b647067ddf3f591ea8064d29234491de1c6f87b442e240d2aac4a1e598aefad
 DIST NVIDIA-Linux-x86-340.96.run 38720587 SHA256 c40e2778cd1ab036a76e1896fe2f77c4aa7baa215dbbdb11a2f4c5f05e1a478e SHA512 c6306a101b7dc6298eb02290fb7792f624b8b16b1449b5d58148617017e8fdb87f1838f99b225103bf6a81c60a3246de9a27eab89608f099273a1c3d1c0003da WHIRLPOOL d772a20a9c7badf695ca3572db3c0b7e5507926297e6f950965294ac30ae2d8f206ba5c4c229087fd7cba88427eb0e41fb3dd1a28c4f2c8c23fa70b27002180c
+DIST NVIDIA-Linux-x86-340.98.run 38664575 SHA256 7d18bac3f570d72e3aae9dd2b74f53f9aa7b07bd5b1c2d3d1a9ae2f8104752e0 SHA512 ecb3b7ab216bbcc606cb540a317dfc572dcb7d26ec84f1ff744451ec367ceffc73ae75ebc269aedba1850d3bac0d946b8b2fcc5929d7a3c27aae4fd3032a37e6 WHIRLPOOL a473566a76dace7d35fcc81a51a00ca70f24da9aaac3b1dfbc94c375a77a6be0dea9b7535d7dcbf57191e6ac04276c5e78c0e9decfa6fdbaf5d4f9d8e6a552f5
 DIST NVIDIA-Linux-x86-346.96.run 40751579 SHA256 8a299ddce7d34389206599a306a41d30754bb9bddda1be1a7fd85012f9aedf39 SHA512 9d413dd0559a4035a842527371cb1a27030c9eaeff510e529d2a205ea3eddc6e5666989418a6172aead4f5b2a924cf4cbf05269cb435dc2516af37eb35ba5d4d WHIRLPOOL 055127105804f2a6dc5067b20e771b4c12ad9dad62f4e874719385c7115e8394a8618eed3d6b330c8b5d90cbd3ae7fd09998e2a0017e35b4adca0f626110f238
 DIST NVIDIA-Linux-x86-352.63.run 42983438 SHA256 484442dd5163c3249e86736b1e297cb4b500f60eeeaa2ac6f570335fa1e8b96f SHA512 499e9949d0221e40c8050a589e5d174d8c38108152948876cd9e523ce9d3b7f85646c40c76d2af032ead848d6508189afaa27226100d72b0484ce3634d3434a8 WHIRLPOOL 79424e46ba2a4a3fafd01364230779c567b5a002e4bbe9056415d6cce6ac8492e88e0676d64cb9deb24eefb5be61221c32b4a432224ce835a884f93c55929fe5
 DIST NVIDIA-Linux-x86-352.79.run 42378162 SHA256 2929d6e509ed4502312c1b7384f6d12cb63bd4af03fc847a281d3ccdd4db4f69 SHA512 d2b50e55110f84412fd5c456849ceac0537ede643d12d1228cdda9dcca52f1f9d0a6e5a02eb4ee32cb68bbfa5adeacb8e4fc4e299848f70954d032daa989c122 WHIRLPOOL 19153e166b561dcc04730b6439999e625b5c4358f69d18127cf347cb86d39cb22f87b75d2623916021e9e774d234d6b41c3dc91f0524cebdf44f2a3007d4b8ee
@@ -65,12 +74,15 @@ DIST NVIDIA-Linux-x86-367.18.run 50290002 SHA256 9a5184308a981b1b36dde4466006b7b
 DIST NVIDIA-Linux-x86-367.27.run 44740794 SHA256 faa7c0f73c04a6d343a3952d264ec56fdf816cc6bf2a1c1bb95726401e99654b SHA512 54302f0de936a859561b756989ff84f73afe41dfb89ed680ee3df3c46b0de9d57eaf2d07876dea0eb1154fbc1a716d4d3e693cb7eaa7ab325b4bbee569ddb709 WHIRLPOOL b46005fa221f0e9b466168530ff08271c63d72a29ef1dea2831215aebd7b4f8dc2947d1f56f1fe490e4d809ed337f7f9116f0263f187dbb7f3d347378367a552
 DIST NVIDIA-Linux-x86-367.35.run 44717708 SHA256 38cb22fa85ef74ea960d3e5d644838cd961984ffc32bb0d052414cc7fa32e315 SHA512 3151995153a3c3857e291df933dbaeaad779544a39a9482980ccb89531ca924d71e6bf0e44767755c484c4b693cfaf01f55e61e3d82cef79f73c0b1964411f39 WHIRLPOOL ff85a42f339c59ceeaef0dc2c6ebc2a52c516fb09f05d16ad91e7c6f7d3368b8af717a2a716a1d606927a2bba689d755ce64b0d1e256ab809040c662cbb2f1da
 DIST NVIDIA-Linux-x86-367.44.run 44079774 SHA256 b2ad4d0d4a2e98528e877ae0d98c38039c2400b09cfb5928cd21899f3a991291 SHA512 5dbeda283b277697eb161b01a6d361a68fcc5e982fcbb9f6c9d08705c9af8b0bf3d78cf68feddce9d72407eea3ccabf955d404975fce5e56d1690bc5008577da WHIRLPOOL ea5f4f9c43cfb6db33906e715fa6b4d5a298e4bbf76959c18589753bcce5b2faa91c38e0aad10e3bcd89b28ee2ee8b73da3deee6c048bebc08fe93e32e214b7e
+DIST NVIDIA-Linux-x86-367.57.run 44731570 SHA256 43d4e926f71ac6c581018badf467458709822e97a7564ed9f1b521b7b63d88bb SHA512 6316cdd94131057a584b3a893cfbca5e8b0f5e79060cb5bfe2c149b5a76bdcdc21d20338febb54f7201985c5b05545c3f6b63b26c32699717057cfb047993972 WHIRLPOOL 443ca9b389f78c13ae5344cb3cce67035a2b5a605b94518d91c253965263d37a84dff9ca29d47509a2d43017afde4786a55bfd45613882b5d4889dc27b67622f
 DIST NVIDIA-Linux-x86-370.28.run 44189522 SHA256 6323254ccf2a75d7ced1374a76ca56778689d0d8a9819e4ee5378ea3347b9835 SHA512 2df8b3d1064073c8b793287994fe0648625d095f3434b7b67531e19632cbad318994df90b55de18aa457d55a1374b35d64a646564259995d3f2197c48737921c WHIRLPOOL 85a089c833311abdc06bbc1fc68cd5ff8ed43dd5e5887d340dc854f905ae741de0ae4343d024259f493dd668075096c460bc1f93c1795d2befb81dd3c4a4983a
 DIST NVIDIA-Linux-x86-96.43.23-pkg0.run 11504817 SHA256 51e6adf4ba73071622045fc37169f80db3ae3e784dff53b29d35146a04042142 SHA512 bed5726e57637481fe4e3c03a65ec14fe949f00860e729ebde408f4fd861d7bfdc296a78bc2f5d42e8b282db09f4bbde1e0545df7228fa20227080dc4b868ba7 WHIRLPOOL 6d4fd1786c11f4e326cc3101d0bb1a2f8b63c25c3dd59f10188f8355759e2861ce44fd53d60258b513d5a1d6124d0f91ba8edf4d3668b6feabfb3e8d585f14fe
 DIST NVIDIA-Linux-x86_64-173.14.39-pkg2.run 21100833 SHA256 15a953666d5681ba54c97498b578ffd286a1dc96d605f3b02110f3f99813100e SHA512 a65cd496e6ed57f771c3d99f37f616a1242d97844f6faef7a807825ad899c0e536a99fde397020839f0857883b934032f9491024f3047a6b06d3eea1f5d77713 WHIRLPOOL dc5f243b7d1de7e2d1b7f005e018a2940d63335b11a7c83c234b348b7a1839e9131169d2ea928bd8c2f549a4535149b03e16e6c94d59dfa745f7f904ff790a45
 DIST NVIDIA-Linux-x86_64-304.131.run 69415084 SHA256 74b7ec1c31dac03ee7c3e04612cadb9cbaa01ef4c796c27a0a649f7d32dccd0b SHA512 ddfa1f23600821dcae17ddb735b615d67504c4e276d9b41813e0f8d7690fbdf48f79644ee4c9e5449ce22a31460734cf325fc83975e0b48a0379a85cd4ef747d WHIRLPOOL fc08c2337a1b80b0444dbc914f7d17441995e4965c435028194050df9f5ec1606cdfb5bf11e56f79a736e04cf0755b296017fe79629c5ded18a72093b8689bce
+DIST NVIDIA-Linux-x86_64-304.132.run 69426739 SHA256 69aed9ede0a6a8c645e20b9825adeafbb985056af48b68a7ff7ea4b76a7ffde4 SHA512 f71c9a5020de48fe166176bf6420a0d85b525ecf70ac1c819fd9f846af0f6d048399bda6059a36eed11561fcb10387a7d00132fa91839d618278cee2f3ad0dbf WHIRLPOOL 6b4e567f8a97ac251f9a71be11615eb405d238b8a9514cbd646f8a693d7f08f37179aa9ca93f3d6cfca5e6b53a936ec90f61717fa39db1d0708bb0880a450d1c
 DIST NVIDIA-Linux-x86_64-340.93.run 69813449 SHA256 ea2ac747fd473ea55ed5f6263bd314efa94c71384f3e03d527f8d550ba84c218 SHA512 f7540f3a49ccd67346b81332e4bfd03becef135f7e777cef3256fe33b3313456456ae095a352e333bbf6463bb13b9486a70718fa4c4355d66222bb0a7437de29 WHIRLPOOL e5286fbcaeffbcd3bd66c5adba8c20eb9cd64915b38606289cfab41a754a46b250667e6ac3485f8c3ed3b5a16bc14dcce6a9227d486be71d5b58298ca7d70f4d
 DIST NVIDIA-Linux-x86_64-340.96.run 69824601 SHA256 a7553a5749679994642ef0262906e6431dce354c03052151d9821d29dad7470d SHA512 6ffa4567ef6f5e09bcd50760b87baa2abe6a6ed1fbc280319101cc6582f2a381c36ab3fd1b4d74bcb5748adc3b82881618673ef77e5fe1a74c19a657774bcd87 WHIRLPOOL 823488bf9e338fee314d84c7ad2af6556548b94437c98094ca42911d74f19b5f44ee9809bb112a244016dadfdb372232365a355a4d40eaf685f5e0fa13868b58
+DIST NVIDIA-Linux-x86_64-340.98.run 69984344 SHA256 c800991c80fc844c9a80466edb7ae854b4e67314515988c4d016e15d1d0a3f67 SHA512 969595e1fb2c729f3fde45411d650bb437c221b5102341bd138f5be0e2a90e87d9ad534820ea168f1af5f981af5d1e8cf564a62db495580c054f0f80b0cc5c8a WHIRLPOOL 23f9672a2bf47284294538a6d25758031d9ad0e5af7791a56b8c2add9cc00982ca5b76859c710c6f56a7dfb39b2f3d2b35c77e0e95c70587f7fd01e712b6ab68
 DIST NVIDIA-Linux-x86_64-346.96.run 73538317 SHA256 229b28a6b65965a248d07223d941de7d79b54cee7c6574f1037293e8a8026727 SHA512 188f8aac88085c3cac9637e87f4d9259d0c508075bbbf684775650a12f4760f47ba9e92f79e8bbe96d33ee014092edd38efce7dd730f67e0f11c2079eca938c5 WHIRLPOOL c9f4a5163018dc0b53aeff84b410cb34720d06ca7bdd17ce166ad3a2b057ffe94e6773594cd617fce79d9d0a02e5e1cd0525ca30dade7247ad5b7b20ff661a64
 DIST NVIDIA-Linux-x86_64-352.63.run 77647248 SHA256 3705a122fbd4fe04f4077dea7ba8b1127f1a9b40e92f3abc7afa91964e817e2a SHA512 37b38be1e9394aa8bdd33cfbdf3c16ed62b16f852f76e013fb5573803e057ac51f6728ff594f7d48008871d9503fe64bb6e2dfc00b4415a62894f7f26c6ad719 WHIRLPOOL df8debfe7655982a7ca2194cdd833e8dcdb69250077c18551a0b93c31eadeea793b21118ecdc7b9f59721ab0f8431a0442152d3d685a1afac87587dbed3ec816
 DIST NVIDIA-Linux-x86_64-352.79.run 77140528 SHA256 e05a825a5e0027f062b1a1344ff3484286f50df990d66d567348b80101a0c4e3 SHA512 b54257e9aa6f6353d4f149d4dfab5ea12bf1907260ad98fd9102da1b458c1cf32e28707c8c5136efdaeccd0f60e6e013736b349a59ea50044dceddf265afa38b WHIRLPOOL 25be659c5784558c42c4f2fb0b50d5d56c0419f175ad8c019e00bdc033707297668705e051e4f176fff67340ec68054848a8b3aa5a9922ee0c9f9a270787a6d6
@@ -88,10 +100,13 @@ DIST NVIDIA-Linux-x86_64-367.18.run 88160263 SHA256 20d0e682ac2be862e574d3de5b39
 DIST NVIDIA-Linux-x86_64-367.27.run 76945324 SHA256 7b84583f8ed90b2b97ed4f9bbafac2b054da285fb94b37cfaadc5741cb442571 SHA512 d1aac4eb2e805054463cb974e4a4acf96a0404bf75de37188ccd0bd5a88916d003941b70f695216dee543b12779a38787c9675bbe03803ae15d6a48d1013ee28 WHIRLPOOL 8b71552e91eb37f1a3f6c0a11987471ef366fa97b4c580535ed35c8b650d3cb58ada09c5d1b4cdf803c5bdc3720df2f69c9e44153088861f2c78b55836559b7d
 DIST NVIDIA-Linux-x86_64-367.35.run 75600336 SHA256 d2df3fcb1a145984b9de4f2f38a90e353469e9d12279cf5e2c67c553b112d075 SHA512 18e2b1f342d1fc73c68f3c3ce526ab744fd7dd664cfd857849d497baf94eb057482d88444a792b64d3cd71ac624b9cbaae39b7f1884ca0370521cac0e5650d1b WHIRLPOOL 93612de22e0298383dfb16bf0f8893b55359a634c331b981fafebb1cd1a1dcfa602e1b35d2ff4a128b60753146bc494852410352be9309e531c78f62f708d8c3
 DIST NVIDIA-Linux-x86_64-367.44.run 75032664 SHA256 09a4e67afa79c159f96071215bac3e027b553117b91ee35a4ff134a98d8fe7cc SHA512 efb97ee084f68a0d4ad658f8700fec14a3b3f5ec585a14efa88be791f951445d8b6b944103bfb95408aeb43618f1a1f6fda5ab4ad7f7d2de82f1a7e92f354fa1 WHIRLPOOL 54c642a3c6b9065980569fb45cd358296205c6aa483cb1c402bc75a26f00c95783786b7f0414b11a19f0c7233c77f802c0d40494d5c859ae5c4c8da5f4eeaf33
+DIST NVIDIA-Linux-x86_64-367.57.run 77127324 SHA256 a1615db29f1377817b610cca997e0339753ee9d58b28e1618b892691df3a8851 SHA512 fc94f5df7eb2ef243db381bc4458f911a6d76bff949701bedb249a3ebf369ff3da8dc5a7d52ab6ae3f23e947c419923f303cd57429a266a0f8e96df1039b1f5d WHIRLPOOL 5580b7839652c250ba134ecc97438d1810453d5bd5d8cffd44f01379d7509bca6f0c58318a150a5b4786f955d4de708ce9be618572212eca2c7098a36eab24d5
 DIST NVIDIA-Linux-x86_64-370.28.run 76690360 SHA256 90aa3c186e45b39e6fc0064ab8dbda8bcc897cb61d2e7b7cb30b4ec9a4b39239 SHA512 931476f92a63d142478b2d6b3da4031769fd3b93aee2387800a78b1354b59a5fb5e4e293436b6b4c246627d51c0f55d140ab230de385cb1567bc8b25518eb741 WHIRLPOOL ce866c38291d2ab4aeeff05654a0e61196129f77baea5af93ddbc22fab9574ba39cc05d58020ea2407cc7342f0bcf5c2702d42290f4cc3b53c9e04fb7c617413
 DIST NVIDIA-Linux-x86_64-96.43.23-pkg2.run 15962375 SHA256 ce8d8253e7dab7da63fbdac449ebf190cd0c10cbfffea0f8d0165515f851bc64 SHA512 04bec1187a6024a2b9839f008ec829281f1f2602dae2e639030bc385943186506bcaa2b46a230b2ab87f9217190841abc62f9e2d6395ab5559623389c31c6563 WHIRLPOOL 0651c44a51a1a06fcff5bfddbf9c3e408977e03263c7fe806cb6c01f9fe92f716dfe4e5190ffe1048bde72fcffdc8bca8267e74dd43ba5c9dfb22b6201fcc2bb
 DIST nvidia-settings-304.131.tar.bz2 1480447 SHA256 d36d2d1ae7c1bb72cd18e713470546d2aa7057624b1f61319daf559a94054d29 SHA512 9269f54f87581e29e6d7cabeaf989c70cb27aa55f6b8f5f1c71b8a14401326d06ea194710722b41283cca56f5808b90a9b1fb12158d48c6332cce15a701c5796 WHIRLPOOL be8e38a09a0bfa40267b9cdae2800a9ef00a89e28e618b743b7acb0cd9ece4b242b74ced32018d735989592300b49b2ee683caa11a1e161bcecf070a58952dfd
+DIST nvidia-settings-304.132.tar.bz2 1480097 SHA256 53b86952ec29b32bdcc838199c3db802a5affd58e348f68ac9f4931ae0e2021f SHA512 512db744830b31ded109047e0c736dd18ae01cdea2b94099d06b7f30a31274fa4fd689b286a1e12768ac618fc4d38be9eb7c0d58b1f0a3e2b67ae4a133cec97d WHIRLPOOL adce5fce462119dfa1569c4b2241f1129ae2659ae8964a9556d730bcda246c7db08b6e6b14ae644df8e3fcc990f84c9585b4ecb9617e26833fb70babd447c606
 DIST nvidia-settings-340.96.tar.bz2 1551011 SHA256 af7303b070a4b41e388a7be6dfae17f020a5cc197170d4815b9a291a3a98aaff SHA512 fc6096338e48c347e4e854d06e8f63d8edb6527953996e63f3f70619be59d0436176547b5197ef30d18a82cf5b58dd775dcca4a2624107b63cce1ae589f2b154 WHIRLPOOL e7266ca0395aa1a5666a43bf6e54e258706d4e76bfd15079485e2379b332d2d6ba0c97b32e49f5b041340bb2d3c0e11dace702754ffc952c149557e0ab9d820a
+DIST nvidia-settings-340.98.tar.bz2 1549627 SHA256 6ee6c8d7a86f03696ce0464dccd8a01a4f04b732989ae2658dee3c5b9cff9a0f SHA512 dc1dc39b59d591a2211dded2a6379da63f3678e38fa9f5e9ea7f0bb9368fc00085c50bad817d90f52d29f5247ac93350af0262d06bd32beef259234511e7c251 WHIRLPOOL 4bc4cbd883c86206dd03690f7c41778655b7db731c04f342713b1bd4b93f906fd5598f8c1afee8bb14236998940edd6497dc430add095961ba76735532176d40
 DIST nvidia-settings-346.96.tar.bz2 1558100 SHA256 b293f269aac01dfdf59e9dff46d774f7ca77d4628f377c01cabfbfccd28f3cd9 SHA512 9ead0fa5f0a55c1080d9b4da6cf96c2435c1a166297187f2c7d8b95a9e66c2e9cdd2e35739a4304b02ff1ccedb0421a7dc99a546df3a8f18804da133b93f50e3 WHIRLPOOL 4bddea94bb4c0dcde6b2b06507ffe890a1996471603de2d494f54b783cd36d44aa620fe03d16bc104ce99d6371a50666b0f029a309b78226810761cc13053f98
 DIST nvidia-settings-352.79.tar.bz2 1570988 SHA256 1f103cbfe162281355c484a5c3ef9ac1bb0528acba2d229111da7e58cf18f217 SHA512 d56e20844bf71d55e51aebca38e922a2985fdbd4edab29a07f9a4a8a0b883ca469c3b949f048837ec77464da90e2d485e5efcd314afc2810c44ad7dc497b53fe WHIRLPOOL 51999a744f6b3e36c4d12f841c136a754533de09c1802f60392666392beeccbb0bf1489269cac33b12ccb061554609d3dc8d8ffbf45b4cb860108fd9f86e2139
 DIST nvidia-settings-358.16.tar.bz2 1571104 SHA256 8cd78df738a824e282771755ae9a41d5b194b15f9df96b9fd23fcf3005967d35 SHA512 0438aa2599e98f68a04c9f663f4ef9b05092df512fbca40ad0fe17e25ca4d940d02cc55e9fd44a2551950a2a30782d1e48553c4bebd071bfff280869a6dde556 WHIRLPOOL 60b7e9abba3163ac877a3a9d944cf72352e28d2fd1a3af0996d3b7d40ef48be7f057c1063f9ca61c693cbf1bff57be61704f13d941220bf74a8049954f87154d
@@ -106,4 +121,5 @@ DIST nvidia-settings-367.18.tar.bz2 1572077 SHA256 035a45b3deca126596c1ac6088e13
 DIST nvidia-settings-367.27.tar.bz2 1572210 SHA256 d141d56a2e9b88686a391f97636df4834b5dda132726edf69f329bcfd9db5a4d SHA512 94a29cfff1b56b282be6802deb9d6b1b81a41f254464bf0ece567e6d7d708574ca111df32d82e4af68ac2b6bdfda387bb6113c60834fb084bf15582bff6a2273 WHIRLPOOL 4bd192d2cc316f1bae3af40ec8ae03c679aa128f0d3aaedb4a3dd1240503e6ea56d20248b7f6ec7d82e1ec972719cb9983cbc1af60263159ae9d42ed7b3f971f
 DIST nvidia-settings-367.35.tar.bz2 1572606 SHA256 6b0cf0b63bbf8c3d29538587bad8b639b42f8c9bac754bf5ca629df2054a0239 SHA512 9acba704118a8523ec92d26eb998a33755d334a8c5bbd72954ce9b9afbe2cfa63a5b572199e507bf8142dcda8f02a85517115bf07386e15fafe1915ace736770 WHIRLPOOL 644e950c22f686c00e59acc499f3c7af1578cdd45ddc8e4fe53b64abb8c703062e6f2a2548cf636359d52b294ef7e31589f06b7d3e71043d10554f4226169e17
 DIST nvidia-settings-367.44.tar.bz2 1571750 SHA256 74ca3c7ac3e75c13b6aaef92739e2bdb6c9c83e4d860cbe0f1474746c6123fc4 SHA512 d021b162f1cb027da4c4f87e68608fb2efa01f82e2fb739c76b7acd2a2468aca17e9b0b56a61e2a5e2b9f34e3232f373a268eabbfa6ee49f9e9548d53affde0c WHIRLPOOL 36f8d2ab83ca12f02adab1ccd9d62cf763de916c0cf1cc5f18a14bc8428df2ee91fd270d481d225766919fc2b14361da33c5baaf83fc14e82bdc624c88a7ea3f
+DIST nvidia-settings-367.57.tar.bz2 1571905 SHA256 aacb66b130e4adc034e10afb518c919a96029b31b14da8975b08d250d8750140 SHA512 57bf414f4aefacd994e73ea3b31de8cf9f5d6ddc9a95ea1456c21905510c4ba9219e690a1b1bb1346b57a80caf9856c5fede80734163392f0788b995d1bd4cea WHIRLPOOL 7294f84afe8a00f59e2073773d12dc0b31273ab49fe318558eee84a72b7df1233fa004949c0512bff1974c5edbc4749eed68e172336241ea9cb24d6c585a8979
 DIST nvidia-settings-370.28.tar.bz2 1573509 SHA256 59d7818a4837144e373ce958233db059fde59e279477001e187579770ebf0c5f SHA512 c4da6ae54839a8f91d3557153a648f69095e9a486dbaaf73e453d625660f1adcada12ee5c4bccc1afe2cfd454ead13c1df0e59d5d6aa70f6065823d53f7bb461 WHIRLPOOL e5f0a9fd67e50aee42598d6a0ce9a69a162405a6121518c7aaf9ede409e9bdeb44e3102a123eb6f8c963e0fdaca429a8b693f6af2f0467e746c42f57a496d45f

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.57-profiles-rc.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.57-profiles-rc.patch
new file mode 100644
index 00000000..b29895c
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.57-profiles-rc.patch
@@ -0,0 +1,11 @@
+--- a/nvidia-application-profiles-367.57-rc
++++ b/nvidia-application-profiles-367.57-rc
+@@ -44,7 +44,7 @@
+         {
+           "name" : "NamedVertexAttributesApplyDivisor",
+           "settings" : [ "GL23cd0e", 1 ]
+-        },
++        }
+     ],
+     "rules" : [
+         {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-304.132.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-304.132.ebuild
new file mode 100644
index 00000000..a1ecdbe
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-304.132.ebuild
@@ -0,0 +1,488 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
+	portability toolchain-funcs unpacker user versionator udev
+
+NV_URI="http://us.download.nvidia.com/XFree86/"
+X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
+X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
+AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
+SRC_URI="
+	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
+	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
+	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
+	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
+	tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
+"
+
+LICENSE="GPL-2 NVIDIA-r1"
+SLOT="0/${PV%.*}"
+KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools +X"
+RESTRICT="bindist mirror"
+EMULTILIB_PKG="true"
+
+COMMON="
+	app-eselect/eselect-opencl
+	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		x11-libs/gdk-pixbuf
+		x11-libs/gtk+:2
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/pango[X]
+		x11-libs/pangox-compat
+	)
+	X? (
+		>=app-eselect/eselect-opengl-1.0.9
+	)
+"
+DEPEND="${COMMON}
+	kernel_linux? (
+		virtual/linux-sources
+		virtual/pkgconfig
+	)"
+RDEPEND="${COMMON}
+	acpi? ( sys-power/acpid )
+	tools? ( !media-video/nvidia-settings )
+	X? (
+		<x11-base/xorg-server-1.18.99:=
+		x11-libs/libXvMC
+		multilib? (
+			>=x11-libs/libX11-1.6.2[abi_x86_32]
+			>=x11-libs/libXext-1.3.2[abi_x86_32]
+		)
+	)
+"
+PDEPEND="X? ( >=x11-libs/libvdpau-0.3-r1 )"
+
+REQUIRED_USE="
+	tools? ( X )
+	static-libs? ( tools )
+"
+
+QA_PREBUILT="opt/* usr/lib*"
+
+S=${WORKDIR}/
+
+pkg_pretend() {
+
+	if use amd64 && has_multilib_profile && \
+		[ "${DEFAULT_ABI}" != "amd64" ]; then
+		eerror "This ebuild doesn't currently support changing your default ABI"
+		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
+	fi
+
+	if use kernel_linux && kernel_is ge 4 4; then
+		ewarn "Gentoo supports kernels which are supported by NVIDIA"
+		ewarn "which are limited to the following kernels:"
+		ewarn "<sys-kernel/gentoo-sources-4.4"
+		ewarn "<sys-kernel/vanilla-sources-4.4"
+		ewarn ""
+		ewarn "You are free to utilize epatch_user to provide whatever"
+		ewarn "support you feel is appropriate, but will not receive"
+		ewarn "support as a result of those changes."
+		ewarn ""
+		ewarn "Do not file a bug report about this."
+		ewarn ""
+	fi
+
+	# Since Nvidia ships many different series of drivers, we need to give the user
+	# some kind of guidance as to what version they should install. This tries
+	# to point the user in the right direction but can't be perfect. check
+	# nvidia-driver.eclass
+	nvidia-driver-check-warning
+
+	# Kernel features/options to check for
+	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
+	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
+
+	# Now do the above checks
+	use kernel_linux && check_extra_config
+}
+
+pkg_setup() {
+	# try to turn off distcc and ccache for people that have a problem with it
+	export DISTCC_DISABLE=1
+	export CCACHE_DISABLE=1
+
+	if use kernel_linux; then
+		linux-mod_pkg_setup
+		MODULE_NAMES="nvidia(video:${S}/kernel)"
+		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
+		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
+		# linux-mod_src_compile calls set_arch_to_kernel, which
+		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
+		# expects x86_64 or i386 and then converts it to x86
+		# later on in the build process
+		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
+	fi
+
+	# set variables to where files are in the package structure
+	if use kernel_FreeBSD; then
+		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
+		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
+		NV_DOC="${S}/doc"
+		NV_OBJ="${S}/obj"
+		NV_SRC="${S}/src"
+		NV_MAN="${S}/x11/man"
+		NV_X11="${S}/obj"
+		NV_SOVER=1
+	elif use kernel_linux; then
+		NV_DOC="${S}"
+		NV_OBJ="${S}"
+		NV_SRC="${S}/kernel"
+		NV_MAN="${S}"
+		NV_X11="${S}"
+		NV_SOVER=${PV}
+	else
+		die "Could not determine proper NVIDIA package"
+	fi
+}
+
+src_prepare() {
+	# Please add a brief description for every added patch
+
+	if use kernel_linux; then
+		if kernel_is lt 2 6 9 ; then
+			eerror "You must build this against 2.6.9 or higher kernels."
+		fi
+
+		# If greater than 2.6.5 use M= instead of SUBDIR=
+		convert_to_m "${NV_SRC}"/Makefile.kbuild
+	fi
+
+	if use pax_kernel; then
+		ewarn "Using PAX patches is not supported. You will be asked to"
+		ewarn "use a standard kernel should you have issues. Should you"
+		ewarn "need support with these patches, contact the PaX team."
+		epatch "${FILESDIR}"/${PN}-pax-const.patch
+		epatch "${FILESDIR}"/${PN}-pax-usercopy.patch
+	fi
+
+	cat <<- EOF > "${S}"/nvidia.icd
+		/usr/$(get_libdir)/libnvidia-opencl.so
+	EOF
+
+	# Allow user patches so they can support RC kernels and whatever else
+	epatch_user
+}
+
+src_compile() {
+	# This is already the default on Linux, as there's no toplevel Makefile, but
+	# on FreeBSD there's one and triggers the kernel module build, as we install
+	# it by itself, pass this.
+
+	cd "${NV_SRC}"
+	if use kernel_FreeBSD; then
+		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
+			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
+	elif use kernel_linux; then
+		MAKEOPTS=-j1 linux-mod_src_compile
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl clean
+		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
+			AR="$(tc-getAR)" \
+			CC="$(tc-getCC)" \
+			RANLIB="$(tc-getRANLIB)" \
+			libXNVCtrl.a
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			AR="$(tc-getAR)" \
+			CC="$(tc-getCC)" \
+			LD="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NVML_ENABLED=0 \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			RANLIB="$(tc-getRANLIB)" \
+			STRIP_CMD=true
+	fi
+}
+
+# Install nvidia library:
+# the first parameter is the library to install
+# the second parameter is the provided soversion
+# the third parameter is the target directory if its not /usr/lib
+donvidia() {
+	# Full path to library minus SOVER
+	MY_LIB="$1"
+
+	# SOVER to use
+	MY_SOVER="$2"
+
+	# Where to install
+	MY_DEST="$3"
+
+	if [[ -z "${MY_DEST}" ]]; then
+		MY_DEST="/usr/$(get_libdir)"
+		action="dolib.so"
+	else
+		exeinto ${MY_DEST}
+		action="doexe"
+	fi
+
+	# Get just the library name
+	libname=$(basename $1)
+
+	# Install the library with the correct SOVER
+	${action} ${MY_LIB}.${MY_SOVER} || \
+		die "failed to install ${libname}"
+
+	# If SOVER wasn't 1, then we need to create a .1 symlink
+	if [[ "${MY_SOVER}" != "1" ]]; then
+		dosym ${libname}.${MY_SOVER} \
+			${MY_DEST}/${libname}.1 || \
+			die "failed to create ${libname} symlink"
+	fi
+
+	# Always create the symlink from the raw lib to the .1
+	dosym ${libname}.1 \
+		${MY_DEST}/${libname} || \
+		die "failed to create ${libname} symlink"
+}
+
+src_install() {
+	if use kernel_linux; then
+		linux-mod_src_install
+
+		# Add the aliases
+		# This file is tweaked with the appropriate video group in
+		# pkg_preinst, see bug #491414
+		insinto /etc/modprobe.d
+		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
+
+		# Ensures that our device nodes are created when not using X
+		exeinto "$(get_udevdir)"
+		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
+		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
+	elif use kernel_FreeBSD; then
+		if use x86-fbsd; then
+			insinto /boot/modules
+			doins "${S}/src/nvidia.kld"
+		fi
+
+		exeinto /boot/modules
+		doexe "${S}/src/nvidia.ko"
+	fi
+
+	# NVIDIA kernel <-> userspace driver config lib
+	donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
+
+	if use kernel_linux; then
+		# NVIDIA video decode <-> CUDA
+		donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
+	fi
+
+	if use X; then
+		# Xorg DDX driver
+		insinto /usr/$(get_libdir)/xorg/modules/drivers
+		doins ${NV_X11}/nvidia_drv.so
+
+		# Xorg GLX driver
+		donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
+			/usr/$(get_libdir)/opengl/nvidia/extensions
+
+		# XvMC driver
+		dolib.a ${NV_X11}/libXvMCNVIDIA.a || \
+			die "failed to install libXvMCNVIDIA.so"
+		donvidia ${NV_X11}/libXvMCNVIDIA.so ${NV_SOVER}
+		dosym libXvMCNVIDIA.so.${NV_SOVER} \
+			/usr/$(get_libdir)/libXvMCNVIDIA_dynamic.so.1 || \
+			die "failed to create libXvMCNVIDIA_dynamic.so symlink"
+	fi
+
+	# OpenCL ICD for NVIDIA
+	if use kernel_linux; then
+		insinto /etc/OpenCL/vendors
+		doins nvidia.icd
+		donvidia ${NV_OBJ}/libnvidia-opencl.so ${NV_SOVER}
+	fi
+
+	# Documentation
+	dohtml ${NV_DOC}/html/*
+	if use kernel_FreeBSD; then
+		dodoc "${NV_DOC}/README"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1"
+		use tools && doman "${NV_MAN}/nvidia-settings.1"
+	else
+		# Docs
+		newdoc "${NV_DOC}/README.txt" README
+		dodoc "${NV_DOC}/NVIDIA_Changelog"
+		doman "${NV_MAN}/nvidia-smi.1.gz"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
+		use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
+		doman "${NV_MAN}/nvidia-cuda-proxy-control.1.gz"
+	fi
+
+	# Helper Apps
+	exeinto /opt/bin/
+
+	if use X; then
+		doexe ${NV_OBJ}/nvidia-xconfig
+	fi
+
+	if use kernel_linux ; then
+		doexe ${NV_OBJ}/nvidia-debugdump
+		doexe ${NV_OBJ}/nvidia-cuda-proxy-control
+		doexe ${NV_OBJ}/nvidia-cuda-proxy-server
+		doexe ${NV_OBJ}/nvidia-smi
+		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
+	fi
+
+	dobin ${NV_OBJ}/nvidia-bug-report.sh
+
+	# Desktop entries for nvidia-settings
+	if use tools ; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/ \
+			DESTDIR="${D}" \
+			LIBDIR="${D}/usr/$(get_libdir)" \
+			PREFIX=/usr \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			install
+
+		if use static-libs; then
+			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
+
+			insinto /usr/include/NVCtrl
+			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
+		fi
+
+		# There is no icon in the FreeBSD tarball.
+		use kernel_FreeBSD || \
+			doicon ${NV_OBJ}/nvidia-settings.png
+
+		domenu "${FILESDIR}"/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+	fi
+
+	#doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
+
+	if has_multilib_profile && use multilib ; then
+		local OABI=${ABI}
+		for ABI in $(get_install_abis) ; do
+			src_install-libs
+		done
+		ABI=${OABI}
+		unset OABI
+	else
+		src_install-libs
+	fi
+
+	is_final_abi || die "failed to iterate through all ABIs"
+
+	readme.gentoo_create_doc
+}
+
+src_install-libs() {
+	local inslibdir=$(get_libdir)
+	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
+	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
+	local libdir=${NV_OBJ}
+
+	if use kernel_linux && has_multilib_profile && \
+			[[ ${ABI} == "x86" ]] ; then
+		libdir=${NV_OBJ}/32
+	fi
+
+	if use X; then
+		# The GLX libraries
+		donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
+		donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
+		if use kernel_FreeBSD; then
+			donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER} ${GL_ROOT}
+		else
+			donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER} ${GL_ROOT}
+		fi
+
+		# VDPAU
+		donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
+	fi
+
+	# NVIDIA monitoring library
+	if use kernel_linux ; then
+		donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
+	fi
+
+	# CUDA & OpenCL
+	if use kernel_linux; then
+		donvidia ${libdir}/libcuda.so ${NV_SOVER}
+		donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
+		donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
+	fi
+}
+
+pkg_preinst() {
+	if use kernel_linux; then
+		linux-mod_pkg_preinst
+
+		local videogroup="$(egetent group video | cut -d ':' -f 3)"
+		if [ -z "${videogroup}" ]; then
+			eerror "Failed to determine the video group gid"
+			die "Failed to determine the video group gid"
+		else
+			sed -i \
+				-e "s:PACKAGE:${PF}:g" \
+				-e "s:VIDEOGID:${videogroup}:" \
+				"${D}"/etc/modprobe.d/nvidia.conf || die
+		fi
+	fi
+
+	# Clean the dynamic libGL stuff's home to ensure
+	# we dont have stale libs floating around
+	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
+		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
+	fi
+	# Make sure we nuke the old nvidia-glx's env.d file
+	if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
+		rm -f "${ROOT}"/etc/env.d/09nvidia
+	fi
+}
+
+pkg_postinst() {
+	use kernel_linux && linux-mod_pkg_postinst
+
+	# Switch to the nvidia implementation
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
+	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
+
+	readme.gentoo_print_elog
+
+	if ! use X; then
+		elog "You have elected to not install the X.org driver. Along with"
+		elog "this the OpenGL libraries, XvMC, and VDPAU libraries were not"
+		elog "installed. Additionally, once the driver is loaded your card"
+		elog "and fan will run at max speed which may not be desirable."
+		elog "Use the 'nvidia-smi' init script to have your card and fan"
+		elog "speed scale appropriately."
+		elog
+	fi
+	if ! use tools; then
+		elog "USE=tools controls whether the nvidia-settings application"
+		elog "is installed. If you would like to use it, enable that"
+		elog "flag and re-emerge this ebuild. Optionally you can install"
+		elog "media-video/nvidia-settings"
+		elog
+	fi
+}
+
+pkg_prerm() {
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}
+
+pkg_postrm() {
+	use kernel_linux && linux-mod_pkg_postrm
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-340.98.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-340.98.ebuild
new file mode 100644
index 00000000..105e52f
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-340.98.ebuild
@@ -0,0 +1,517 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
+	portability toolchain-funcs unpacker user udev
+
+NV_URI="http://us.download.nvidia.com/XFree86/"
+X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
+X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
+AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
+SRC_URI="
+	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
+	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
+	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
+	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
+	tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
+"
+
+LICENSE="GPL-2 NVIDIA-r2"
+SLOT="0/${PV%.*}"
+KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools +X uvm"
+RESTRICT="bindist mirror"
+EMULTILIB_PKG="true"
+
+COMMON="
+	app-eselect/eselect-opencl
+	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		dev-libs/jansson
+		x11-libs/gdk-pixbuf
+		>=x11-libs/gtk+-2.4:2
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/pango[X]
+	)
+	X? (
+		>=app-eselect/eselect-opengl-1.0.9
+	)
+"
+DEPEND="
+	${COMMON}
+	app-arch/xz-utils
+	kernel_linux? ( virtual/linux-sources )
+"
+RDEPEND="
+	${COMMON}
+	acpi? ( sys-power/acpid )
+	tools? ( !media-video/nvidia-settings )
+	X? (
+		<x11-base/xorg-server-1.18.99:=
+		>=x11-libs/libvdpau-0.3-r1
+		multilib? (
+			>=x11-libs/libX11-1.6.2[abi_x86_32]
+			>=x11-libs/libXext-1.3.2[abi_x86_32]
+		)
+	)
+"
+
+REQUIRED_USE="tools? ( X )"
+
+QA_PREBUILT="opt/* usr/lib*"
+
+S=${WORKDIR}/
+
+pkg_pretend() {
+	if use amd64 && has_multilib_profile && \
+		[ "${DEFAULT_ABI}" != "amd64" ]; then
+		eerror "This ebuild doesn't currently support changing your default ABI"
+		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
+	fi
+
+	if use kernel_linux && kernel_is ge 4 4; then
+		ewarn "Gentoo supports kernels which are supported by NVIDIA"
+		ewarn "which are limited to the following kernels:"
+		ewarn "<sys-kernel/gentoo-sources-4.4"
+		ewarn "<sys-kernel/vanilla-sources-4.4"
+		ewarn ""
+		ewarn "You are free to utilize epatch_user to provide whatever"
+		ewarn "support you feel is appropriate, but will not receive"
+		ewarn "support as a result of those changes."
+		ewarn ""
+		ewarn "Do not file a bug report about this."
+		ewarn ""
+	fi
+
+	# Since Nvidia ships many different series of drivers, we need to give the user
+	# some kind of guidance as to what version they should install. This tries
+	# to point the user in the right direction but can't be perfect. check
+	# nvidia-driver.eclass
+	nvidia-driver-check-warning
+
+	# Kernel features/options to check for
+	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
+	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
+
+	# Now do the above checks
+	use kernel_linux && check_extra_config
+}
+
+pkg_setup() {
+	# try to turn off distcc and ccache for people that have a problem with it
+	export DISTCC_DISABLE=1
+	export CCACHE_DISABLE=1
+
+	if use kernel_linux; then
+		MODULE_NAMES="nvidia(video:${S}/kernel)"
+		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel/uvm)"
+
+		# This needs to run after MODULE_NAMES (so that the eclass checks
+		# whether the kernel supports loadable modules) but before BUILD_PARAMS
+		# is set (so that KV_DIR is populated).
+		linux-mod_pkg_setup
+
+		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
+		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
+
+		# linux-mod_src_compile calls set_arch_to_kernel, which
+		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
+		# expects x86_64 or i386 and then converts it to x86
+		# later on in the build process
+		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
+	fi
+
+	# set variables to where files are in the package structure
+	if use kernel_FreeBSD; then
+		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
+		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
+		NV_DOC="${S}/doc"
+		NV_OBJ="${S}/obj"
+		NV_SRC="${S}/src"
+		NV_MAN="${S}/x11/man"
+		NV_X11="${S}/obj"
+		NV_SOVER=1
+	elif use kernel_linux; then
+		NV_DOC="${S}"
+		NV_OBJ="${S}"
+		NV_SRC="${S}/kernel"
+		NV_MAN="${S}"
+		NV_X11="${S}"
+		NV_SOVER=${PV}
+	else
+		die "Could not determine proper NVIDIA package"
+	fi
+}
+
+src_prepare() {
+	# Please add a brief description for every added patch
+
+	if use kernel_linux; then
+		if kernel_is lt 2 6 9 ; then
+			eerror "You must build this against 2.6.9 or higher kernels."
+		fi
+
+		# If greater than 2.6.5 use M= instead of SUBDIR=
+#		convert_to_m "${NV_SRC}"/Makefile.kbuild
+	fi
+
+	if use pax_kernel; then
+		ewarn "Using PAX patches is not supported. You will be asked to"
+		ewarn "use a standard kernel should you have issues. Should you"
+		ewarn "need support with these patches, contact the PaX team."
+		epatch "${FILESDIR}"/${PN}-331.13-pax-usercopy.patch
+		epatch "${FILESDIR}"/${PN}-337.12-pax-constify.patch
+	fi
+
+	# Allow user patches so they can support RC kernels and whatever else
+	epatch_user
+}
+
+src_compile() {
+	# This is already the default on Linux, as there's no toplevel Makefile, but
+	# on FreeBSD there's one and triggers the kernel module build, as we install
+	# it by itself, pass this.
+
+	cd "${NV_SRC}"
+	if use kernel_FreeBSD; then
+		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
+			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
+	elif use kernel_linux; then
+		use uvm && MAKEOPTS=-j1
+		linux-mod_src_compile
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl clean
+		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
+			AR="$(tc-getAR)" \
+			CC="$(tc-getCC)" \
+			RANLIB="$(tc-getRANLIB)" \
+			libXNVCtrl.a
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			AR="$(tc-getAR)" \
+			CC="$(tc-getCC)" \
+			LD="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NVML_ENABLED=0 \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			RANLIB="$(tc-getRANLIB)" \
+			STRIP_CMD=true
+	fi
+}
+
+# Install nvidia library:
+# the first parameter is the library to install
+# the second parameter is the provided soversion
+# the third parameter is the target directory if its not /usr/lib
+donvidia() {
+	# Full path to library minus SOVER
+	MY_LIB="$1"
+
+	# SOVER to use
+	MY_SOVER="$2"
+
+	# Where to install
+	MY_DEST="$3"
+
+	if [[ -z "${MY_DEST}" ]]; then
+		MY_DEST="/usr/$(get_libdir)"
+		action="dolib.so"
+	else
+		exeinto ${MY_DEST}
+		action="doexe"
+	fi
+
+	# Get just the library name
+	libname=$(basename $1)
+
+	# Install the library with the correct SOVER
+	${action} ${MY_LIB}.${MY_SOVER} || \
+		die "failed to install ${libname}"
+
+	# If SOVER wasn't 1, then we need to create a .1 symlink
+	if [[ "${MY_SOVER}" != "1" ]]; then
+		dosym ${libname}.${MY_SOVER} \
+			${MY_DEST}/${libname}.1 || \
+			die "failed to create ${libname} symlink"
+	fi
+
+	# Always create the symlink from the raw lib to the .1
+	dosym ${libname}.1 \
+		${MY_DEST}/${libname} || \
+		die "failed to create ${libname} symlink"
+}
+
+src_install() {
+	if use kernel_linux; then
+		linux-mod_src_install
+
+		# Add the aliases
+		# This file is tweaked with the appropriate video group in
+		# pkg_preinst, see bug #491414
+		insinto /etc/modprobe.d
+		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
+		use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
+
+		# Ensures that our device nodes are created when not using X
+		exeinto "$(get_udevdir)"
+		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
+		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
+	elif use kernel_FreeBSD; then
+		if use x86-fbsd; then
+			insinto /boot/modules
+			doins "${S}/src/nvidia.kld"
+		fi
+
+		exeinto /boot/modules
+		doexe "${S}/src/nvidia.ko"
+	fi
+
+	# NVIDIA kernel <-> userspace driver config lib
+	donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
+
+	# NVIDIA framebuffer capture library
+	donvidia ${NV_OBJ}/libnvidia-fbc.so ${NV_SOVER}
+
+	# NVIDIA video encode/decode <-> CUDA
+	if use kernel_linux; then
+		donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
+		donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
+	fi
+
+	if use X; then
+		# Xorg DDX driver
+		insinto /usr/$(get_libdir)/xorg/modules/drivers
+		doins ${NV_X11}/nvidia_drv.so
+
+		# Xorg GLX driver
+		donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
+			/usr/$(get_libdir)/opengl/nvidia/extensions
+	fi
+
+	# OpenCL ICD for NVIDIA
+	if use kernel_linux; then
+		insinto /etc/OpenCL/vendors
+		doins ${NV_OBJ}/nvidia.icd
+	fi
+
+	# Documentation
+	dohtml ${NV_DOC}/html/*
+	if use kernel_FreeBSD; then
+		dodoc "${NV_DOC}/README"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1"
+		use tools && doman "${NV_MAN}/nvidia-settings.1"
+	else
+		# Docs
+		newdoc "${NV_DOC}/README.txt" README
+		dodoc "${NV_DOC}/NVIDIA_Changelog"
+		doman "${NV_MAN}/nvidia-smi.1.gz"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
+		use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
+		doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
+	fi
+
+	# Helper Apps
+	exeinto /opt/bin/
+
+	if use X; then
+		doexe ${NV_OBJ}/nvidia-xconfig
+	fi
+
+	if use kernel_linux ; then
+		doexe ${NV_OBJ}/nvidia-cuda-mps-control
+		doexe ${NV_OBJ}/nvidia-cuda-mps-server
+		doexe ${NV_OBJ}/nvidia-debugdump
+		doexe ${NV_OBJ}/nvidia-persistenced
+		doexe ${NV_OBJ}/nvidia-smi
+
+		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
+		doexe ${NV_OBJ}/nvidia-modprobe
+		fowners root:video /opt/bin/nvidia-modprobe
+		fperms 4710 /opt/bin/nvidia-modprobe
+		dosym /{opt,usr}/bin/nvidia-modprobe
+
+		doman nvidia-cuda-mps-control.1.gz
+		doman nvidia-modprobe.1.gz
+		doman nvidia-persistenced.1.gz
+		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
+		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
+		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/ \
+			DESTDIR="${D}" \
+			LIBDIR="${D}/usr/$(get_libdir)" \
+			PREFIX=/usr \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			install
+
+		if use static-libs; then
+			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
+
+			insinto /usr/include/NVCtrl
+			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
+		fi
+
+		insinto /usr/share/nvidia/
+		doins nvidia-application-profiles-${PV}-key-documentation
+
+		insinto /etc/nvidia
+		newins \
+			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
+
+		# There is no icon in the FreeBSD tarball.
+		use kernel_FreeBSD || \
+			doicon ${NV_OBJ}/nvidia-settings.png
+
+		domenu "${FILESDIR}"/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+
+	fi
+
+	dobin ${NV_OBJ}/nvidia-bug-report.sh
+
+	#doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
+
+	if has_multilib_profile && use multilib ; then
+		local OABI=${ABI}
+		for ABI in $(get_install_abis) ; do
+			src_install-libs
+		done
+		ABI=${OABI}
+		unset OABI
+	else
+		src_install-libs
+	fi
+
+	is_final_abi || die "failed to iterate through all ABIs"
+
+	readme.gentoo_create_doc
+}
+
+src_install-libs() {
+	local inslibdir=$(get_libdir)
+	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
+	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
+	local libdir=${NV_OBJ}
+
+	if use kernel_linux && has_multilib_profile && \
+			[[ ${ABI} == "x86" ]] ; then
+		libdir=${NV_OBJ}/32
+	fi
+
+	if use X; then
+		# The GLX libraries
+		donvidia ${libdir}/libEGL.so ${NV_SOVER} ${GL_ROOT}
+		donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
+		donvidia ${libdir}/libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}
+		donvidia ${libdir}/libnvidia-eglcore.so ${NV_SOVER}
+		donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
+		donvidia ${libdir}/libnvidia-glsi.so ${NV_SOVER}
+		donvidia ${libdir}/libnvidia-ifr.so ${NV_SOVER}
+		if use kernel_FreeBSD; then
+			donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
+		else
+			donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
+		fi
+
+		# VDPAU
+		donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
+
+		# GLES v2 libraries
+		insinto ${GL_ROOT}
+		doexe ${libdir}/libGLESv2.so.${PV}
+		dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
+		dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
+	fi
+
+	# NVIDIA monitoring library
+	if use kernel_linux ; then
+		donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
+	fi
+
+	# CUDA & OpenCL
+	if use kernel_linux; then
+		donvidia ${libdir}/libcuda.so ${NV_SOVER}
+		donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
+		donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
+		donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
+	fi
+}
+
+pkg_preinst() {
+	if use kernel_linux; then
+		linux-mod_pkg_preinst
+
+		local videogroup="$(egetent group video | cut -d ':' -f 3)"
+		if [ -z "${videogroup}" ]; then
+			eerror "Failed to determine the video group gid"
+			die "Failed to determine the video group gid"
+		else
+			sed -i \
+				-e "s:PACKAGE:${PF}:g" \
+				-e "s:VIDEOGID:${videogroup}:" \
+				"${D}"/etc/modprobe.d/nvidia.conf || die
+		fi
+	fi
+
+	# Clean the dynamic libGL stuff's home to ensure
+	# we dont have stale libs floating around
+	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
+		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
+	fi
+	# Make sure we nuke the old nvidia-glx's env.d file
+	if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
+		rm -f "${ROOT}"/etc/env.d/09nvidia
+	fi
+}
+
+pkg_postinst() {
+	use kernel_linux && linux-mod_pkg_postinst
+
+	# Switch to the nvidia implementation
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
+	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
+
+	readme.gentoo_print_elog
+
+	if ! use X; then
+		elog "You have elected to not install the X.org driver. Along with"
+		elog "this the OpenGL libraries and VDPAU libraries were not"
+		elog "installed. Additionally, once the driver is loaded your card"
+		elog "and fan will run at max speed which may not be desirable."
+		elog "Use the 'nvidia-smi' init script to have your card and fan"
+		elog "speed scale appropriately."
+		elog
+	fi
+	if ! use tools; then
+		elog "USE=tools controls whether the nvidia-settings application"
+		elog "is installed. If you would like to use it, enable that"
+		elog "flag and re-emerge this ebuild. Optionally you can install"
+		elog "media-video/nvidia-settings"
+		elog
+	fi
+}
+
+pkg_prerm() {
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}
+
+pkg_postrm() {
+	use kernel_linux && linux-mod_pkg_postrm
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-367.57.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-367.57.ebuild
new file mode 100644
index 00000000..b3f9c7e
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-367.57.ebuild
@@ -0,0 +1,552 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
+	portability toolchain-funcs unpacker user udev
+
+NV_URI="http://us.download.nvidia.com/XFree86/"
+X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
+ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
+X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
+AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
+SRC_URI="
+	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
+	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
+	arm? ( ${NV_URI}Linux-x86-ARM/${PV}/${ARM_NV_PACKAGE}.run )
+	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
+	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
+	tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
+"
+
+LICENSE="GPL-2 NVIDIA-r2"
+SLOT="0/${PV%.*}"
+KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
+RESTRICT="bindist mirror"
+EMULTILIB_PKG="true"
+
+IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
+REQUIRED_USE="
+	tools? ( X )
+	static-libs? ( tools )
+"
+
+COMMON="
+	app-eselect/eselect-opencl
+	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		dev-libs/jansson
+		gtk3? ( x11-libs/gtk+:3 )
+		x11-libs/cairo
+		x11-libs/gdk-pixbuf[X]
+		x11-libs/gtk+:2
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXrandr
+		x11-libs/libXv
+		x11-libs/libXxf86vm
+		x11-libs/pango[X]
+	)
+	X? (
+		>=app-eselect/eselect-opengl-1.0.9
+		app-misc/pax-utils
+	)
+"
+DEPEND="
+	${COMMON}
+	kernel_linux? ( virtual/linux-sources )
+"
+RDEPEND="
+	${COMMON}
+	acpi? ( sys-power/acpid )
+	tools? ( !media-video/nvidia-settings )
+	wayland? ( dev-libs/wayland )
+	X? (
+		<x11-base/xorg-server-1.18.99:=
+		>=x11-libs/libvdpau-1.0
+		multilib? (
+			>=x11-libs/libX11-1.6.2[abi_x86_32]
+			>=x11-libs/libXext-1.3.2[abi_x86_32]
+		)
+	)
+"
+
+QA_PREBUILT="opt/* usr/lib*"
+
+S=${WORKDIR}/
+
+pkg_pretend() {
+	if use amd64 && has_multilib_profile && \
+		[ "${DEFAULT_ABI}" != "amd64" ]; then
+		eerror "This ebuild doesn't currently support changing your default ABI"
+		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
+	fi
+
+	if use kernel_linux && kernel_is ge 4 8; then
+		ewarn "Gentoo supports kernels which are supported by NVIDIA"
+		ewarn "which are limited to the following kernels:"
+		ewarn "<sys-kernel/gentoo-sources-4.8"
+		ewarn "<sys-kernel/vanilla-sources-4.8"
+		ewarn ""
+		ewarn "You are free to utilize epatch_user to provide whatever"
+		ewarn "support you feel is appropriate, but will not receive"
+		ewarn "support as a result of those changes."
+		ewarn ""
+		ewarn "Do not file a bug report about this."
+		ewarn ""
+	fi
+
+	# Since Nvidia ships many different series of drivers, we need to give the user
+	# some kind of guidance as to what version they should install. This tries
+	# to point the user in the right direction but can't be perfect. check
+	# nvidia-driver.eclass
+	nvidia-driver-check-warning
+
+	# Kernel features/options to check for
+	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
+	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
+
+	# Now do the above checks
+	use kernel_linux && check_extra_config
+}
+
+pkg_setup() {
+	# try to turn off distcc and ccache for people that have a problem with it
+	export DISTCC_DISABLE=1
+	export CCACHE_DISABLE=1
+
+	if use driver && use kernel_linux; then
+		MODULE_NAMES="nvidia(video:${S}/kernel)"
+		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
+		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
+
+		# This needs to run after MODULE_NAMES (so that the eclass checks
+		# whether the kernel supports loadable modules) but before BUILD_PARAMS
+		# is set (so that KV_DIR is populated).
+		linux-mod_pkg_setup
+
+		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
+		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
+
+		# linux-mod_src_compile calls set_arch_to_kernel, which
+		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
+		# expects x86_64 or i386 and then converts it to x86
+		# later on in the build process
+		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
+	fi
+
+	if use kernel_linux && kernel_is lt 2 6 9; then
+		eerror "You must build this against 2.6.9 or higher kernels."
+	fi
+
+	# set variables to where files are in the package structure
+	if use kernel_FreeBSD; then
+		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
+		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
+		NV_DOC="${S}/doc"
+		NV_OBJ="${S}/obj"
+		NV_SRC="${S}/src"
+		NV_MAN="${S}/x11/man"
+		NV_X11="${S}/obj"
+		NV_SOVER=1
+	elif use kernel_linux; then
+		NV_DOC="${S}"
+		NV_OBJ="${S}"
+		NV_SRC="${S}/kernel"
+		NV_MAN="${S}"
+		NV_X11="${S}"
+		NV_SOVER=${PV}
+	else
+		die "Could not determine proper NVIDIA package"
+	fi
+}
+
+src_prepare() {
+	epatch "${FILESDIR}"/${PN}-367.57-profiles-rc.patch
+
+	if use pax_kernel; then
+		ewarn "Using PAX patches is not supported. You will be asked to"
+		ewarn "use a standard kernel should you have issues. Should you"
+		ewarn "need support with these patches, contact the PaX team."
+		epatch "${FILESDIR}"/${PN}-364.12-pax.patch
+	fi
+
+	# Allow user patches so they can support RC kernels and whatever else
+	epatch_user
+}
+
+src_compile() {
+	# This is already the default on Linux, as there's no toplevel Makefile, but
+	# on FreeBSD there's one and triggers the kernel module build, as we install
+	# it by itself, pass this.
+
+	cd "${NV_SRC}"
+	if use kernel_FreeBSD; then
+		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
+			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
+	elif use driver && use kernel_linux; then
+		MAKEOPTS=-j1 linux-mod_src_compile
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			AR="$(tc-getAR)" \
+			CC="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NV_VERBOSE=1 \
+			RANLIB="$(tc-getRANLIB)" \
+			DO_STRIP= \
+			build-xnvctrl
+
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			CC="$(tc-getCC)" \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LD="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NVML_ENABLED=0 \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			DO_STRIP=
+	fi
+}
+
+# Install nvidia library:
+# the first parameter is the library to install
+# the second parameter is the provided soversion
+# the third parameter is the target directory if it is not /usr/lib
+donvidia() {
+	# Full path to library
+	nv_LIB="${1}"
+
+	# SOVER to use
+	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
+
+	# Where to install
+	nv_DEST="${2}"
+
+	# Get just the library name
+	nv_LIBNAME=$(basename "${nv_LIB}")
+
+	if [[ "${nv_DEST}" ]]; then
+		exeinto ${nv_DEST}
+		action="doexe"
+	else
+		nv_DEST="/usr/$(get_libdir)"
+		action="dolib.so"
+	fi
+
+	# Install the library
+	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
+
+	# If the library has a SONAME and SONAME does not match the library name,
+	# then we need to create a symlink
+	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
+		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
+			|| die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
+	fi
+
+	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
+		|| die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
+}
+
+src_install() {
+	if use driver && use kernel_linux; then
+		linux-mod_src_install
+
+		# Add the aliases
+		# This file is tweaked with the appropriate video group in
+		# pkg_preinst, see bug #491414
+		insinto /etc/modprobe.d
+		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
+		doins "${FILESDIR}"/nvidia-rmmod.conf
+
+		# Ensures that our device nodes are created when not using X
+		exeinto "$(get_udevdir)"
+		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
+		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
+	elif use kernel_FreeBSD; then
+		if use x86-fbsd; then
+			insinto /boot/modules
+			doins "${S}/src/nvidia.kld"
+		fi
+
+		exeinto /boot/modules
+		doexe "${S}/src/nvidia.ko"
+	fi
+
+	# NVIDIA kernel <-> userspace driver config lib
+	donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
+
+	# NVIDIA framebuffer capture library
+	donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
+
+	# NVIDIA video encode/decode <-> CUDA
+	if use kernel_linux; then
+		donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
+		donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
+	fi
+
+	if use X; then
+		# Xorg DDX driver
+		insinto /usr/$(get_libdir)/xorg/modules/drivers
+		doins ${NV_X11}/nvidia_drv.so
+
+		# Xorg GLX driver
+		donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
+			/usr/$(get_libdir)/opengl/nvidia/extensions
+
+		# Xorg nvidia.conf
+		if has_version '>=x11-base/xorg-server-1.16'; then
+			insinto /usr/share/X11/xorg.conf.d
+			newins {,50-}nvidia-drm-outputclass.conf
+		fi
+	fi
+
+	# OpenCL ICD for NVIDIA
+	if use kernel_linux; then
+		insinto /etc/OpenCL/vendors
+		doins ${NV_OBJ}/nvidia.icd
+	fi
+
+	# Documentation
+	dohtml ${NV_DOC}/html/*
+	if use kernel_FreeBSD; then
+		dodoc "${NV_DOC}/README"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1"
+		use tools && doman "${NV_MAN}/nvidia-settings.1"
+	else
+		# Docs
+		newdoc "${NV_DOC}/README.txt" README
+		dodoc "${NV_DOC}/NVIDIA_Changelog"
+		doman "${NV_MAN}/nvidia-smi.1.gz"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
+		use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
+		doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
+	fi
+
+	# Helper Apps
+	exeinto /opt/bin/
+
+	if use X; then
+		doexe ${NV_OBJ}/nvidia-xconfig
+	fi
+
+	if use kernel_linux; then
+		doexe ${NV_OBJ}/nvidia-cuda-mps-control
+		doexe ${NV_OBJ}/nvidia-cuda-mps-server
+		doexe ${NV_OBJ}/nvidia-debugdump
+		doexe ${NV_OBJ}/nvidia-persistenced
+		doexe ${NV_OBJ}/nvidia-smi
+
+		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
+		doexe ${NV_OBJ}/nvidia-modprobe
+		fowners root:video /opt/bin/nvidia-modprobe
+		fperms 4710 /opt/bin/nvidia-modprobe
+		dosym /{opt,usr}/bin/nvidia-modprobe
+
+		doman nvidia-cuda-mps-control.1.gz
+		doman nvidia-modprobe.1.gz
+		doman nvidia-persistenced.1.gz
+		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
+		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
+		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/ \
+			DESTDIR="${D}" \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LIBDIR="${D}/usr/$(get_libdir)" \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			PREFIX=/usr \
+			DO_STRIP= \
+			install
+
+		if use static-libs; then
+			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
+
+			insinto /usr/include/NVCtrl
+			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
+		fi
+
+		insinto /usr/share/nvidia/
+		doins nvidia-application-profiles-${PV}-key-documentation
+
+		insinto /etc/nvidia
+		newins \
+			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
+
+		# There is no icon in the FreeBSD tarball.
+		use kernel_FreeBSD || \
+			doicon ${NV_OBJ}/nvidia-settings.png
+
+		domenu "${FILESDIR}"/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+
+		insinto /etc/vulkan/icd.d
+		doins nvidia_icd.json
+	fi
+
+	dobin ${NV_OBJ}/nvidia-bug-report.sh
+
+	if has_multilib_profile && use multilib; then
+		local OABI=${ABI}
+		for ABI in $(get_install_abis); do
+			src_install-libs
+		done
+		ABI=${OABI}
+		unset OABI
+	else
+		src_install-libs
+	fi
+
+	is_final_abi || die "failed to iterate through all ABIs"
+
+	readme.gentoo_create_doc
+}
+
+src_install-libs() {
+	local inslibdir=$(get_libdir)
+	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
+	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
+	local libdir=${NV_OBJ}
+
+	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
+		libdir=${NV_OBJ}/32
+	fi
+
+	if use X; then
+		NV_GLX_LIBRARIES=(
+			"libEGL.so.1 ${GL_ROOT}"
+			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
+			"libGLESv1_CM.so.1 ${GL_ROOT}"
+			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLESv2.so.2 ${GL_ROOT}"
+			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLX.so.0 ${GL_ROOT}"
+			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLdispatch.so.0 ${GL_ROOT}"
+			"libOpenCL.so.1.0.0 ${CL_ROOT}"
+			"libOpenGL.so.0 ${GL_ROOT}"
+			"libcuda.so.${NV_SOVER}"
+			"libnvcuvid.so.${NV_SOVER}"
+			"libnvidia-compiler.so.${NV_SOVER}"
+			"libnvidia-eglcore.so.${NV_SOVER}"
+			"libnvidia-encode.so.${NV_SOVER}"
+			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
+			"libnvidia-fbc.so.${NV_SOVER}"
+			"libnvidia-glcore.so.${NV_SOVER}"
+			"libnvidia-glsi.so.${NV_SOVER}"
+			"libnvidia-ifr.so.${NV_SOVER}"
+			"libnvidia-opencl.so.${NV_SOVER}"
+			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
+			"libvdpau_nvidia.so.${NV_SOVER}"
+		)
+
+		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-egl-wayland.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-wfb.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_FreeBSD; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-ml.so.${NV_SOVER}"
+				"tls/libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
+			donvidia ${libdir}/${NV_LIB}
+		done
+	fi
+}
+
+pkg_preinst() {
+	if use driver && use kernel_linux; then
+		linux-mod_pkg_preinst
+
+		local videogroup="$(egetent group video | cut -d ':' -f 3)"
+		if [ -z "${videogroup}" ]; then
+			eerror "Failed to determine the video group gid"
+			die "Failed to determine the video group gid"
+		else
+			sed -i \
+				-e "s:PACKAGE:${PF}:g" \
+				-e "s:VIDEOGID:${videogroup}:" \
+				"${D}"/etc/modprobe.d/nvidia.conf || die
+		fi
+	fi
+
+	# Clean the dynamic libGL stuff's home to ensure
+	# we dont have stale libs floating around
+	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
+		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
+	fi
+	# Make sure we nuke the old nvidia-glx's env.d file
+	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
+		rm -f "${ROOT}"/etc/env.d/09nvidia
+	fi
+}
+
+pkg_postinst() {
+	use driver && use kernel_linux && linux-mod_pkg_postinst
+
+	# Switch to the nvidia implementation
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
+	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
+
+	readme.gentoo_print_elog
+
+	if ! use X; then
+		elog "You have elected to not install the X.org driver. Along with"
+		elog "this the OpenGL libraries and VDPAU libraries were not"
+		elog "installed. Additionally, once the driver is loaded your card"
+		elog "and fan will run at max speed which may not be desirable."
+		elog "Use the 'nvidia-smi' init script to have your card and fan"
+		elog "speed scale appropriately."
+		elog
+	fi
+	if ! use tools; then
+		elog "USE=tools controls whether the nvidia-settings application"
+		elog "is installed. If you would like to use it, enable that"
+		elog "flag and re-emerge this ebuild. Optionally you can install"
+		elog "media-video/nvidia-settings"
+		elog
+	fi
+}
+
+pkg_prerm() {
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}
+
+pkg_postrm() {
+	use driver && use kernel_linux && linux-mod_pkg_postrm
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2016-10-25 19:44 Richard Farina
  0 siblings, 0 replies; 46+ messages in thread
From: Richard Farina @ 2016-10-25 19:44 UTC (permalink / raw
  To: gentoo-commits

commit:     038e56981c1c49fd5930a60bbea5ee0cd660356b
Author:     Zero_Chaos <zerochaos <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 25 19:42:41 2016 +0000
Commit:     Richard Farina <zerochaos <AT> gentoo <DOT> org>
CommitDate: Tue Oct 25 19:42:59 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=038e5698

x11-drivers/nvidia-drivers: fix pax patch for 367.57/370.28

Package-Manager: portage-2.3.2

 .../files/nvidia-drivers-367.35-pax.patch          | 404 +++++++++++++++++++++
 .../files/nvidia-drivers-367.57-pax.patch          | 391 ++++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-367.57.ebuild    |   2 +-
 .../nvidia-drivers/nvidia-drivers-370.28.ebuild    |   2 +-
 4 files changed, 797 insertions(+), 2 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.35-pax.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.35-pax.patch
new file mode 100644
index 00000000..b615064
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.35-pax.patch
@@ -0,0 +1,404 @@
+diff -urp work.orig/kernel/common/inc/nv-linux.h work/kernel/common/inc/nv-linux.h
+--- work.orig/kernel/common/inc/nv-linux.h	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/common/inc/nv-linux.h	2016-07-16 22:45:59.870806346 +0200
+@@ -1308,6 +1308,9 @@ extern void *nvidia_stack_t_cache;
+ #define NV_KMEM_CACHE_CREATE(name, type)    \
+     NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, 0, NULL)
+ 
++#define NV_KMEM_CACHE_CREATE_USERCOPY(name, type)    \
++    NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, SLAB_USERCOPY, NULL)
++
+ #define NV_KMEM_CACHE_DESTROY(kmem_cache)   \
+     kmem_cache_destroy(kmem_cache)
+ 
+diff -urp work.orig/kernel/common/inc/nv-modeset-interface.h work/kernel/common/inc/nv-modeset-interface.h
+--- work.orig/kernel/common/inc/nv-modeset-interface.h	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/common/inc/nv-modeset-interface.h	2016-07-16 22:46:16.223400774 +0200
+@@ -72,7 +72,7 @@ typedef struct {
+      * mix nvidia and nvidia-modeset kernel modules from different
+      * releases.
+      */
+-    const char *version_string;
++//    const char *version_string;
+ 
+     /*
+      * Return system information.
+@@ -117,6 +117,6 @@ typedef struct {
+ 
+ } nvidia_modeset_rm_ops_t;
+ 
+-NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops);
++NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string);
+ 
+ #endif /* _NV_MODESET_INTERFACE_H_ */
+diff -urp work.orig/kernel/common/inc/nv-register-module.h work/kernel/common/inc/nv-register-module.h
+--- work.orig/kernel/common/inc/nv-register-module.h	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/common/inc/nv-register-module.h	2016-07-16 22:45:59.870806346 +0200
+@@ -34,7 +34,7 @@ typedef struct nvidia_module_s {
+     int (*ioctl)(struct inode *, struct file * file, unsigned int cmd, unsigned long arg);
+     unsigned int (*poll)(struct file * file, poll_table *wait);
+ 
+-} nvidia_module_t;
++} __do_const nvidia_module_t;
+ 
+ int nvidia_register_module(nvidia_module_t *);
+ int nvidia_unregister_module(nvidia_module_t *);
+diff -urp work.orig/kernel/nvidia/nv.c work/kernel/nvidia/nv.c
+--- work.orig/kernel/nvidia/nv.c	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/nvidia/nv.c	2016-07-16 22:45:59.874809435 +0200
+@@ -654,7 +654,7 @@ int __init nvidia_init_module(void)
+     NV_SPIN_LOCK_INIT(&km_lock);
+ #endif
+ 
+-    nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE(nvidia_stack_cache_name,
++    nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE_USERCOPY(nvidia_stack_cache_name,
+                                                 nvidia_stack_t);
+     if (nvidia_stack_t_cache == NULL)
+     {
+diff -urp work.orig/kernel/nvidia/nv-chrdev.c work/kernel/nvidia/nv-chrdev.c
+--- work.orig/kernel/nvidia/nv-chrdev.c	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/nvidia/nv-chrdev.c	2016-07-16 22:45:59.874809435 +0200
+@@ -20,8 +20,6 @@ int nv_register_chrdev(void *param)
+ {
+     nvidia_module_t *module = (nvidia_module_t *)param;
+ 
+-    module->instance = nv_module_instance;
+-
+     return (nvidia_register_module(module));
+ }
+ 
+diff -urp work.orig/kernel/nvidia/nv-instance.c work/kernel/nvidia/nv-instance.c
+--- work.orig/kernel/nvidia/nv-instance.c	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/nvidia/nv-instance.c	2016-07-16 22:45:59.874809435 +0200
+@@ -51,6 +51,7 @@ struct pci_driver nv_pci_driver = {
+ nvidia_module_t nv_fops = {
+     .owner       = THIS_MODULE,
+     .module_name = MODULE_NAME,
++    .instance    = MODULE_INSTANCE_NUMBER,
+     .open        = nvidia_open,
+     .close       = nvidia_close,
+     .ioctl       = nvidia_ioctl,
+diff -urp work.orig/kernel/nvidia/nv-mmap.c work/kernel/nvidia/nv-mmap.c
+--- work.orig/kernel/nvidia/nv-mmap.c	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/nvidia/nv-mmap.c	2016-07-16 22:45:59.874809435 +0200
+@@ -113,12 +113,12 @@ nvidia_vma_release(struct vm_area_struct
+ }
+ 
+ #if defined(NV_VM_OPERATIONS_STRUCT_HAS_ACCESS)
+-static int
++static ssize_t
+ nvidia_vma_access(
+     struct vm_area_struct *vma,
+     unsigned long addr,
+     void *buffer,
+-    int length,
++    size_t length,
+     int write
+ )
+ {
+diff -urp work.orig/kernel/nvidia/nv-modeset-interface.c work/kernel/nvidia/nv-modeset-interface.c
+--- work.orig/kernel/nvidia/nv-modeset-interface.c	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/nvidia/nv-modeset-interface.c	2016-07-16 22:54:36.567962197 +0200
+@@ -100,10 +100,9 @@ static NvU32 nvidia_modeset_enumerate_gp
+     return count;
+ }
+ 
+-NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops)
++NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string)
+ {
+-    const nvidia_modeset_rm_ops_t local_rm_ops = {
+-        .version_string = NV_VERSION_STRING,
++    static const nvidia_modeset_rm_ops_t local_rm_ops = {
+         .system_info    = {
+             .allow_write_combining = NV_FALSE,
+         },
+@@ -116,17 +115,26 @@ NV_STATUS nvidia_get_rm_ops(nvidia_modes
+         .set_callbacks  = nvidia_modeset_set_callbacks,
+     };
+ 
+-    if (strcmp(rm_ops->version_string, NV_VERSION_STRING) != 0)
++    static const nvidia_modeset_rm_ops_t local_rm_ops_wc = {
++        .system_info    = {
++            .allow_write_combining = NV_TRUE,
++        },
++        .alloc_stack    = nvidia_modeset_rm_ops_alloc_stack,
++        .free_stack     = nvidia_modeset_rm_ops_free_stack,
++        .enumerate_gpus = nvidia_modeset_enumerate_gpus,
++        .open_gpu       = nvidia_dev_get,
++        .close_gpu      = nvidia_dev_put,
++        .op             = rm_kernel_rmapi_op, /* provided by nv-kernel.o */
++        .set_callbacks  = nvidia_modeset_set_callbacks,
++    };
++
++    if (strcmp(*version_string, NV_VERSION_STRING) != 0)
+     {
+-        rm_ops->version_string = NV_VERSION_STRING;
++        *version_string = NV_VERSION_STRING;
+         return NV_ERR_GENERIC;
+     }
+ 
+-    *rm_ops = local_rm_ops;
+-
+-    if (NV_ALLOW_WRITE_COMBINING(NV_MEMORY_TYPE_FRAMEBUFFER)) {
+-        rm_ops->system_info.allow_write_combining = NV_TRUE;
+-    }
++    *rm_ops = NV_ALLOW_WRITE_COMBINING(NV_MEMORY_TYPE_FRAMEBUFFER) ? &local_rm_ops_wc : &local_rm_ops;
+ 
+     return NV_OK;
+ }
+diff -urp work.orig/kernel/nvidia-drm/nvidia-drm-drv.c work/kernel/nvidia-drm/nvidia-drm-drv.c
+--- work.orig/kernel/nvidia-drm/nvidia-drm-drv.c	2016-07-12 06:53:45.000000000 +0200
++++ work/kernel/nvidia-drm/nvidia-drm-drv.c	2016-07-16 22:45:59.878812524 +0200
+@@ -592,7 +592,7 @@ static const struct drm_ioctl_desc nv_dr
+                       DRM_CONTROL_ALLOW|DRM_RENDER_ALLOW|DRM_UNLOCKED),
+ };
+ 
+-static struct drm_driver nv_drm_driver = {
++static drm_driver_no_const nv_drm_driver __read_only = {
+ 
+     .driver_features        = DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER,
+ 
+@@ -649,6 +649,7 @@ static void nvidia_update_drm_driver_fea
+         return;
+     }
+ 
++    pax_open_kernel();
+     nv_drm_driver.driver_features |= DRIVER_MODESET | DRIVER_ATOMIC;
+ 
+     nv_drm_driver.master_set       = nvidia_drm_master_set;
+@@ -657,6 +658,7 @@ static void nvidia_update_drm_driver_fea
+     nv_drm_driver.dumb_create      = nvidia_drm_dumb_create;
+     nv_drm_driver.dumb_map_offset  = nvidia_drm_dumb_map_offset;
+     nv_drm_driver.dumb_destroy     = drm_gem_dumb_destroy;
++    pax_close_kernel();
+ 
+ #endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */
+ }
+diff -urp work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c work/kernel/nvidia-modeset/nvidia-modeset-linux.c
+--- work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c	2016-07-12 06:53:46.000000000 +0200
++++ work/kernel/nvidia-modeset/nvidia-modeset-linux.c	2016-07-16 22:47:09.334133112 +0200
+@@ -317,29 +317,28 @@ static void nvkms_resume(NvU32 gpuId)
+  * Interface with resman.
+  *************************************************************************/
+ 
+-static nvidia_modeset_rm_ops_t __rm_ops = { 0 };
++static const nvidia_modeset_rm_ops_t *__rm_ops;
+ static nvidia_modeset_callbacks_t nvkms_rm_callbacks = {
+-    nvkms_suspend,
+-    nvkms_resume
++    .suspend = nvkms_suspend,
++    .resume = nvkms_resume
+ };
+ 
+ static int nvkms_alloc_rm(void)
+ {
+     NV_STATUS nvstatus;
+     int ret;
++    const char *version_string = NV_VERSION_STRING;
+ 
+-    __rm_ops.version_string = NV_VERSION_STRING;
+-
+-    nvstatus = nvidia_get_rm_ops(&__rm_ops);
++    nvstatus = nvidia_get_rm_ops(&__rm_ops, &version_string);
+ 
+     if (nvstatus != NV_OK) {
+         printk(KERN_ERR NVKMS_LOG_PREFIX "Version mismatch: "
+                "nvidia.ko(%s) nvidia-modeset.ko(%s)\n",
+-               __rm_ops.version_string, NV_VERSION_STRING);
++               version_string, NV_VERSION_STRING);
+         return -EINVAL;
+     }
+ 
+-    ret = __rm_ops.set_callbacks(&nvkms_rm_callbacks);
++    ret = __rm_ops->set_callbacks(&nvkms_rm_callbacks);
+     if (ret < 0) {
+         printk(KERN_ERR NVKMS_LOG_PREFIX "Failed to register callbacks\n");
+         return ret;
+@@ -350,20 +349,20 @@ static int nvkms_alloc_rm(void)
+ 
+ static void nvkms_free_rm(void)
+ {
+-    __rm_ops.set_callbacks(NULL);
++    __rm_ops->set_callbacks(NULL);
+ }
+ 
+ void NVKMS_API_CALL nvkms_call_rm(void *ops)
+ {
+     nvidia_modeset_stack_ptr stack = NULL;
+ 
+-    if (__rm_ops.alloc_stack(&stack) != 0) {
++    if (__rm_ops->alloc_stack(&stack) != 0) {
+         return;
+     }
+ 
+-    __rm_ops.op(stack, ops);
++    __rm_ops->op(stack, ops);
+ 
+-    __rm_ops.free_stack(stack);
++    __rm_ops->free_stack(stack);
+ }
+ 
+ /*************************************************************************
+@@ -685,13 +684,13 @@ NvBool NVKMS_API_CALL nvkms_open_gpu(NvU
+     nvidia_modeset_stack_ptr stack = NULL;
+     NvBool ret;
+ 
+-    if (__rm_ops.alloc_stack(&stack) != 0) {
++    if (__rm_ops->alloc_stack(&stack) != 0) {
+         return NV_FALSE;
+     }
+ 
+-    ret = __rm_ops.open_gpu(gpuId, stack) == 0;
++    ret = __rm_ops->open_gpu(gpuId, stack) == 0;
+ 
+-    __rm_ops.free_stack(stack);
++    __rm_ops->free_stack(stack);
+ 
+     return ret;
+ }
+@@ -700,23 +699,23 @@ void NVKMS_API_CALL nvkms_close_gpu(NvU3
+ {
+     nvidia_modeset_stack_ptr stack = NULL;
+ 
+-    if (__rm_ops.alloc_stack(&stack) != 0) {
++    if (__rm_ops->alloc_stack(&stack) != 0) {
+         return;
+     }
+ 
+-    __rm_ops.close_gpu(gpuId, stack);
++    __rm_ops->close_gpu(gpuId, stack);
+ 
+-    __rm_ops.free_stack(stack);
++    __rm_ops->free_stack(stack);
+ }
+ 
+ NvU32 NVKMS_API_CALL nvkms_enumerate_gpus(nv_gpu_info_t *gpu_info)
+ {
+-    return __rm_ops.enumerate_gpus(gpu_info);
++    return __rm_ops->enumerate_gpus(gpu_info);
+ }
+ 
+ NvBool NVKMS_API_CALL nvkms_allow_write_combining(void)
+ {
+-    return __rm_ops.system_info.allow_write_combining;
++    return __rm_ops->system_info.allow_write_combining;
+ }
+ 
+ /*************************************************************************
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_global.c work/kernel/nvidia-uvm/uvm8_global.c
+--- work.orig/kernel/nvidia-uvm/uvm8_global.c	2016-07-12 06:52:17.000000000 +0200
++++ work/kernel/nvidia-uvm/uvm8_global.c	2016-07-16 22:45:59.878812524 +0200
+@@ -35,17 +35,17 @@
+ #include "nv_uvm_interface.h"
+ 
+ uvm_global_t g_uvm_global;
+-static struct UvmOpsUvmEvents g_exported_uvm8_ops;
++static struct UvmOpsUvmEvents g_exported_uvm8_ops = {
++    .startDevice = NULL,
++    .stopDevice  = NULL,
++    .isrTopHalf  = uvm8_isr_top_half,
++};
+ static bool g_ops_registered = false;
+ 
+ static NV_STATUS uvm8_register_callbacks(void)
+ {
+     NV_STATUS status = NV_OK;
+ 
+-    g_exported_uvm8_ops.startDevice = NULL;
+-    g_exported_uvm8_ops.stopDevice  = NULL;
+-    g_exported_uvm8_ops.isrTopHalf  = uvm8_isr_top_half;
+-
+     // Register the UVM callbacks with the main GPU driver:
+     status = uvm_rm_locked_call(nvUvmInterfaceRegisterUvmCallbacks(&g_exported_uvm8_ops));
+     if (status != NV_OK)
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c
+--- work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c	2016-07-12 06:52:17.000000000 +0200
++++ work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c	2016-07-16 22:45:59.878812524 +0200
+@@ -368,7 +368,7 @@ void uvm_gpu_semaphore_set_payload(uvm_g
+     // being optimized out on non-SMP configs (we need them for interacting with
+     // the GPU correctly even on non-SMP).
+     mb();
+-    ACCESS_ONCE(*semaphore->payload) = payload;
++    ACCESS_ONCE_RW(*semaphore->payload) = payload;
+ }
+ 
+ // This function is intended to catch channels which have been left dangling in
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_hal.h work/kernel/nvidia-uvm/uvm8_hal.h
+--- work.orig/kernel/nvidia-uvm/uvm8_hal.h	2016-07-12 06:52:17.000000000 +0200
++++ work/kernel/nvidia-uvm/uvm8_hal.h	2016-07-16 22:45:59.878812524 +0200
+@@ -310,7 +310,7 @@ typedef struct
+         // fault_buffer_ops: id is a hardware class
+         uvm_fault_buffer_hal_t fault_buffer_ops;
+     } u;
+-} uvm_hal_class_ops_t;
++} __do_const uvm_hal_class_ops_t;
+ 
+ // When UVM next support is enabled support for future chips in the hal is
+ // enabled by providing additional hal table entries below.
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_mmu.h work/kernel/nvidia-uvm/uvm8_mmu.h
+--- work.orig/kernel/nvidia-uvm/uvm8_mmu.h	2016-07-12 06:52:17.000000000 +0200
++++ work/kernel/nvidia-uvm/uvm8_mmu.h	2016-07-16 22:45:59.878812524 +0200
+@@ -24,7 +24,6 @@
+ #ifndef __UVM8_MMU_H__
+ #define __UVM8_MMU_H__
+ 
+-#include "uvm8_forward_decl.h"
+ #include "uvm8_hal_types.h"
+ #include "uvm8_pmm_gpu.h"
+ #include "uvmtypes.h"
+diff -urp work.orig/kernel/nvidia-uvm/uvm_common.c work/kernel/nvidia-uvm/uvm_common.c
+--- work.orig/kernel/nvidia-uvm/uvm_common.c	2016-07-12 06:52:17.000000000 +0200
++++ work/kernel/nvidia-uvm/uvm_common.c	2016-07-16 22:45:59.878812524 +0200
+@@ -51,7 +51,6 @@
+ #define UVM_SPIN_LOOP_PRINT_TIMEOUT_SEC     30ULL
+ 
+ static dev_t g_uvmBaseDev;
+-struct UvmOpsUvmEvents g_exportedUvmOps;
+ 
+ static char* uvm_driver_mode = "8";
+ 
+@@ -175,8 +174,10 @@ static NV_STATUS uvmSetupGpuProvider(voi
+ {
+     NV_STATUS status = NV_OK;
+ 
+-    g_exportedUvmOps.startDevice = uvm_gpu_event_start_device;
+-    g_exportedUvmOps.stopDevice  = uvm_gpu_event_stop_device;
++    static struct UvmOpsUvmEvents g_exportedUvmOps = {
++        .startDevice = uvm_gpu_event_start_device,
++        .stopDevice  = uvm_gpu_event_stop_device,
++    };
+ 
+     // call RM to exchange the function pointers.
+     status = nvUvmInterfaceRegisterUvmCallbacks(&g_exportedUvmOps);
+diff -urp work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h work/kernel/nvidia-uvm/uvm_full_fault_buffer.h
+--- work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h	2016-07-12 06:52:17.000000000 +0200
++++ work/kernel/nvidia-uvm/uvm_full_fault_buffer.h	2016-07-16 22:45:59.878812524 +0200
+@@ -31,6 +31,7 @@
+ #define _UVM_FULL_FAULT_BUFFER_H_
+ 
+ #include "uvmtypes.h"
++#include "linux/compiler.h"
+ 
+ #define MAXWELL_FAULT_BUFFER_A (0xb069)
+ #define MEM_RD32(a) (*(const volatile NvU32 *)(a)) 
+@@ -303,7 +304,7 @@ typedef struct
+     NvUvmControlPrefetch_t              controlPrefetch;
+     NvUvmTestFaultBufferOverflow_t      testFaultBufferOverflow;
+     NvUvmClearFaultBufferOverflow_t     clearFaultBufferOverflow;
+-} UvmFaultBufferOps;
++} __no_const UvmFaultBufferOps;
+ 
+ /******************************************************************************
+     uvmfull_fault_buffer_init
+diff -urp work.orig/kernel/nvidia-uvm/uvm_linux.h work/kernel/nvidia-uvm/uvm_linux.h
+--- work.orig/kernel/nvidia-uvm/uvm_linux.h	2016-07-12 06:52:17.000000000 +0200
++++ work/kernel/nvidia-uvm/uvm_linux.h	2016-07-16 22:45:59.882815613 +0200
+@@ -508,7 +508,7 @@ static inline NvU64 NV_GETTIME(void)
+ 
+ // WRITE_ONCE/READ_ONCE have incompatible definitions across versions, which produces warnings.
+ // Therefore, we define our own macros
+-#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE(x) = (val))
++#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE_RW(x) = (val))
+ #define UVM_READ_ONCE(x) ACCESS_ONCE(x)
+ 
+ // Added in 3.11

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.57-pax.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.57-pax.patch
new file mode 100644
index 00000000..bf20132
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.57-pax.patch
@@ -0,0 +1,391 @@
+diff -urp work.orig/kernel/common/inc/nv-linux.h work/kernel/common/inc/nv-linux.h
+--- work.orig/kernel/common/inc/nv-linux.h	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/common/inc/nv-linux.h	2016-07-16 22:45:59.870806346 +0200
+@@ -1308,6 +1308,9 @@ extern void *nvidia_stack_t_cache;
+ #define NV_KMEM_CACHE_CREATE(name, type)    \
+     NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, 0, NULL)
+ 
++#define NV_KMEM_CACHE_CREATE_USERCOPY(name, type)    \
++    NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, SLAB_USERCOPY, NULL)
++
+ #define NV_KMEM_CACHE_DESTROY(kmem_cache)   \
+     kmem_cache_destroy(kmem_cache)
+ 
+diff -urp work.orig/kernel/common/inc/nv-modeset-interface.h work/kernel/common/inc/nv-modeset-interface.h
+--- work.orig/kernel/common/inc/nv-modeset-interface.h	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/common/inc/nv-modeset-interface.h	2016-07-16 22:46:16.223400774 +0200
+@@ -72,7 +72,7 @@ typedef struct {
+      * mix nvidia and nvidia-modeset kernel modules from different
+      * releases.
+      */
+-    const char *version_string;
++//    const char *version_string;
+ 
+     /*
+      * Return system information.
+@@ -117,6 +117,6 @@ typedef struct {
+ 
+ } nvidia_modeset_rm_ops_t;
+ 
+-NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops);
++NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string);
+ 
+ #endif /* _NV_MODESET_INTERFACE_H_ */
+diff -urp work.orig/kernel/common/inc/nv-register-module.h work/kernel/common/inc/nv-register-module.h
+--- work.orig/kernel/common/inc/nv-register-module.h	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/common/inc/nv-register-module.h	2016-07-16 22:45:59.870806346 +0200
+@@ -34,7 +34,7 @@ typedef struct nvidia_module_s {
+     int (*ioctl)(struct inode *, struct file * file, unsigned int cmd, unsigned long arg);
+     unsigned int (*poll)(struct file * file, poll_table *wait);
+ 
+-} nvidia_module_t;
++} __do_const nvidia_module_t;
+ 
+ int nvidia_register_module(nvidia_module_t *);
+ int nvidia_unregister_module(nvidia_module_t *);
+diff -urp work.orig/kernel/nvidia/nv.c work/kernel/nvidia/nv.c
+--- work.orig/kernel/nvidia/nv.c	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/nvidia/nv.c	2016-07-16 22:45:59.874809435 +0200
+@@ -654,7 +654,7 @@ int __init nvidia_init_module(void)
+     NV_SPIN_LOCK_INIT(&km_lock);
+ #endif
+ 
+-    nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE(nvidia_stack_cache_name,
++    nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE_USERCOPY(nvidia_stack_cache_name,
+                                                 nvidia_stack_t);
+     if (nvidia_stack_t_cache == NULL)
+     {
+diff -urp work.orig/kernel/nvidia/nv-chrdev.c work/kernel/nvidia/nv-chrdev.c
+--- work.orig/kernel/nvidia/nv-chrdev.c	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/nvidia/nv-chrdev.c	2016-07-16 22:45:59.874809435 +0200
+@@ -20,8 +20,6 @@ int nv_register_chrdev(void *param)
+ {
+     nvidia_module_t *module = (nvidia_module_t *)param;
+ 
+-    module->instance = nv_module_instance;
+-
+     return (nvidia_register_module(module));
+ }
+ 
+diff -urp work.orig/kernel/nvidia/nv-instance.c work/kernel/nvidia/nv-instance.c
+--- work.orig/kernel/nvidia/nv-instance.c	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/nvidia/nv-instance.c	2016-07-16 22:45:59.874809435 +0200
+@@ -51,6 +51,7 @@ struct pci_driver nv_pci_driver = {
+ nvidia_module_t nv_fops = {
+     .owner       = THIS_MODULE,
+     .module_name = MODULE_NAME,
++    .instance    = MODULE_INSTANCE_NUMBER,
+     .open        = nvidia_open,
+     .close       = nvidia_close,
+     .ioctl       = nvidia_ioctl,
+diff -urp work.orig/kernel/nvidia/nv-mmap.c work/kernel/nvidia/nv-mmap.c
+--- work.orig/kernel/nvidia/nv-mmap.c	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/nvidia/nv-mmap.c	2016-07-16 22:45:59.874809435 +0200
+@@ -113,12 +113,12 @@ nvidia_vma_release(struct vm_area_struct
+ }
+ 
+ #if defined(NV_VM_OPERATIONS_STRUCT_HAS_ACCESS)
+-static int
++static ssize_t
+ nvidia_vma_access(
+     struct vm_area_struct *vma,
+     unsigned long addr,
+     void *buffer,
+-    int length,
++    size_t length,
+     int write
+ )
+ {
+diff -urp work.orig/kernel/nvidia/nv-modeset-interface.c work/kernel/nvidia/nv-modeset-interface.c
+--- work.orig/kernel/nvidia/nv-modeset-interface.c	2016-07-12 06:52:21.000000000 +0200
++++ work/kernel/nvidia/nv-modeset-interface.c	2016-07-16 22:54:36.567962197 +0200
+@@ -100,10 +100,9 @@ static NvU32 nvidia_modeset_enumerate_gp
+     return count;
+ }
+ 
+-NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops)
++NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string)
+ {
+-    const nvidia_modeset_rm_ops_t local_rm_ops = {
+-        .version_string = NV_VERSION_STRING,
++    static const nvidia_modeset_rm_ops_t local_rm_ops = {
+         .system_info    = {
+             .allow_write_combining = NV_FALSE,
+         },
+@@ -116,17 +115,26 @@ NV_STATUS nvidia_get_rm_ops(nvidia_modes
+         .set_callbacks  = nvidia_modeset_set_callbacks,
+     };
+ 
+-    if (strcmp(rm_ops->version_string, NV_VERSION_STRING) != 0)
++    static const nvidia_modeset_rm_ops_t local_rm_ops_wc = {
++        .system_info    = {
++            .allow_write_combining = NV_TRUE,
++        },
++        .alloc_stack    = nvidia_modeset_rm_ops_alloc_stack,
++        .free_stack     = nvidia_modeset_rm_ops_free_stack,
++        .enumerate_gpus = nvidia_modeset_enumerate_gpus,
++        .open_gpu       = nvidia_dev_get,
++        .close_gpu      = nvidia_dev_put,
++        .op             = rm_kernel_rmapi_op, /* provided by nv-kernel.o */
++        .set_callbacks  = nvidia_modeset_set_callbacks,
++    };
++
++    if (strcmp(*version_string, NV_VERSION_STRING) != 0)
+     {
+-        rm_ops->version_string = NV_VERSION_STRING;
++        *version_string = NV_VERSION_STRING;
+         return NV_ERR_GENERIC;
+     }
+ 
+-    *rm_ops = local_rm_ops;
+-
+-    if (NV_ALLOW_WRITE_COMBINING(NV_MEMORY_TYPE_FRAMEBUFFER)) {
+-        rm_ops->system_info.allow_write_combining = NV_TRUE;
+-    }
++    *rm_ops = NV_ALLOW_WRITE_COMBINING(NV_MEMORY_TYPE_FRAMEBUFFER) ? &local_rm_ops_wc : &local_rm_ops;
+ 
+     return NV_OK;
+ }
+diff -urp work.orig/kernel/nvidia-drm/nvidia-drm-drv.c work/kernel/nvidia-drm/nvidia-drm-drv.c
+--- work.orig/kernel/nvidia-drm/nvidia-drm-drv.c	2016-07-12 06:53:45.000000000 +0200
++++ work/kernel/nvidia-drm/nvidia-drm-drv.c	2016-07-16 22:45:59.878812524 +0200
+@@ -592,7 +592,7 @@ static const struct drm_ioctl_desc nv_dr
+                       DRM_CONTROL_ALLOW|DRM_RENDER_ALLOW|DRM_UNLOCKED),
+ };
+ 
+-static struct drm_driver nv_drm_driver = {
++static drm_driver_no_const nv_drm_driver __read_only = {
+ 
+     .driver_features        = DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER,
+ 
+@@ -649,6 +649,7 @@ static void nvidia_update_drm_driver_fea
+         return;
+     }
+ 
++    pax_open_kernel();
+     nv_drm_driver.driver_features |= DRIVER_MODESET | DRIVER_ATOMIC;
+ 
+     nv_drm_driver.master_set       = nvidia_drm_master_set;
+@@ -657,6 +658,7 @@ static void nvidia_update_drm_driver_fea
+     nv_drm_driver.dumb_create      = nvidia_drm_dumb_create;
+     nv_drm_driver.dumb_map_offset  = nvidia_drm_dumb_map_offset;
+     nv_drm_driver.dumb_destroy     = drm_gem_dumb_destroy;
++    pax_close_kernel();
+ 
+ #endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */
+ }
+diff -urp work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c work/kernel/nvidia-modeset/nvidia-modeset-linux.c
+--- work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c	2016-07-12 06:53:46.000000000 +0200
++++ work/kernel/nvidia-modeset/nvidia-modeset-linux.c	2016-07-16 22:47:09.334133112 +0200
+@@ -317,29 +317,28 @@ static void nvkms_resume(NvU32 gpuId)
+  * Interface with resman.
+  *************************************************************************/
+ 
+-static nvidia_modeset_rm_ops_t __rm_ops = { 0 };
++static const nvidia_modeset_rm_ops_t *__rm_ops;
+ static nvidia_modeset_callbacks_t nvkms_rm_callbacks = {
+-    nvkms_suspend,
+-    nvkms_resume
++    .suspend = nvkms_suspend,
++    .resume = nvkms_resume
+ };
+ 
+ static int nvkms_alloc_rm(void)
+ {
+     NV_STATUS nvstatus;
+     int ret;
++    const char *version_string = NV_VERSION_STRING;
+ 
+-    __rm_ops.version_string = NV_VERSION_STRING;
+-
+-    nvstatus = nvidia_get_rm_ops(&__rm_ops);
++    nvstatus = nvidia_get_rm_ops(&__rm_ops, &version_string);
+ 
+     if (nvstatus != NV_OK) {
+         printk(KERN_ERR NVKMS_LOG_PREFIX "Version mismatch: "
+                "nvidia.ko(%s) nvidia-modeset.ko(%s)\n",
+-               __rm_ops.version_string, NV_VERSION_STRING);
++               version_string, NV_VERSION_STRING);
+         return -EINVAL;
+     }
+ 
+-    ret = __rm_ops.set_callbacks(&nvkms_rm_callbacks);
++    ret = __rm_ops->set_callbacks(&nvkms_rm_callbacks);
+     if (ret < 0) {
+         printk(KERN_ERR NVKMS_LOG_PREFIX "Failed to register callbacks\n");
+         return ret;
+@@ -350,20 +349,20 @@ static int nvkms_alloc_rm(void)
+ 
+ static void nvkms_free_rm(void)
+ {
+-    __rm_ops.set_callbacks(NULL);
++    __rm_ops->set_callbacks(NULL);
+ }
+ 
+ void NVKMS_API_CALL nvkms_call_rm(void *ops)
+ {
+     nvidia_modeset_stack_ptr stack = NULL;
+ 
+-    if (__rm_ops.alloc_stack(&stack) != 0) {
++    if (__rm_ops->alloc_stack(&stack) != 0) {
+         return;
+     }
+ 
+-    __rm_ops.op(stack, ops);
++    __rm_ops->op(stack, ops);
+ 
+-    __rm_ops.free_stack(stack);
++    __rm_ops->free_stack(stack);
+ }
+ 
+ /*************************************************************************
+@@ -685,13 +684,13 @@ NvBool NVKMS_API_CALL nvkms_open_gpu(NvU
+     nvidia_modeset_stack_ptr stack = NULL;
+     NvBool ret;
+ 
+-    if (__rm_ops.alloc_stack(&stack) != 0) {
++    if (__rm_ops->alloc_stack(&stack) != 0) {
+         return NV_FALSE;
+     }
+ 
+-    ret = __rm_ops.open_gpu(gpuId, stack) == 0;
++    ret = __rm_ops->open_gpu(gpuId, stack) == 0;
+ 
+-    __rm_ops.free_stack(stack);
++    __rm_ops->free_stack(stack);
+ 
+     return ret;
+ }
+@@ -700,23 +699,23 @@ void NVKMS_API_CALL nvkms_close_gpu(NvU3
+ {
+     nvidia_modeset_stack_ptr stack = NULL;
+ 
+-    if (__rm_ops.alloc_stack(&stack) != 0) {
++    if (__rm_ops->alloc_stack(&stack) != 0) {
+         return;
+     }
+ 
+-    __rm_ops.close_gpu(gpuId, stack);
++    __rm_ops->close_gpu(gpuId, stack);
+ 
+-    __rm_ops.free_stack(stack);
++    __rm_ops->free_stack(stack);
+ }
+ 
+ NvU32 NVKMS_API_CALL nvkms_enumerate_gpus(nv_gpu_info_t *gpu_info)
+ {
+-    return __rm_ops.enumerate_gpus(gpu_info);
++    return __rm_ops->enumerate_gpus(gpu_info);
+ }
+ 
+ NvBool NVKMS_API_CALL nvkms_allow_write_combining(void)
+ {
+-    return __rm_ops.system_info.allow_write_combining;
++    return __rm_ops->system_info.allow_write_combining;
+ }
+ 
+ /*************************************************************************
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_global.c work/kernel/nvidia-uvm/uvm8_global.c
+--- work.orig/kernel/nvidia-uvm/uvm8_global.c	2016-07-12 06:52:17.000000000 +0200
++++ work/kernel/nvidia-uvm/uvm8_global.c	2016-07-16 22:45:59.878812524 +0200
+@@ -35,17 +35,17 @@
+ #include "nv_uvm_interface.h"
+ 
+ uvm_global_t g_uvm_global;
+-static struct UvmOpsUvmEvents g_exported_uvm8_ops;
++static struct UvmOpsUvmEvents g_exported_uvm8_ops = {
++    .startDevice = NULL,
++    .stopDevice  = NULL,
++    .isrTopHalf  = uvm8_isr_top_half,
++};
+ static bool g_ops_registered = false;
+ 
+ static NV_STATUS uvm8_register_callbacks(void)
+ {
+     NV_STATUS status = NV_OK;
+ 
+-    g_exported_uvm8_ops.startDevice = NULL;
+-    g_exported_uvm8_ops.stopDevice  = NULL;
+-    g_exported_uvm8_ops.isrTopHalf  = uvm8_isr_top_half;
+-
+     // Register the UVM callbacks with the main GPU driver:
+     status = uvm_rm_locked_call(nvUvmInterfaceRegisterUvmCallbacks(&g_exported_uvm8_ops));
+     if (status != NV_OK)
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c
+--- work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c	2016-07-12 06:52:17.000000000 +0200
++++ work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c	2016-07-16 22:45:59.878812524 +0200
+@@ -368,7 +368,7 @@ void uvm_gpu_semaphore_set_payload(uvm_g
+     // being optimized out on non-SMP configs (we need them for interacting with
+     // the GPU correctly even on non-SMP).
+     mb();
+-    ACCESS_ONCE(*semaphore->payload) = payload;
++    ACCESS_ONCE_RW(*semaphore->payload) = payload;
+ }
+ 
+ // This function is intended to catch channels which have been left dangling in
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_hal.h work/kernel/nvidia-uvm/uvm8_hal.h
+--- work.orig/kernel/nvidia-uvm/uvm8_hal.h	2016-07-12 06:52:17.000000000 +0200
++++ work/kernel/nvidia-uvm/uvm8_hal.h	2016-07-16 22:45:59.878812524 +0200
+@@ -310,7 +310,7 @@ typedef struct
+         // fault_buffer_ops: id is a hardware class
+         uvm_fault_buffer_hal_t fault_buffer_ops;
+     } u;
+-} uvm_hal_class_ops_t;
++} __do_const uvm_hal_class_ops_t;
+ 
+ // When UVM next support is enabled support for future chips in the hal is
+ // enabled by providing additional hal table entries below.
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_mmu.h work/kernel/nvidia-uvm/uvm8_mmu.h
+--- work.orig/kernel/nvidia-uvm/uvm8_mmu.h	2016-07-12 06:52:17.000000000 +0200
++++ work/kernel/nvidia-uvm/uvm8_mmu.h	2016-07-16 22:45:59.878812524 +0200
+@@ -24,7 +24,6 @@
+ #ifndef __UVM8_MMU_H__
+ #define __UVM8_MMU_H__
+ 
+-#include "uvm8_forward_decl.h"
+ #include "uvm8_hal_types.h"
+ #include "uvm8_pmm_gpu.h"
+ #include "uvmtypes.h"
+diff -urp work.orig/kernel/nvidia-uvm/uvm_common.c work/kernel/nvidia-uvm/uvm_common.c
+--- work.orig/kernel/nvidia-uvm/uvm_common.c	2016-07-12 06:52:17.000000000 +0200
++++ work/kernel/nvidia-uvm/uvm_common.c	2016-07-16 22:45:59.878812524 +0200
+@@ -51,7 +51,6 @@
+ #define UVM_SPIN_LOOP_PRINT_TIMEOUT_SEC     30ULL
+ 
+ static dev_t g_uvmBaseDev;
+-struct UvmOpsUvmEvents g_exportedUvmOps;
+ 
+ static char* uvm_driver_mode = "8";
+ 
+diff -urp work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h work/kernel/nvidia-uvm/uvm_full_fault_buffer.h
+--- work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h	2016-07-12 06:52:17.000000000 +0200
++++ work/kernel/nvidia-uvm/uvm_full_fault_buffer.h	2016-07-16 22:45:59.878812524 +0200
+@@ -31,6 +31,7 @@
+ #define _UVM_FULL_FAULT_BUFFER_H_
+ 
+ #include "uvmtypes.h"
++#include "linux/compiler.h"
+ 
+ #define MAXWELL_FAULT_BUFFER_A (0xb069)
+ #define MEM_RD32(a) (*(const volatile NvU32 *)(a)) 
+@@ -303,7 +304,7 @@ typedef struct
+     NvUvmControlPrefetch_t              controlPrefetch;
+     NvUvmTestFaultBufferOverflow_t      testFaultBufferOverflow;
+     NvUvmClearFaultBufferOverflow_t     clearFaultBufferOverflow;
+-} UvmFaultBufferOps;
++} __no_const UvmFaultBufferOps;
+ 
+ /******************************************************************************
+     uvmfull_fault_buffer_init
+diff -urp work.orig/kernel/nvidia-uvm/uvm_linux.h work/kernel/nvidia-uvm/uvm_linux.h
+--- work.orig/kernel/nvidia-uvm/uvm_linux.h	2016-07-12 06:52:17.000000000 +0200
++++ work/kernel/nvidia-uvm/uvm_linux.h	2016-07-16 22:45:59.882815613 +0200
+@@ -508,7 +508,7 @@ static inline NvU64 NV_GETTIME(void)
+ 
+ // WRITE_ONCE/READ_ONCE have incompatible definitions across versions, which produces warnings.
+ // Therefore, we define our own macros
+-#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE(x) = (val))
++#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE_RW(x) = (val))
+ #define UVM_READ_ONCE(x) ACCESS_ONCE(x)
+ 
+ // Added in 3.11

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-367.57.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-367.57.ebuild
index b3f9c7e..58a7c63 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-367.57.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-367.57.ebuild
@@ -176,7 +176,7 @@ src_prepare() {
 		ewarn "Using PAX patches is not supported. You will be asked to"
 		ewarn "use a standard kernel should you have issues. Should you"
 		ewarn "need support with these patches, contact the PaX team."
-		epatch "${FILESDIR}"/${PN}-364.12-pax.patch
+		epatch "${FILESDIR}"/${PN}-367.57-pax.patch
 	fi
 
 	# Allow user patches so they can support RC kernels and whatever else

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-370.28.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-370.28.ebuild
index e776f90..619ab9b 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-370.28.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-370.28.ebuild
@@ -176,7 +176,7 @@ src_prepare() {
 		ewarn "Using PAX patches is not supported. You will be asked to"
 		ewarn "use a standard kernel should you have issues. Should you"
 		ewarn "need support with these patches, contact the PaX team."
-		epatch "${FILESDIR}"/${PN}-364.12-pax.patch
+		epatch "${FILESDIR}"/${PN}-367.35-pax.patch
 	fi
 
 	# Allow user patches so they can support RC kernels and whatever else


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2016-11-21 19:10 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2016-11-21 19:10 UTC (permalink / raw
  To: gentoo-commits

commit:     83c7b045a8858be779213f0dda60e3744040342d
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 21 18:57:59 2016 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Mon Nov 21 19:10:03 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=83c7b045

x11-drivers/nvidia-drivers: Version bump.

Package-Manager: portage-2.3.2

 x11-drivers/nvidia-drivers/Manifest                |   6 +
 .../files/nvidia-drivers-375.20-profiles-rc.patch  |  11 +
 .../nvidia-drivers/nvidia-drivers-375.20.ebuild    | 554 +++++++++++++++++++++
 3 files changed, 571 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index e7893bc..e072157 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -23,6 +23,7 @@ DIST NVIDIA-FreeBSD-x86-367.44.tar.gz 62815733 SHA256 687a178cc0e63f79f38f6e71da
 DIST NVIDIA-FreeBSD-x86-367.57.tar.gz 62859799 SHA256 64a0bde687aac1ec2aad859d5bea47d0691b916a851c64992bd460a05ad7c162 SHA512 13269f76d53a1818690ba8fd7aa604783e80059a031e3668c21a70158eeaa97251adda9ac058a712342e95780db86be5b893eebe0422cfce7f1073d88ea9293d WHIRLPOOL 303bebf3d73d8bc232a188c9e3a23164a70fafdd44974e5f5b1873488f682979702e2f18d838d85072a22520d959ded6bb3a4b79cb3d7cafc5de0feca6241061
 DIST NVIDIA-FreeBSD-x86-370.28.tar.gz 58718517 SHA256 52193b15b4ca822b029f860eed4d00270c925f5d24f7bb511a5b7bbea696d58c SHA512 83ffb19069cc240f8836d808a5eb02c142e7ad923fc2e3049a3b316acc12df070d42dfdc5a8a8e1411ccc9fba0bfa4ed84f457435e985434cd86ae966a63a3f4 WHIRLPOOL b1bec4d5e34ea39c3b1b44adcf85b7392cef39517979d32bc800e48a79a57cfb5f1ca5ff82bc302aa67ed12094782e09ab146f021a9c04e18430034a5ab341a9
 DIST NVIDIA-FreeBSD-x86-375.10.tar.gz 59040273 SHA256 094aae538150240d00acf3b6650137e5b6cdf41cd1b8c6b512f4d6fc22790a7d SHA512 a5786e747480559d459339ed088dc20d249bc9878e5c46a4e310448409642856895cde4bae0ebbdfd397da7af68d4545bbe33cabd1758a0f778d4f85843d2067 WHIRLPOOL 19ee13fa18bfc61e54da8b221a57308979871c44924f5e3611ffbfb9d65a3957d33c0909257fa5b487a2e9f99cb99f8e855486133569a4dba5f2c38ca32fc7dc
+DIST NVIDIA-FreeBSD-x86-375.20.tar.gz 59078892 SHA256 acf64b8b566046475095f823bee39ba5b4897a54cc8f2e52e33a0a766358f859 SHA512 154c4a04387805a2a9d3ebba19c7ca6d4894d4145bfd2108e10b3809c8022e22a79a387533fa356cd69ce8137498b36f059d00ed26c44c5ef12b99b4e23517b4 WHIRLPOOL f6de00f0ee7027d3db653724ed2271cc847358fd1292d6c9cd6fb73aa7d784d1e2fdae467cdd0fce5140c3996e3a6d09ac1ac822b6b9b6b99bba4a39cc38bfa8
 DIST NVIDIA-FreeBSD-x86-96.43.23.tar.gz 15463464 SHA256 18d855db8381eda1a6cf548c9e5095fc5bb8694bf1d6e24fc1072fba4e54cd78 SHA512 42d7b1b76cdb3b23680363e565614a22112162a5dd3639cb804fe670c0c3f3f23595bbefa3f78afdc6a8ca848446dee853c7a355f2c96a0d01b354753ba2785c WHIRLPOOL f8e59ce521990cd9edee441e73f973f074db492952807a0931e362102874cddbb47604ff5c5eb20a0cbde27f9b6d4e440dd12cc2e5a20c9cb65bf3c0b3e62511
 DIST NVIDIA-FreeBSD-x86_64-304.131.tar.gz 35812363 SHA256 e10aa34f4aeb6981c0bc6762f37e6ad57de52b45c7322d0caef9781c1a43858a SHA512 0df69d11c79cfd66f40f5adf091f9c3ad494b89fbe9200a1a01fef8cb2d2591ffdeb703d82a263e050384d39ef81af3a717ac24716f96b1fd8386d1758bcf45b WHIRLPOOL a7e01ac4646d52229efb1d22df9b4db98bfd6bc30c79fc4c65273001b1cd09c4db823a0141a060f8c53926ae23a33fe66e27aec805879228d64bf3f45aa66bcd
 DIST NVIDIA-FreeBSD-x86_64-304.132.tar.gz 35810728 SHA256 baedb1901f679b1d2449c49302f3abdb90ac9a85935e3ff3b0968a32089b719c SHA512 4ee6c66efc3b77d7421904ab04c621ed7374d657d0406988a3a1c4b352c092f42ed6394951247d58cbfb54b07e67ed7d02040d6eff136ab57749db813167904c WHIRLPOOL b9f5ef7d63847f76212dfc3d0dba738cb9ea9f42881becaf9c41de31858c95b4c90911eed296c5c266a4cff7dba33f09dbdbdf9e6e731e9b3f13dce7e4346d33
@@ -48,12 +49,14 @@ DIST NVIDIA-FreeBSD-x86_64-367.44.tar.gz 59577943 SHA256 e07d21b0ad39a0a24cdc484
 DIST NVIDIA-FreeBSD-x86_64-367.57.tar.gz 59604884 SHA256 6f2986941a9f4cdcb3692c39919e5eeec09f2799b7797d3c0be0d4c61f7eed5b SHA512 06e4fd656efc88260c10b2a86308461754302dc9bad88285efe8b864012806f2d7147173ded9ee7b4ef2518ddbd6f02c5d36b184f913176732dd90cce0df006c WHIRLPOOL 9c33dd392ba0335b08c7710aaf97564d7cc0fdcc2fe87ec67ae1932848dbd6e6ad0437f6b44409b11cefc7ec33be7656199dcb2a34ab296f969fd65243bd114e
 DIST NVIDIA-FreeBSD-x86_64-370.28.tar.gz 57905860 SHA256 5087a93af8aaab6cff35ba60c9d67b4249827f6b7681abaaa571a20784a54552 SHA512 40637d64a0ee5029bb1c5ad7a590c5be61253ef6283c4217666768ad8601d7f51ef0d8705c8711f65c3d0a5a5721490813220c5f9186c6d2d12baf5d9c11122e WHIRLPOOL 361648788b7efb9e550b3e67d2e6022e31dab29f5660c42a1b6c961fe4638216fb8785814ee9fa1636fc39c39afce7caffbdc24fcf8bbd14e4eec5b5eeaeb1eb
 DIST NVIDIA-FreeBSD-x86_64-375.10.tar.gz 58235753 SHA256 50ccd0e9622a0d24ecd70cdb7bb30a02f45adb1ae3da340d0e73de755b5ffd04 SHA512 0f64cdd1a835e23b8a4337a841a4ae09b89c873a6e8bbfc3bfe945df721b640cd8985faba6cc1c32041dfeda456370eb80d57ad1ee0957cc79417ad7ef3e1f7e WHIRLPOOL 99477fb741d864f270e44f3bc5226a4cfd5c6d1c3024b080f898de089c2e0bfa649cfb18a7ff5dfdc099c6c61aa407bd8e4e4930d181e211d1e22d1b811a4b26
+DIST NVIDIA-FreeBSD-x86_64-375.20.tar.gz 58259944 SHA256 f4678d671c9dcb7f127173ea1de7614593559658d1876789c37c5f7c62cad563 SHA512 0e039a64095f5385b5acc359206c598e141e18366252a9bbe91933427b372d61740d9fd6c11f1682b78f7e93f9f65915b8f2f05f65e666d0c0d867a29ed98071 WHIRLPOOL 85696e1c21132d18a1ee81f9e1c7ab05ae2fdc839c1d8877e67fac7fb39428ab6e7dcd4d2806dd56ba9ef93fc8648c7ce77c19145652252df3fa247be5db9737
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.27.run 25585174 SHA256 ae0855b247d5a5474561c76a79536fe82c44bd10e6154792978c5572d11c47f9 SHA512 dd60292f262e1d7d6cca09a35c3f8b65820d216d46f2b94feb208554496b30a983a73ffb8b2a1473cef0b7e08a3cda901eeca855e1db77f4f6dd23779772580b WHIRLPOOL c55d4102a6717f81d8bde7e66d1772c7b1f370d4d610ef61561c94f5ea6cc4797b5f15b9cbc31216b2ef9ef9132a66682b280d9ef5b74c4a57ee2ee8da6c1122
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.35.run 25628654 SHA256 6087bd2cc594f860d27d26e30acd3593310ce00938c10e5729175f037efa222e SHA512 3157c3dc9d07dd0eb8aaa0bf21edf62aa1338f10c1431981494d2a7b1f0be8a1eee8b5bc41914cfca9b4c76773b0056e7ad5c80a4c7acadfadb52a7647baabbe WHIRLPOOL 49c8896d1a40e1f634224227100b303c3d2ebc66ee93f31aa18bc39c898585eba49400d148f47476e4253d35d7379047dbcf7f43cf027df0b16179bfc8912db0
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.44.run 25674978 SHA256 b42af2009460614c6d4b6585535dc2f0c1e98244f00bf75ece37dc31d2cc45c3 SHA512 0fd72fe7afa1415eb961a5308c142316cb5311195486b331c406f4cbcc7d30dd5f0e85e5b179ffb8f38ce5ee1b5abac671d89f62b7dc7e1b1d738212af6acd91 WHIRLPOOL ce2b0fa6b8c545af63292da214cfeb564f765179f531907ac7750c7a9d890816ce869dd7e6898ea0a0a6f446d20868d55c235a5ee2e88105731e8812b5f67c79
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.57.run 25701866 SHA256 e856debfabffe0e4ed2900e4acbc8e68340c4773651ec7a0000659588431ef7d SHA512 2d1221b8c6f01148412790c24f88a74104da4dc40f30ebe57a47468818c811119ed629ffa565f3ed58ce0b12b292b4304a2b364a83faff41ba14ea747f4e1c88 WHIRLPOOL bf7011f50360516f76ea5e176aea7d761193de877a5357a54704c60d512faf1af8e8e2450c547b5181fba98ee627a297b1c573e147c4db623324c1c35396330d
 DIST NVIDIA-Linux-armv7l-gnueabihf-370.28.run 26117701 SHA256 efb60a23aa22b46e94e91d5f5a5fc0c17b47bcf50471e4371653ced5a5350dce SHA512 04699849441bccfb9214fda4c7ff8ecefa11249d1fbfe470e37fefdd132becc225a1bcc16bc976c3fb145a427961f5402c95ecc84b613adb71caef9c96fe7d90 WHIRLPOOL 675a495594c46666ec11c83a76cdc8821e9b57079ee53cd7adcf00e783d121e163b7c5b10598aa55a1fee72eee47defc514fba986685af41c90ab2c5d890abbd
 DIST NVIDIA-Linux-armv7l-gnueabihf-375.10.run 26701426 SHA256 ba2d6ac96a498b5db08942564598e8f228ed5ca2c329ba601b3f94aa6444b328 SHA512 677b7b0d769ba00010b58fb5ad0b6334e1e7d0bb390e7d07d36f922b83fd3c66bd70f4431e0d0c0b35a8644fc9d5014421fb44009cedd20839310b3090efb414 WHIRLPOOL b7c23ebb17da16e9dc69d3de387129842b71c10fed24759e725c0e0420a2124a33ce19a578f86c9986d2ba36c35fe577b4d260b7d384ce14fc94a62dac95f2b5
+DIST NVIDIA-Linux-armv7l-gnueabihf-375.20.run 26238901 SHA256 dd28db61f89311240a76c0a82d1324f352879bfcb0c58fd6403fd9f783e43f0e SHA512 f52d66928bb5370bdfe7d7a119b8a8e73c4832b32bb372f24856bbd35c4f338fcb170b05f92f579c9d0849a84c4fa0e3d6b0e8de6b23aac564dfb9f3fabf725a WHIRLPOOL 0383789b871e50a532deeaf27414d0a518dbba93d6eb4fcd08e6fcc47260d67f48852458c6302d7dee0addc89e3dbdd7ce074cdfdee5b0bbeecb70c0c44892b2
 DIST NVIDIA-Linux-x86-173.14.39-pkg0.run 15134997 SHA256 a09935f37121ed3db8ae3da63a0d8e9d4348a19c859811c9fe44d6ce8e3eab23 SHA512 e24e15ccec725d3cbca502c2b77061776a81ef92917a950adec4ff6bdc34f10903aa654433177ea74be0dade4af81c5380d5710d375a5ea445940d06154bde93 WHIRLPOOL fce3d8e4f6cdf698f5a057514b6fe220bb1011025bdce5bd4cf0e424fb4d306d38251b6726bda03f290ea8137d5a95ed418cf8751722879f9042462abd9181b6
 DIST NVIDIA-Linux-x86-304.131.run 40893199 SHA256 d2554bb6f7867e7762d0ecedcac5bde7de0634e43b952bf466323ea8b4032da8 SHA512 3e67c40648554dc49472081eee88ae982c3b235b3346e4d9e7fb5ae33ec5f10ed088da804ac7d8bd1565995df3861f12b3560030cd3a19339a2d35768b0a943e WHIRLPOOL 88e9cc0270a4fc64ed8475a217c7c8c50e6ea21fe14b5b5beb16f494bd62bf5ada2f47e26e5380dd3d0bc678091e29f0e26937eef1ee3c7bdc5805153201bae3
 DIST NVIDIA-Linux-x86-304.132.run 40910791 SHA256 d460f6ab63cc8c1f9fb89a344ad0f3ee1a90e7078b4edba78d86433e66bfd927 SHA512 70a6ed74a93ac2a1acec5eab5078dfe05fab66c6264d67f3238a6b28af7b39f7205e237214bac4ee5d2366e8c6a4a63dfc8dc113e9e977ee2387c5c8c63ccc8f WHIRLPOOL 69b24a57d906b37cc87f081209712f92eb2e7df27a2a030c51a1ef7bda607dd404b57d1fc008ee3d1ad3b81c176da1806e7b591d00a0894f2a0273ebd494e4dd
@@ -79,6 +82,7 @@ DIST NVIDIA-Linux-x86-367.44.run 44079774 SHA256 b2ad4d0d4a2e98528e877ae0d98c380
 DIST NVIDIA-Linux-x86-367.57.run 44731570 SHA256 43d4e926f71ac6c581018badf467458709822e97a7564ed9f1b521b7b63d88bb SHA512 6316cdd94131057a584b3a893cfbca5e8b0f5e79060cb5bfe2c149b5a76bdcdc21d20338febb54f7201985c5b05545c3f6b63b26c32699717057cfb047993972 WHIRLPOOL 443ca9b389f78c13ae5344cb3cce67035a2b5a605b94518d91c253965263d37a84dff9ca29d47509a2d43017afde4786a55bfd45613882b5d4889dc27b67622f
 DIST NVIDIA-Linux-x86-370.28.run 44189522 SHA256 6323254ccf2a75d7ced1374a76ca56778689d0d8a9819e4ee5378ea3347b9835 SHA512 2df8b3d1064073c8b793287994fe0648625d095f3434b7b67531e19632cbad318994df90b55de18aa457d55a1374b35d64a646564259995d3f2197c48737921c WHIRLPOOL 85a089c833311abdc06bbc1fc68cd5ff8ed43dd5e5887d340dc854f905ae741de0ae4343d024259f493dd668075096c460bc1f93c1795d2befb81dd3c4a4983a
 DIST NVIDIA-Linux-x86-375.10.run 44518154 SHA256 77c06d9c6831d6d1b53276d0741eddac4aab2f2f02b7c1fe14b86aa982aacd69 SHA512 b68af4b00a98f9f22ae2a41fdde7d823d22a7b3587b80860b206b96b6121adec203b81c258ee5ba3e20dfd0ba60337f95de268d96d417cc0b39a2822b7021017 WHIRLPOOL 7e3c05595f6cb3d654f708b7bc31c11beb3631f67c75490c09acbee2da4d90de8799890cf108babe3870e21590e8bd675c09b47fc5afd24e119f3630e7d07831
+DIST NVIDIA-Linux-x86-375.20.run 44542058 SHA256 cc79d3ac2b688009ed2e47a1cf27557aea5dd745b3b6e9b83945c359ddab4335 SHA512 8f922b3cde613dbc5933f38fa3d57e37afe4ac68e3cd37894d7f8d42258290ddbab0fb5f51623c06fa3474718f6a55ee0187e23aa51e3131e050446986b96420 WHIRLPOOL 87faa367cd0833cb4a4b4d5d825676963a1c7fa985539c67c048a25fcc30bc7b88390acfca4f407bdcde252f63cdf081de22eb6fac9b4c09a5cdd9b5662dbef5
 DIST NVIDIA-Linux-x86-96.43.23-pkg0.run 11504817 SHA256 51e6adf4ba73071622045fc37169f80db3ae3e784dff53b29d35146a04042142 SHA512 bed5726e57637481fe4e3c03a65ec14fe949f00860e729ebde408f4fd861d7bfdc296a78bc2f5d42e8b282db09f4bbde1e0545df7228fa20227080dc4b868ba7 WHIRLPOOL 6d4fd1786c11f4e326cc3101d0bb1a2f8b63c25c3dd59f10188f8355759e2861ce44fd53d60258b513d5a1d6124d0f91ba8edf4d3668b6feabfb3e8d585f14fe
 DIST NVIDIA-Linux-x86_64-173.14.39-pkg2.run 21100833 SHA256 15a953666d5681ba54c97498b578ffd286a1dc96d605f3b02110f3f99813100e SHA512 a65cd496e6ed57f771c3d99f37f616a1242d97844f6faef7a807825ad899c0e536a99fde397020839f0857883b934032f9491024f3047a6b06d3eea1f5d77713 WHIRLPOOL dc5f243b7d1de7e2d1b7f005e018a2940d63335b11a7c83c234b348b7a1839e9131169d2ea928bd8c2f549a4535149b03e16e6c94d59dfa745f7f904ff790a45
 DIST NVIDIA-Linux-x86_64-304.131.run 69415084 SHA256 74b7ec1c31dac03ee7c3e04612cadb9cbaa01ef4c796c27a0a649f7d32dccd0b SHA512 ddfa1f23600821dcae17ddb735b615d67504c4e276d9b41813e0f8d7690fbdf48f79644ee4c9e5449ce22a31460734cf325fc83975e0b48a0379a85cd4ef747d WHIRLPOOL fc08c2337a1b80b0444dbc914f7d17441995e4965c435028194050df9f5ec1606cdfb5bf11e56f79a736e04cf0755b296017fe79629c5ded18a72093b8689bce
@@ -105,6 +109,7 @@ DIST NVIDIA-Linux-x86_64-367.44.run 75032664 SHA256 09a4e67afa79c159f96071215bac
 DIST NVIDIA-Linux-x86_64-367.57.run 77127324 SHA256 a1615db29f1377817b610cca997e0339753ee9d58b28e1618b892691df3a8851 SHA512 fc94f5df7eb2ef243db381bc4458f911a6d76bff949701bedb249a3ebf369ff3da8dc5a7d52ab6ae3f23e947c419923f303cd57429a266a0f8e96df1039b1f5d WHIRLPOOL 5580b7839652c250ba134ecc97438d1810453d5bd5d8cffd44f01379d7509bca6f0c58318a150a5b4786f955d4de708ce9be618572212eca2c7098a36eab24d5
 DIST NVIDIA-Linux-x86_64-370.28.run 76690360 SHA256 90aa3c186e45b39e6fc0064ab8dbda8bcc897cb61d2e7b7cb30b4ec9a4b39239 SHA512 931476f92a63d142478b2d6b3da4031769fd3b93aee2387800a78b1354b59a5fb5e4e293436b6b4c246627d51c0f55d140ab230de385cb1567bc8b25518eb741 WHIRLPOOL ce866c38291d2ab4aeeff05654a0e61196129f77baea5af93ddbc22fab9574ba39cc05d58020ea2407cc7342f0bcf5c2702d42290f4cc3b53c9e04fb7c617413
 DIST NVIDIA-Linux-x86_64-375.10.run 77354052 SHA256 62ebba84f30e58b618843d8d0d630693808cd75154945e46850c10d797746af1 SHA512 b689c5f3e3b2537c70ebe658f133771c31acee5818dde19adbe97b8f2194d33cffcfea29a1727a5658e8ca667fd89d077177eed163ff3cfb0abe7b8a892d73fa WHIRLPOOL 6b6dd1a2290fd1df65912f5fdf5a47a1c208b86b2014116d1199b3b45c2413c894badf9867ac9d09e0e0bb532ce8593720f2123b8466a3fd416a84bff3ce237e
+DIST NVIDIA-Linux-x86_64-375.20.run 75886564 SHA256 d10e40a19dc57ac958567a2b247c2b113e5f1e4186ad48e9a58e70a46d07620b SHA512 96daf0d9e3d8e42f7dd46d759a09d95b6745c719960cefd590abf927034ce2ab369422a0cc8e5ebe76de3c92068ea2b0e1c89106f7285c589bff166b2c3e9c1e WHIRLPOOL 72e0db9b94bf8a81af2562b6405ff6b7928283641e3013e2389314529120024426a125f189901753db858e10a20cf622fa8d06d3dbd262b65bf539cf3b0d7978
 DIST NVIDIA-Linux-x86_64-96.43.23-pkg2.run 15962375 SHA256 ce8d8253e7dab7da63fbdac449ebf190cd0c10cbfffea0f8d0165515f851bc64 SHA512 04bec1187a6024a2b9839f008ec829281f1f2602dae2e639030bc385943186506bcaa2b46a230b2ab87f9217190841abc62f9e2d6395ab5559623389c31c6563 WHIRLPOOL 0651c44a51a1a06fcff5bfddbf9c3e408977e03263c7fe806cb6c01f9fe92f716dfe4e5190ffe1048bde72fcffdc8bca8267e74dd43ba5c9dfb22b6201fcc2bb
 DIST nvidia-settings-304.131.tar.bz2 1480447 SHA256 d36d2d1ae7c1bb72cd18e713470546d2aa7057624b1f61319daf559a94054d29 SHA512 9269f54f87581e29e6d7cabeaf989c70cb27aa55f6b8f5f1c71b8a14401326d06ea194710722b41283cca56f5808b90a9b1fb12158d48c6332cce15a701c5796 WHIRLPOOL be8e38a09a0bfa40267b9cdae2800a9ef00a89e28e618b743b7acb0cd9ece4b242b74ced32018d735989592300b49b2ee683caa11a1e161bcecf070a58952dfd
 DIST nvidia-settings-304.132.tar.bz2 1480097 SHA256 53b86952ec29b32bdcc838199c3db802a5affd58e348f68ac9f4931ae0e2021f SHA512 512db744830b31ded109047e0c736dd18ae01cdea2b94099d06b7f30a31274fa4fd689b286a1e12768ac618fc4d38be9eb7c0d58b1f0a3e2b67ae4a133cec97d WHIRLPOOL adce5fce462119dfa1569c4b2241f1129ae2659ae8964a9556d730bcda246c7db08b6e6b14ae644df8e3fcc990f84c9585b4ecb9617e26833fb70babd447c606
@@ -127,4 +132,5 @@ DIST nvidia-settings-367.44.tar.bz2 1571750 SHA256 74ca3c7ac3e75c13b6aaef92739e2
 DIST nvidia-settings-367.57.tar.bz2 1571905 SHA256 aacb66b130e4adc034e10afb518c919a96029b31b14da8975b08d250d8750140 SHA512 57bf414f4aefacd994e73ea3b31de8cf9f5d6ddc9a95ea1456c21905510c4ba9219e690a1b1bb1346b57a80caf9856c5fede80734163392f0788b995d1bd4cea WHIRLPOOL 7294f84afe8a00f59e2073773d12dc0b31273ab49fe318558eee84a72b7df1233fa004949c0512bff1974c5edbc4749eed68e172336241ea9cb24d6c585a8979
 DIST nvidia-settings-370.28.tar.bz2 1573509 SHA256 59d7818a4837144e373ce958233db059fde59e279477001e187579770ebf0c5f SHA512 c4da6ae54839a8f91d3557153a648f69095e9a486dbaaf73e453d625660f1adcada12ee5c4bccc1afe2cfd454ead13c1df0e59d5d6aa70f6065823d53f7bb461 WHIRLPOOL e5f0a9fd67e50aee42598d6a0ce9a69a162405a6121518c7aaf9ede409e9bdeb44e3102a123eb6f8c963e0fdaca429a8b693f6af2f0467e746c42f57a496d45f
 DIST nvidia-settings-375.10.tar.bz2 1586956 SHA256 ebd94c777d2ea1107a116f16e2adddd2f482dff28bfceec0feeab62d09f1b600 SHA512 6aee82c3efc79af1c4c5b7e00505d5f8996925d2c909c7c7bbbfb7c56919a0e6d4f871146dc6ad33ff703bb700f8f82451bf7947e34e80eeb9370abb769e2c7b WHIRLPOOL 77733ae4cefccb05a9c582248307be0b17ef66ee128309603e975e99e19ca3803873ef720d248199601ff1f681f40a3134ef7703bfd3cdc756f0b3ea4b355042
+DIST nvidia-settings-375.20.tar.bz2 1614521 SHA256 40cd293e79bda131147187f281578e2b1f887c05bee78f671bde329af4956ada SHA512 e47d482a4c844ae8ef3c29f249333f6176a39f1a6e1dbcb87497a9117f5158fe68136a74739aae071ceac14bf779362c0484382e10b803503a605e7867ab4cbd WHIRLPOOL 9969d420f14f1bf3e7ed5dabd86438678d997089aef9ac1025f0585ddc87201d3558833dc3b9ce6d13415a2f484610b9a0d923b4cbeaae79d889a880d9475126
 DIST nvml.h-375.10 225272 SHA256 44feb6022fdbd27b486d74fc8473d8bc46caeec59963514e53d5cc7bc2bc9f15 SHA512 ebd6b5551a58e5cad17b7cae472a32fa2cfdf79ead62804ca3ecf204b0bc7a215f799666950b62d4938eb983edbf554bc65a7a6200e61639a5da57f884af55b9 WHIRLPOOL 0ee6c64caea1ece104fd67a5c40c9c4dfe785b1effa0da7260887e9b471b2a9e8848f4a06ce8a264606c96c0ba06eb49c053f1d1405b5eb9c030c80bce2071b2

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.20-profiles-rc.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.20-profiles-rc.patch
new file mode 100644
index 00000000..49efc0e
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.20-profiles-rc.patch
@@ -0,0 +1,11 @@
+--- a/nvidia-application-profiles-375.20-rc
++++ b/nvidia-application-profiles-375.20-rc
+@@ -48,7 +48,7 @@
+         {
+           "name" : "NoEnforceShaderInputOutputMatching",
+           "settings" : [ "GLShaderPortabilityWarnings", false ]
+-        },
++        }
+     ],
+     "rules" : [
+         {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-375.20.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-375.20.ebuild
new file mode 100644
index 00000000..0133865
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-375.20.ebuild
@@ -0,0 +1,554 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
+	portability toolchain-funcs unpacker user udev
+
+NV_URI="http://us.download.nvidia.com/XFree86/"
+X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
+ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
+X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
+AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
+SRC_URI="
+	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
+	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
+	arm? ( ${NV_URI}Linux-x86-ARM/${PV}/${ARM_NV_PACKAGE}.run )
+	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
+	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
+	tools? (
+		ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
+	)
+"
+
+LICENSE="GPL-2 NVIDIA-r2"
+SLOT="0/${PV%.*}"
+KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
+RESTRICT="bindist mirror"
+EMULTILIB_PKG="true"
+
+IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
+REQUIRED_USE="
+	tools? ( X )
+	static-libs? ( tools )
+"
+
+COMMON="
+	app-eselect/eselect-opencl
+	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		dev-libs/jansson
+		gtk3? ( x11-libs/gtk+:3 )
+		x11-libs/cairo
+		x11-libs/gdk-pixbuf[X]
+		x11-libs/gtk+:2
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXrandr
+		x11-libs/libXv
+		x11-libs/libXxf86vm
+		x11-libs/pango[X]
+	)
+	X? (
+		>=app-eselect/eselect-opengl-1.0.9
+		app-misc/pax-utils
+	)
+"
+DEPEND="
+	${COMMON}
+	kernel_linux? ( virtual/linux-sources )
+"
+RDEPEND="
+	${COMMON}
+	acpi? ( sys-power/acpid )
+	tools? ( !media-video/nvidia-settings )
+	wayland? ( dev-libs/wayland )
+	X? (
+		<x11-base/xorg-server-1.18.99:=
+		>=x11-libs/libvdpau-1.0
+		multilib? (
+			>=x11-libs/libX11-1.6.2[abi_x86_32]
+			>=x11-libs/libXext-1.3.2[abi_x86_32]
+		)
+	)
+"
+
+QA_PREBUILT="opt/* usr/lib*"
+
+S=${WORKDIR}/
+
+pkg_pretend() {
+	if use amd64 && has_multilib_profile && \
+		[ "${DEFAULT_ABI}" != "amd64" ]; then
+		eerror "This ebuild doesn't currently support changing your default ABI"
+		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
+	fi
+
+	if use kernel_linux && kernel_is ge 4 8; then
+		ewarn "Gentoo supports kernels which are supported by NVIDIA"
+		ewarn "which are limited to the following kernels:"
+		ewarn "<sys-kernel/gentoo-sources-4.8"
+		ewarn "<sys-kernel/vanilla-sources-4.8"
+		ewarn ""
+		ewarn "You are free to utilize epatch_user to provide whatever"
+		ewarn "support you feel is appropriate, but will not receive"
+		ewarn "support as a result of those changes."
+		ewarn ""
+		ewarn "Do not file a bug report about this."
+		ewarn ""
+	fi
+
+	# Since Nvidia ships many different series of drivers, we need to give the user
+	# some kind of guidance as to what version they should install. This tries
+	# to point the user in the right direction but can't be perfect. check
+	# nvidia-driver.eclass
+	nvidia-driver-check-warning
+
+	# Kernel features/options to check for
+	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
+	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
+
+	# Now do the above checks
+	use kernel_linux && check_extra_config
+}
+
+pkg_setup() {
+	# try to turn off distcc and ccache for people that have a problem with it
+	export DISTCC_DISABLE=1
+	export CCACHE_DISABLE=1
+
+	if use driver && use kernel_linux; then
+		MODULE_NAMES="nvidia(video:${S}/kernel)"
+		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
+		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
+
+		# This needs to run after MODULE_NAMES (so that the eclass checks
+		# whether the kernel supports loadable modules) but before BUILD_PARAMS
+		# is set (so that KV_DIR is populated).
+		linux-mod_pkg_setup
+
+		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
+		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
+
+		# linux-mod_src_compile calls set_arch_to_kernel, which
+		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
+		# expects x86_64 or i386 and then converts it to x86
+		# later on in the build process
+		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
+	fi
+
+	if use kernel_linux && kernel_is lt 2 6 9; then
+		eerror "You must build this against 2.6.9 or higher kernels."
+	fi
+
+	# set variables to where files are in the package structure
+	if use kernel_FreeBSD; then
+		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
+		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
+		NV_DOC="${S}/doc"
+		NV_OBJ="${S}/obj"
+		NV_SRC="${S}/src"
+		NV_MAN="${S}/x11/man"
+		NV_X11="${S}/obj"
+		NV_SOVER=1
+	elif use kernel_linux; then
+		NV_DOC="${S}"
+		NV_OBJ="${S}"
+		NV_SRC="${S}/kernel"
+		NV_MAN="${S}"
+		NV_X11="${S}"
+		NV_SOVER=${PV}
+	else
+		die "Could not determine proper NVIDIA package"
+	fi
+}
+
+src_prepare() {
+	eapply "${FILESDIR}"/${P}-profiles-rc.patch
+
+	if use pax_kernel; then
+		ewarn "Using PAX patches is not supported. You will be asked to"
+		ewarn "use a standard kernel should you have issues. Should you"
+		ewarn "need support with these patches, contact the PaX team."
+		eapply "${FILESDIR}"/${PN}-364.12-pax.patch
+	fi
+
+	# Allow user patches so they can support RC kernels and whatever else
+	eapply_user
+}
+
+src_compile() {
+	# This is already the default on Linux, as there's no toplevel Makefile, but
+	# on FreeBSD there's one and triggers the kernel module build, as we install
+	# it by itself, pass this.
+
+	cd "${NV_SRC}"
+	if use kernel_FreeBSD; then
+		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
+			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
+	elif use driver && use kernel_linux; then
+		MAKEOPTS=-j1 linux-mod_src_compile
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			AR="$(tc-getAR)" \
+			CC="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NV_VERBOSE=1 \
+			RANLIB="$(tc-getRANLIB)" \
+			DO_STRIP= \
+			build-xnvctrl
+
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			CC="$(tc-getCC)" \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LD="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NVML_ENABLED=0 \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			DO_STRIP=
+	fi
+}
+
+# Install nvidia library:
+# the first parameter is the library to install
+# the second parameter is the provided soversion
+# the third parameter is the target directory if it is not /usr/lib
+donvidia() {
+	# Full path to library
+	nv_LIB="${1}"
+
+	# SOVER to use
+	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
+
+	# Where to install
+	nv_DEST="${2}"
+
+	# Get just the library name
+	nv_LIBNAME=$(basename "${nv_LIB}")
+
+	if [[ "${nv_DEST}" ]]; then
+		exeinto ${nv_DEST}
+		action="doexe"
+	else
+		nv_DEST="/usr/$(get_libdir)"
+		action="dolib.so"
+	fi
+
+	# Install the library
+	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
+
+	# If the library has a SONAME and SONAME does not match the library name,
+	# then we need to create a symlink
+	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
+		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
+			|| die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
+	fi
+
+	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
+		|| die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
+}
+
+src_install() {
+	if use driver && use kernel_linux; then
+		linux-mod_src_install
+
+		# Add the aliases
+		# This file is tweaked with the appropriate video group in
+		# pkg_preinst, see bug #491414
+		insinto /etc/modprobe.d
+		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
+		doins "${FILESDIR}"/nvidia-rmmod.conf
+
+		# Ensures that our device nodes are created when not using X
+		exeinto "$(get_udevdir)"
+		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
+		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
+	elif use kernel_FreeBSD; then
+		if use x86-fbsd; then
+			insinto /boot/modules
+			doins "${S}/src/nvidia.kld"
+		fi
+
+		exeinto /boot/modules
+		doexe "${S}/src/nvidia.ko"
+	fi
+
+	# NVIDIA kernel <-> userspace driver config lib
+	donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
+
+	# NVIDIA framebuffer capture library
+	donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
+
+	# NVIDIA video encode/decode <-> CUDA
+	if use kernel_linux; then
+		donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
+		donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
+	fi
+
+	if use X; then
+		# Xorg DDX driver
+		insinto /usr/$(get_libdir)/xorg/modules/drivers
+		doins ${NV_X11}/nvidia_drv.so
+
+		# Xorg GLX driver
+		donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
+			/usr/$(get_libdir)/opengl/nvidia/extensions
+
+		# Xorg nvidia.conf
+		if has_version '>=x11-base/xorg-server-1.16'; then
+			insinto /usr/share/X11/xorg.conf.d
+			newins {,50-}nvidia-drm-outputclass.conf
+		fi
+	fi
+
+	# OpenCL ICD for NVIDIA
+	if use kernel_linux; then
+		insinto /etc/OpenCL/vendors
+		doins ${NV_OBJ}/nvidia.icd
+	fi
+
+	# Documentation
+	dohtml ${NV_DOC}/html/*
+	if use kernel_FreeBSD; then
+		dodoc "${NV_DOC}/README"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1"
+		use tools && doman "${NV_MAN}/nvidia-settings.1"
+	else
+		# Docs
+		newdoc "${NV_DOC}/README.txt" README
+		dodoc "${NV_DOC}/NVIDIA_Changelog"
+		doman "${NV_MAN}/nvidia-smi.1.gz"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
+		use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
+		doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
+	fi
+
+	# Helper Apps
+	exeinto /opt/bin/
+
+	if use X; then
+		doexe ${NV_OBJ}/nvidia-xconfig
+
+		insinto /etc/vulkan/icd.d
+		doins nvidia_icd.json
+	fi
+
+	if use kernel_linux; then
+		doexe ${NV_OBJ}/nvidia-cuda-mps-control
+		doexe ${NV_OBJ}/nvidia-cuda-mps-server
+		doexe ${NV_OBJ}/nvidia-debugdump
+		doexe ${NV_OBJ}/nvidia-persistenced
+		doexe ${NV_OBJ}/nvidia-smi
+
+		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
+		doexe ${NV_OBJ}/nvidia-modprobe
+		fowners root:video /opt/bin/nvidia-modprobe
+		fperms 4710 /opt/bin/nvidia-modprobe
+		dosym /{opt,usr}/bin/nvidia-modprobe
+
+		doman nvidia-cuda-mps-control.1.gz
+		doman nvidia-modprobe.1.gz
+		doman nvidia-persistenced.1.gz
+		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
+		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
+		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/ \
+			DESTDIR="${D}" \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LIBDIR="${D}/usr/$(get_libdir)" \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			PREFIX=/usr \
+			DO_STRIP= \
+			install
+
+		if use static-libs; then
+			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
+
+			insinto /usr/include/NVCtrl
+			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
+		fi
+
+		insinto /usr/share/nvidia/
+		doins nvidia-application-profiles-${PV}-key-documentation
+
+		insinto /etc/nvidia
+		newins \
+			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
+
+		# There is no icon in the FreeBSD tarball.
+		use kernel_FreeBSD || \
+			doicon ${NV_OBJ}/nvidia-settings.png
+
+		domenu "${FILESDIR}"/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+	fi
+
+	dobin ${NV_OBJ}/nvidia-bug-report.sh
+
+	if has_multilib_profile && use multilib; then
+		local OABI=${ABI}
+		for ABI in $(get_install_abis); do
+			src_install-libs
+		done
+		ABI=${OABI}
+		unset OABI
+	else
+		src_install-libs
+	fi
+
+	is_final_abi || die "failed to iterate through all ABIs"
+
+	readme.gentoo_create_doc
+}
+
+src_install-libs() {
+	local inslibdir=$(get_libdir)
+	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
+	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
+	local libdir=${NV_OBJ}
+
+	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
+		libdir=${NV_OBJ}/32
+	fi
+
+	if use X; then
+		NV_GLX_LIBRARIES=(
+			"libEGL.so.1 ${GL_ROOT}"
+			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
+			"libGLESv1_CM.so.1 ${GL_ROOT}"
+			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLESv2.so.2 ${GL_ROOT}"
+			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLX.so.0 ${GL_ROOT}"
+			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLdispatch.so.0 ${GL_ROOT}"
+			"libOpenCL.so.1.0.0 ${CL_ROOT}"
+			"libOpenGL.so.0 ${GL_ROOT}"
+			"libcuda.so.${NV_SOVER}"
+			"libnvcuvid.so.${NV_SOVER}"
+			"libnvidia-compiler.so.${NV_SOVER}"
+			"libnvidia-eglcore.so.${NV_SOVER}"
+			"libnvidia-encode.so.${NV_SOVER}"
+			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
+			"libnvidia-fbc.so.${NV_SOVER}"
+			"libnvidia-glcore.so.${NV_SOVER}"
+			"libnvidia-glsi.so.${NV_SOVER}"
+			"libnvidia-ifr.so.${NV_SOVER}"
+			"libnvidia-opencl.so.${NV_SOVER}"
+			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
+			"libvdpau_nvidia.so.${NV_SOVER}"
+		)
+
+		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-egl-wayland.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-wfb.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_FreeBSD; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-ml.so.${NV_SOVER}"
+				"tls/libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
+			donvidia ${libdir}/${NV_LIB}
+		done
+	fi
+}
+
+pkg_preinst() {
+	if use driver && use kernel_linux; then
+		linux-mod_pkg_preinst
+
+		local videogroup="$(egetent group video | cut -d ':' -f 3)"
+		if [ -z "${videogroup}" ]; then
+			eerror "Failed to determine the video group gid"
+			die "Failed to determine the video group gid"
+		else
+			sed -i \
+				-e "s:PACKAGE:${PF}:g" \
+				-e "s:VIDEOGID:${videogroup}:" \
+				"${D}"/etc/modprobe.d/nvidia.conf || die
+		fi
+	fi
+
+	# Clean the dynamic libGL stuff's home to ensure
+	# we dont have stale libs floating around
+	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
+		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
+	fi
+	# Make sure we nuke the old nvidia-glx's env.d file
+	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
+		rm -f "${ROOT}"/etc/env.d/09nvidia
+	fi
+}
+
+pkg_postinst() {
+	use driver && use kernel_linux && linux-mod_pkg_postinst
+
+	# Switch to the nvidia implementation
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
+	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
+
+	readme.gentoo_print_elog
+
+	if ! use X; then
+		elog "You have elected to not install the X.org driver. Along with"
+		elog "this the OpenGL libraries and VDPAU libraries were not"
+		elog "installed. Additionally, once the driver is loaded your card"
+		elog "and fan will run at max speed which may not be desirable."
+		elog "Use the 'nvidia-smi' init script to have your card and fan"
+		elog "speed scale appropriately."
+		elog
+	fi
+	if ! use tools; then
+		elog "USE=tools controls whether the nvidia-settings application"
+		elog "is installed. If you would like to use it, enable that"
+		elog "flag and re-emerge this ebuild. Optionally you can install"
+		elog "media-video/nvidia-settings"
+		elog
+	fi
+}
+
+pkg_prerm() {
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}
+
+pkg_postrm() {
+	use driver && use kernel_linux && linux-mod_pkg_postrm
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2016-12-15 10:31 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2016-12-15 10:31 UTC (permalink / raw
  To: gentoo-commits

commit:     856deb27ac7866c30efb7004fcfd0efce1cf8017
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 15 10:30:28 2016 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Thu Dec 15 10:31:50 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=856deb27

x11-drivers/nvidia-drivers: Version bump.

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 x11-drivers/nvidia-drivers/Manifest                |  16 +
 .../files/nvidia-drivers-375.26-profiles-rc.patch  |  11 +
 .../nvidia-drivers/nvidia-drivers-304.134.ebuild   | 488 ++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-340.101.ebuild   | 518 +++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-375.26.ebuild    | 555 +++++++++++++++++++++
 5 files changed, 1588 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index c815bac..14a7be2 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -1,6 +1,8 @@
 DIST NVIDIA-FreeBSD-x86-173.14.39.tar.gz 20038266 SHA256 63a922ce4c5b676b4cb1ace98094dace4cc5408f2553e183df7b2127777a238b SHA512 96982fe7e0751c52fbef534193de09d187b99c1984c05e791223eb804719d8b3ba72efd983f227661ded4b71569bdbb914f1f629ab73a8bc9b8172832ccf3ec6 WHIRLPOOL 21f5906f42adf0064c7a7f81ac8e323de488e6d36356ee42c31a15c31ebb64335d5e2cff0ff022d41de480f9e0a57b3b96387f17151c7b59eceba2c61a7a102b
 DIST NVIDIA-FreeBSD-x86-304.131.tar.gz 10656712 SHA256 ba269b8b142429756be4fbf94a5da97bd039d6da91571bc7d4fceb750e0766ac SHA512 b8036055b5a667239b40392920a043b60b0d68529a85fec5779e9deca1bf2de8683be4e49aa7e37e1b32c547ff125d5d7df950ef059d26ebc28b244190062c59 WHIRLPOOL a8eea0d5ec4f1f931e2dc1b8f5faf0bea2b3db926b3c638e65504fdf9b3bbb2c27b8046cf859aa7f13f228cff4620d748b1cb6ef3fc8f8bfc2c650b0fe2419ad
 DIST NVIDIA-FreeBSD-x86-304.132.tar.gz 34782140 SHA256 c411d1d290a8ed0cf379c8e18fcdc0934905d0762a52a3e2e330cbff6e8ef250 SHA512 fc23e02ca8c72b0cfadbfb9f08e26fa1ed6b2dcfc660b40eede718a44134dc7e75163c79319471c60ed7e7316405966ba132926f115c7241706936eb7cc6b685 WHIRLPOOL f23076cb78a79d8b38eeb081fc83a2fad163cad9d80f59d83e67d528ab7ecc3265809e032eb3e8a34533c825d420bc734149a29d21e1ebbe1f1787bfb923f5de
+DIST NVIDIA-FreeBSD-x86-304.134.tar.gz 35095790 SHA256 e7a164807c83ab0f1be98eb241e76db0ca481d24cd64563c44dfbd73b9067b0f SHA512 99549785683771d19c3877b6778f37622c9b7b3332bced2850f26476e21a258ead69535e199616940f40d4874aee2e8f6007b08c232b3ae17c5667a21c917343 WHIRLPOOL 85909e79083f1e9a87aa88801ab0ee855bd409bf667997037190b14923caee1e0bd53e8b180e54392e3f81b0cdef714318d699757a174c74d3ad0a0cfe70ccb8
+DIST NVIDIA-FreeBSD-x86-340.101.tar.gz 59992166 SHA256 f62038819eb4ba074e92ce8d26b6330ed3bc32d1c07bcc95f4e2964fa667e03b SHA512 b0d3e04acd60c1699850ecebbbdc2677f9691d3acf700effa369daedf3a45d7068c365a3298214acf396d7bcd531cfec26e9ef02e02c0896f01240219b338beb WHIRLPOOL 955e8ad5152137641fcf2d5515e8c3b0a7ed9cac5ab646c2551fb4b1b0c0295ef3e3007905d5b5f2c50daaab1b74b7d6ffeb3f96f617b464c2db745ca4b33473
 DIST NVIDIA-FreeBSD-x86-340.93.tar.gz 59385673 SHA256 094dc6df60b8e57cf9b94d982cb29c32d5e0c1d81796dbadb39145e78a3b0086 SHA512 ae5ef62aa8dea2f67026dc9e7f369294895516cd443daa277ac2c783ef1fe85df23706aef70cbce41722d239a50c562b66210fd76f662186e25c58b38e617230 WHIRLPOOL 816b2b8c1de3609c03059fbb6f102f54fba5fcc64539745701ef3e20e435ca767ff8fe93c7f0242fcee5fb941210781a526b67cf693a48974723ccbf8e95595f
 DIST NVIDIA-FreeBSD-x86-340.96.tar.gz 59678354 SHA256 dda243ed9b36e29162b1c97b987b9ca82ef7fcff4635ac78443fdb06739ec22e SHA512 dacd14a41c16bff9d26a00084c96af3fb9472fdb00832ca36f4737fb8c741e1eb89f1d6d015c3dee051482aef23631fecbad645e17014e53ee51644d4aa4b51f WHIRLPOOL d55d10682a086b6dcfb72e67f028731afd1f4a5ee2d96d6288f1a0c8eead51927b7454fff793d0b4c57d273fd5b00a9207004b14b4e6f66ab8f106ab5c68518c
 DIST NVIDIA-FreeBSD-x86-340.98.tar.gz 59690529 SHA256 eaf7b3ff2daaca269638c912044bf6129fb6e274674466d274f6ecb4b84a80f2 SHA512 7e8cedf27417c63913f5a3cb77da590bfad23780d9123bff0ce4528302f1b328d3a0eac121e49b83b05ff0a8e4f09f40dc8268f4b6da7fff493e41edbef0407c WHIRLPOOL 96b0e43694db20c1bf2c0c1614b13807a106ceece42a23410939ac108d29054780194bbc8d68865e25863e7cb19ccbd2321694fc739c25998817bfb04775bd3b
@@ -23,9 +25,12 @@ DIST NVIDIA-FreeBSD-x86-367.44.tar.gz 62815733 SHA256 687a178cc0e63f79f38f6e71da
 DIST NVIDIA-FreeBSD-x86-367.57.tar.gz 62859799 SHA256 64a0bde687aac1ec2aad859d5bea47d0691b916a851c64992bd460a05ad7c162 SHA512 13269f76d53a1818690ba8fd7aa604783e80059a031e3668c21a70158eeaa97251adda9ac058a712342e95780db86be5b893eebe0422cfce7f1073d88ea9293d WHIRLPOOL 303bebf3d73d8bc232a188c9e3a23164a70fafdd44974e5f5b1873488f682979702e2f18d838d85072a22520d959ded6bb3a4b79cb3d7cafc5de0feca6241061
 DIST NVIDIA-FreeBSD-x86-370.28.tar.gz 58718517 SHA256 52193b15b4ca822b029f860eed4d00270c925f5d24f7bb511a5b7bbea696d58c SHA512 83ffb19069cc240f8836d808a5eb02c142e7ad923fc2e3049a3b316acc12df070d42dfdc5a8a8e1411ccc9fba0bfa4ed84f457435e985434cd86ae966a63a3f4 WHIRLPOOL b1bec4d5e34ea39c3b1b44adcf85b7392cef39517979d32bc800e48a79a57cfb5f1ca5ff82bc302aa67ed12094782e09ab146f021a9c04e18430034a5ab341a9
 DIST NVIDIA-FreeBSD-x86-375.20.tar.gz 59078892 SHA256 acf64b8b566046475095f823bee39ba5b4897a54cc8f2e52e33a0a766358f859 SHA512 154c4a04387805a2a9d3ebba19c7ca6d4894d4145bfd2108e10b3809c8022e22a79a387533fa356cd69ce8137498b36f059d00ed26c44c5ef12b99b4e23517b4 WHIRLPOOL f6de00f0ee7027d3db653724ed2271cc847358fd1292d6c9cd6fb73aa7d784d1e2fdae467cdd0fce5140c3996e3a6d09ac1ac822b6b9b6b99bba4a39cc38bfa8
+DIST NVIDIA-FreeBSD-x86-375.26.tar.gz 59091851 SHA256 5249d01a21bb846a08975c4f3a90935b6dc8fd33ec8e5faa0d624ef15bcf2b88 SHA512 281f41f341ccf7f7c1e0de9a6519813c7fd2d13ef59001c0a6f126cd5b8f2b67848c780ddaf6647e0c8b9a79c12ff77493c07203510084e741746834b26f5fdb WHIRLPOOL 48e5f810f41337f6b8f5db419288ae5050c3efd71d0b4b7f7b64251612860d5c7e83cb78885a73f6752160ca8dce852560db7d95ce93d5d86dba21e59bae5e77
 DIST NVIDIA-FreeBSD-x86-96.43.23.tar.gz 15463464 SHA256 18d855db8381eda1a6cf548c9e5095fc5bb8694bf1d6e24fc1072fba4e54cd78 SHA512 42d7b1b76cdb3b23680363e565614a22112162a5dd3639cb804fe670c0c3f3f23595bbefa3f78afdc6a8ca848446dee853c7a355f2c96a0d01b354753ba2785c WHIRLPOOL f8e59ce521990cd9edee441e73f973f074db492952807a0931e362102874cddbb47604ff5c5eb20a0cbde27f9b6d4e440dd12cc2e5a20c9cb65bf3c0b3e62511
 DIST NVIDIA-FreeBSD-x86_64-304.131.tar.gz 35812363 SHA256 e10aa34f4aeb6981c0bc6762f37e6ad57de52b45c7322d0caef9781c1a43858a SHA512 0df69d11c79cfd66f40f5adf091f9c3ad494b89fbe9200a1a01fef8cb2d2591ffdeb703d82a263e050384d39ef81af3a717ac24716f96b1fd8386d1758bcf45b WHIRLPOOL a7e01ac4646d52229efb1d22df9b4db98bfd6bc30c79fc4c65273001b1cd09c4db823a0141a060f8c53926ae23a33fe66e27aec805879228d64bf3f45aa66bcd
 DIST NVIDIA-FreeBSD-x86_64-304.132.tar.gz 35810728 SHA256 baedb1901f679b1d2449c49302f3abdb90ac9a85935e3ff3b0968a32089b719c SHA512 4ee6c66efc3b77d7421904ab04c621ed7374d657d0406988a3a1c4b352c092f42ed6394951247d58cbfb54b07e67ed7d02040d6eff136ab57749db813167904c WHIRLPOOL b9f5ef7d63847f76212dfc3d0dba738cb9ea9f42881becaf9c41de31858c95b4c90911eed296c5c266a4cff7dba33f09dbdbdf9e6e731e9b3f13dce7e4346d33
+DIST NVIDIA-FreeBSD-x86_64-304.134.tar.gz 36148973 SHA256 3eafced8f8095c7f1135feaadbfcc709bd7ab96bf755da52ed5ca05a473604f8 SHA512 35b2d74b9fa16a3e826552ddc56cf3d91cfd936ff60c6deb16ed39c110e3d1341e916e9b576c8cba8114896adada4dc44b2e70024cec6ebda6667a405533cf46 WHIRLPOOL 0a40b865675b8d77db0774683696185b3aa0c1586b2cb76ed816fe172ddc276d959ec83f0ccd053781f0721707226b62a65887223549effc638b0375f9d557e3
+DIST NVIDIA-FreeBSD-x86_64-340.101.tar.gz 60860185 SHA256 aa75da2de6656bf8c4b8cf73b9e330b21ebc5da6de509cf90aed8a571716b111 SHA512 0a69e90c2ddd574736ae666fb0216afe639423c8bf73c69e7403bbd5e2aca640f130196402d81924137b34d30befeaaf8174a3fe3ca7efc16a2c5e650e87ab99 WHIRLPOOL b7652dcfc6116f865876cbb43807b1573ee6506e8f626a0da9123efe6fd6987d6bdd3c78dc833a38f0bff78ea290c34ecd69a65f7870248ac2c1bdff6cdb87b5
 DIST NVIDIA-FreeBSD-x86_64-340.93.tar.gz 60215584 SHA256 07208f6a832c2da8748b1c4f8b5ce42a7b617f2ee1ac59155fecaff952c30988 SHA512 c480df2f36c3d6eba53af9c3070e1561ae7c56cd5d31fb531dcb6897ca02d0d205c0ce99597304ea36b7b75b173e31a9a4c07ddd143ad13884aff0a7c3479bce WHIRLPOOL c1b28898ffe733961bdb622e8b430715c74871cfaab0348a9e5990df5a92676e8fb8c199ea1f1a06fa6c6ded65877b987b802a7a9ea0b7023cbaa62fb52eda01
 DIST NVIDIA-FreeBSD-x86_64-340.96.tar.gz 60536275 SHA256 b67962a4433dd1fa86cde038bb244a547f5ed6c242febc348d618886b7715d09 SHA512 1e33f062d4414011406466c1c91c70e8280ee27542bfe2e2037be82cb1186ece661be5c53ac7160f6d912ee0e02411145c9a6d06861d89d5c5abdd493032cfa5 WHIRLPOOL 63e0d843f5c3de210c9f880efada84dc08456b64e0e746a037272ec2988ce00b09f9033cedca45279aa79b80e2edef1b81dc261415e6fdf0701c62409b50e7f5
 DIST NVIDIA-FreeBSD-x86_64-340.98.tar.gz 60539385 SHA256 c2b8c7681c214de4c29fb1d8b9a5a9d17e371350dfa14dd583bc3072fb692f61 SHA512 389b1682344262b6c44e33176c712f0c0c02abef4dc0d44d923add5aee105728639c7479a3e0800687fc876e7f8184216b5518ea24e9e2b969b26ce8c9533bd8 WHIRLPOOL 20815ace25c4ba38b0bfe5ad2231e8b649135667c7d3800027d0ffdcca279dcdb093088219a2e458a2779556c8e0883af074a9e02c0239bfe2c40fa06e65ddcd
@@ -48,15 +53,19 @@ DIST NVIDIA-FreeBSD-x86_64-367.44.tar.gz 59577943 SHA256 e07d21b0ad39a0a24cdc484
 DIST NVIDIA-FreeBSD-x86_64-367.57.tar.gz 59604884 SHA256 6f2986941a9f4cdcb3692c39919e5eeec09f2799b7797d3c0be0d4c61f7eed5b SHA512 06e4fd656efc88260c10b2a86308461754302dc9bad88285efe8b864012806f2d7147173ded9ee7b4ef2518ddbd6f02c5d36b184f913176732dd90cce0df006c WHIRLPOOL 9c33dd392ba0335b08c7710aaf97564d7cc0fdcc2fe87ec67ae1932848dbd6e6ad0437f6b44409b11cefc7ec33be7656199dcb2a34ab296f969fd65243bd114e
 DIST NVIDIA-FreeBSD-x86_64-370.28.tar.gz 57905860 SHA256 5087a93af8aaab6cff35ba60c9d67b4249827f6b7681abaaa571a20784a54552 SHA512 40637d64a0ee5029bb1c5ad7a590c5be61253ef6283c4217666768ad8601d7f51ef0d8705c8711f65c3d0a5a5721490813220c5f9186c6d2d12baf5d9c11122e WHIRLPOOL 361648788b7efb9e550b3e67d2e6022e31dab29f5660c42a1b6c961fe4638216fb8785814ee9fa1636fc39c39afce7caffbdc24fcf8bbd14e4eec5b5eeaeb1eb
 DIST NVIDIA-FreeBSD-x86_64-375.20.tar.gz 58259944 SHA256 f4678d671c9dcb7f127173ea1de7614593559658d1876789c37c5f7c62cad563 SHA512 0e039a64095f5385b5acc359206c598e141e18366252a9bbe91933427b372d61740d9fd6c11f1682b78f7e93f9f65915b8f2f05f65e666d0c0d867a29ed98071 WHIRLPOOL 85696e1c21132d18a1ee81f9e1c7ab05ae2fdc839c1d8877e67fac7fb39428ab6e7dcd4d2806dd56ba9ef93fc8648c7ce77c19145652252df3fa247be5db9737
+DIST NVIDIA-FreeBSD-x86_64-375.26.tar.gz 58287080 SHA256 c7d32cb434f9a7e84903a1305d7577705f991fdb6eb4ab3ff79d41b2df82265d SHA512 514c92636eeffa68cea5140819a9ad14888c18c1c60b0865e5cc9f9896b503f22c1236f76e65ed5e11cf3685ceb483c78d2a442b4e9bf274ae3ab399cf40ed9e WHIRLPOOL aa4eb254a6f3c5b0a9b2aaab12a011a92763e7a966b31840a595c18e24d82935dbe0ab3faa4c9aeb7ae24ec7505cb60c20c1e117396cf0527161a2aa1face296
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.27.run 25585174 SHA256 ae0855b247d5a5474561c76a79536fe82c44bd10e6154792978c5572d11c47f9 SHA512 dd60292f262e1d7d6cca09a35c3f8b65820d216d46f2b94feb208554496b30a983a73ffb8b2a1473cef0b7e08a3cda901eeca855e1db77f4f6dd23779772580b WHIRLPOOL c55d4102a6717f81d8bde7e66d1772c7b1f370d4d610ef61561c94f5ea6cc4797b5f15b9cbc31216b2ef9ef9132a66682b280d9ef5b74c4a57ee2ee8da6c1122
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.35.run 25628654 SHA256 6087bd2cc594f860d27d26e30acd3593310ce00938c10e5729175f037efa222e SHA512 3157c3dc9d07dd0eb8aaa0bf21edf62aa1338f10c1431981494d2a7b1f0be8a1eee8b5bc41914cfca9b4c76773b0056e7ad5c80a4c7acadfadb52a7647baabbe WHIRLPOOL 49c8896d1a40e1f634224227100b303c3d2ebc66ee93f31aa18bc39c898585eba49400d148f47476e4253d35d7379047dbcf7f43cf027df0b16179bfc8912db0
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.44.run 25674978 SHA256 b42af2009460614c6d4b6585535dc2f0c1e98244f00bf75ece37dc31d2cc45c3 SHA512 0fd72fe7afa1415eb961a5308c142316cb5311195486b331c406f4cbcc7d30dd5f0e85e5b179ffb8f38ce5ee1b5abac671d89f62b7dc7e1b1d738212af6acd91 WHIRLPOOL ce2b0fa6b8c545af63292da214cfeb564f765179f531907ac7750c7a9d890816ce869dd7e6898ea0a0a6f446d20868d55c235a5ee2e88105731e8812b5f67c79
 DIST NVIDIA-Linux-armv7l-gnueabihf-367.57.run 25701866 SHA256 e856debfabffe0e4ed2900e4acbc8e68340c4773651ec7a0000659588431ef7d SHA512 2d1221b8c6f01148412790c24f88a74104da4dc40f30ebe57a47468818c811119ed629ffa565f3ed58ce0b12b292b4304a2b364a83faff41ba14ea747f4e1c88 WHIRLPOOL bf7011f50360516f76ea5e176aea7d761193de877a5357a54704c60d512faf1af8e8e2450c547b5181fba98ee627a297b1c573e147c4db623324c1c35396330d
 DIST NVIDIA-Linux-armv7l-gnueabihf-370.28.run 26117701 SHA256 efb60a23aa22b46e94e91d5f5a5fc0c17b47bcf50471e4371653ced5a5350dce SHA512 04699849441bccfb9214fda4c7ff8ecefa11249d1fbfe470e37fefdd132becc225a1bcc16bc976c3fb145a427961f5402c95ecc84b613adb71caef9c96fe7d90 WHIRLPOOL 675a495594c46666ec11c83a76cdc8821e9b57079ee53cd7adcf00e783d121e163b7c5b10598aa55a1fee72eee47defc514fba986685af41c90ab2c5d890abbd
 DIST NVIDIA-Linux-armv7l-gnueabihf-375.20.run 26238901 SHA256 dd28db61f89311240a76c0a82d1324f352879bfcb0c58fd6403fd9f783e43f0e SHA512 f52d66928bb5370bdfe7d7a119b8a8e73c4832b32bb372f24856bbd35c4f338fcb170b05f92f579c9d0849a84c4fa0e3d6b0e8de6b23aac564dfb9f3fabf725a WHIRLPOOL 0383789b871e50a532deeaf27414d0a518dbba93d6eb4fcd08e6fcc47260d67f48852458c6302d7dee0addc89e3dbdd7ce074cdfdee5b0bbeecb70c0c44892b2
+DIST NVIDIA-Linux-armv7l-gnueabihf-375.26.run 26735389 SHA256 8d2b7b36e74ceb1c439b2a5f8d2cdf009fda4f668509bb5d45171455abc774b9 SHA512 f18031c9b9ca6825f93f433d3f59b76a380a12b55e2f4556c2a1725fcdbea58176f22dcdb322f20e27d524f3fda75dd4f5a2a9263268411e0f5e361c580d865d WHIRLPOOL 4ecd41bebae3df91a39612849eb6f7e926398e906d2cb878aa788571976fb1cdfeabd47ac0cd3db26c4a0408608b8dfbc3815d10cdd1acd8eeaba6ed5824bb73
 DIST NVIDIA-Linux-x86-173.14.39-pkg0.run 15134997 SHA256 a09935f37121ed3db8ae3da63a0d8e9d4348a19c859811c9fe44d6ce8e3eab23 SHA512 e24e15ccec725d3cbca502c2b77061776a81ef92917a950adec4ff6bdc34f10903aa654433177ea74be0dade4af81c5380d5710d375a5ea445940d06154bde93 WHIRLPOOL fce3d8e4f6cdf698f5a057514b6fe220bb1011025bdce5bd4cf0e424fb4d306d38251b6726bda03f290ea8137d5a95ed418cf8751722879f9042462abd9181b6
 DIST NVIDIA-Linux-x86-304.131.run 40893199 SHA256 d2554bb6f7867e7762d0ecedcac5bde7de0634e43b952bf466323ea8b4032da8 SHA512 3e67c40648554dc49472081eee88ae982c3b235b3346e4d9e7fb5ae33ec5f10ed088da804ac7d8bd1565995df3861f12b3560030cd3a19339a2d35768b0a943e WHIRLPOOL 88e9cc0270a4fc64ed8475a217c7c8c50e6ea21fe14b5b5beb16f494bd62bf5ada2f47e26e5380dd3d0bc678091e29f0e26937eef1ee3c7bdc5805153201bae3
 DIST NVIDIA-Linux-x86-304.132.run 40910791 SHA256 d460f6ab63cc8c1f9fb89a344ad0f3ee1a90e7078b4edba78d86433e66bfd927 SHA512 70a6ed74a93ac2a1acec5eab5078dfe05fab66c6264d67f3238a6b28af7b39f7205e237214bac4ee5d2366e8c6a4a63dfc8dc113e9e977ee2387c5c8c63ccc8f WHIRLPOOL 69b24a57d906b37cc87f081209712f92eb2e7df27a2a030c51a1ef7bda607dd404b57d1fc008ee3d1ad3b81c176da1806e7b591d00a0894f2a0273ebd494e4dd
+DIST NVIDIA-Linux-x86-304.134.run 41201159 SHA256 84f7891af131bb9f9a8a34401dfef4288218019406dfa4ae57b6d52b14e81c9d SHA512 e047c62b33b092225ead42134acd596e3ae43d9bb8324188308dd7d497f33e790e7366d7a1c5ef5de66f484219d99de4c6e6206d390122d3fab4d30397ab463c WHIRLPOOL 63b6b01f781cfb7ed516ba18920c4852f099189053f3eb119976bcbcb64f00136c1bed6ba2871c52b6cab5aa5cc8764d8b10338c9e43234da1b07d1a74ed23ba
+DIST NVIDIA-Linux-x86-340.101.run 38932143 SHA256 5f5eda9c3d9bf53b56ef4f546dd1be5317eed46df425edbdd2c34023fb9eb062 SHA512 5866f2b4e6e22863c54d9fc08c9c88c9c911df2396d0ceaca653ded04589ea3a9e4550ed58f4b182b0a42cfe205ef643fe43ea709478e5df5360a7f74fa87f41 WHIRLPOOL d44d6075dd64804cfc3fbdc28510defc7796a2f22ac24625aab8552bd8bd6b16f51dea15f04d56f7b53ed3df514a92582171d27ec4e9aa099bef2d3e940a62be
 DIST NVIDIA-Linux-x86-340.93.run 38703394 SHA256 4a81c158302c595e1e72b5a1812eb3c67c8cf584ca74b1bc24163dad5289d612 SHA512 7507553bd4b11cac2cd882cd8afba59e773f58a26e67ee7e781c488be963a4f1eb54dcd72b40b29d33dd81c74d4748a76c1632b2c8ea08b524b4318c18b5dfe5 WHIRLPOOL 242190999da74f2fe4bfe4b223f43dec6ec73d97afd1e84e2c78c5fd5616d9814b647067ddf3f591ea8064d29234491de1c6f87b442e240d2aac4a1e598aefad
 DIST NVIDIA-Linux-x86-340.96.run 38720587 SHA256 c40e2778cd1ab036a76e1896fe2f77c4aa7baa215dbbdb11a2f4c5f05e1a478e SHA512 c6306a101b7dc6298eb02290fb7792f624b8b16b1449b5d58148617017e8fdb87f1838f99b225103bf6a81c60a3246de9a27eab89608f099273a1c3d1c0003da WHIRLPOOL d772a20a9c7badf695ca3572db3c0b7e5507926297e6f950965294ac30ae2d8f206ba5c4c229087fd7cba88427eb0e41fb3dd1a28c4f2c8c23fa70b27002180c
 DIST NVIDIA-Linux-x86-340.98.run 38664575 SHA256 7d18bac3f570d72e3aae9dd2b74f53f9aa7b07bd5b1c2d3d1a9ae2f8104752e0 SHA512 ecb3b7ab216bbcc606cb540a317dfc572dcb7d26ec84f1ff744451ec367ceffc73ae75ebc269aedba1850d3bac0d946b8b2fcc5929d7a3c27aae4fd3032a37e6 WHIRLPOOL a473566a76dace7d35fcc81a51a00ca70f24da9aaac3b1dfbc94c375a77a6be0dea9b7535d7dcbf57191e6ac04276c5e78c0e9decfa6fdbaf5d4f9d8e6a552f5
@@ -79,10 +88,13 @@ DIST NVIDIA-Linux-x86-367.44.run 44079774 SHA256 b2ad4d0d4a2e98528e877ae0d98c380
 DIST NVIDIA-Linux-x86-367.57.run 44731570 SHA256 43d4e926f71ac6c581018badf467458709822e97a7564ed9f1b521b7b63d88bb SHA512 6316cdd94131057a584b3a893cfbca5e8b0f5e79060cb5bfe2c149b5a76bdcdc21d20338febb54f7201985c5b05545c3f6b63b26c32699717057cfb047993972 WHIRLPOOL 443ca9b389f78c13ae5344cb3cce67035a2b5a605b94518d91c253965263d37a84dff9ca29d47509a2d43017afde4786a55bfd45613882b5d4889dc27b67622f
 DIST NVIDIA-Linux-x86-370.28.run 44189522 SHA256 6323254ccf2a75d7ced1374a76ca56778689d0d8a9819e4ee5378ea3347b9835 SHA512 2df8b3d1064073c8b793287994fe0648625d095f3434b7b67531e19632cbad318994df90b55de18aa457d55a1374b35d64a646564259995d3f2197c48737921c WHIRLPOOL 85a089c833311abdc06bbc1fc68cd5ff8ed43dd5e5887d340dc854f905ae741de0ae4343d024259f493dd668075096c460bc1f93c1795d2befb81dd3c4a4983a
 DIST NVIDIA-Linux-x86-375.20.run 44542058 SHA256 cc79d3ac2b688009ed2e47a1cf27557aea5dd745b3b6e9b83945c359ddab4335 SHA512 8f922b3cde613dbc5933f38fa3d57e37afe4ac68e3cd37894d7f8d42258290ddbab0fb5f51623c06fa3474718f6a55ee0187e23aa51e3131e050446986b96420 WHIRLPOOL 87faa367cd0833cb4a4b4d5d825676963a1c7fa985539c67c048a25fcc30bc7b88390acfca4f407bdcde252f63cdf081de22eb6fac9b4c09a5cdd9b5662dbef5
+DIST NVIDIA-Linux-x86-375.26.run 44541069 SHA256 7c79cfaae5512f34ff14cf0fe76632c7c720600d4bbae71d90ff73f1674e617b SHA512 3bc859a95469a45f3c627018248d83e178d160385c3d17d9f890b0d142ecd1220fb21c442e4fe7755b831227a9c820736f447b162acd9699819c6e8145d6d841 WHIRLPOOL 33ad62f7021f38fd9dfa6b0fcfbc0b69a263409bd5b3b8da8eea6aa9af84299f0d5318bbc8b54139b1744b96fa08114029f8cc70b4f80b0fbd2d76efc47d0462
 DIST NVIDIA-Linux-x86-96.43.23-pkg0.run 11504817 SHA256 51e6adf4ba73071622045fc37169f80db3ae3e784dff53b29d35146a04042142 SHA512 bed5726e57637481fe4e3c03a65ec14fe949f00860e729ebde408f4fd861d7bfdc296a78bc2f5d42e8b282db09f4bbde1e0545df7228fa20227080dc4b868ba7 WHIRLPOOL 6d4fd1786c11f4e326cc3101d0bb1a2f8b63c25c3dd59f10188f8355759e2861ce44fd53d60258b513d5a1d6124d0f91ba8edf4d3668b6feabfb3e8d585f14fe
 DIST NVIDIA-Linux-x86_64-173.14.39-pkg2.run 21100833 SHA256 15a953666d5681ba54c97498b578ffd286a1dc96d605f3b02110f3f99813100e SHA512 a65cd496e6ed57f771c3d99f37f616a1242d97844f6faef7a807825ad899c0e536a99fde397020839f0857883b934032f9491024f3047a6b06d3eea1f5d77713 WHIRLPOOL dc5f243b7d1de7e2d1b7f005e018a2940d63335b11a7c83c234b348b7a1839e9131169d2ea928bd8c2f549a4535149b03e16e6c94d59dfa745f7f904ff790a45
 DIST NVIDIA-Linux-x86_64-304.131.run 69415084 SHA256 74b7ec1c31dac03ee7c3e04612cadb9cbaa01ef4c796c27a0a649f7d32dccd0b SHA512 ddfa1f23600821dcae17ddb735b615d67504c4e276d9b41813e0f8d7690fbdf48f79644ee4c9e5449ce22a31460734cf325fc83975e0b48a0379a85cd4ef747d WHIRLPOOL fc08c2337a1b80b0444dbc914f7d17441995e4965c435028194050df9f5ec1606cdfb5bf11e56f79a736e04cf0755b296017fe79629c5ded18a72093b8689bce
 DIST NVIDIA-Linux-x86_64-304.132.run 69426739 SHA256 69aed9ede0a6a8c645e20b9825adeafbb985056af48b68a7ff7ea4b76a7ffde4 SHA512 f71c9a5020de48fe166176bf6420a0d85b525ecf70ac1c819fd9f846af0f6d048399bda6059a36eed11561fcb10387a7d00132fa91839d618278cee2f3ad0dbf WHIRLPOOL 6b4e567f8a97ac251f9a71be11615eb405d238b8a9514cbd646f8a693d7f08f37179aa9ca93f3d6cfca5e6b53a936ec90f61717fa39db1d0708bb0880a450d1c
+DIST NVIDIA-Linux-x86_64-304.134.run 69761152 SHA256 a014261a28a0a9829d255a5580c55d342e0ddf929b4f343cbd4d3492ede1cd5f SHA512 65f6c324793e3ce713ea993fc709f1d1c413af2252765167cfdeb49fb6557f375018a5efa0402effc7443cc0fb860a7856736dad47a50513fe903c9109ff2348 WHIRLPOOL fb1d05946ba672e44825d6e852157314020677c92f5817770e21decb81a1388db6b6e4976c8919217f2bf732283fe5942f982d31f3e5c39d5ea0e009d788906d
+DIST NVIDIA-Linux-x86_64-340.101.run 70042051 SHA256 d2cf81b5994a1728dc4851cdf0480cde0a34b040c94de0d5265edcfe3b90680a SHA512 64e3acee913864296421f0fcc44ffef0d89d20fc9f422e61f9a30a0c867ddedd2e88ead4a9607842a639ef593a19e725b70cf4ee051651d1d2ad48f3c5a189f3 WHIRLPOOL 59a7c3b40ae75e0fb3b7ae2c1125fd73071882347cfee6b6c0b76e9a117dfaa93bf6b391459f2ca96c50df24b220e5b8941e02f4cf48e7ae0833af67e180b195
 DIST NVIDIA-Linux-x86_64-340.93.run 69813449 SHA256 ea2ac747fd473ea55ed5f6263bd314efa94c71384f3e03d527f8d550ba84c218 SHA512 f7540f3a49ccd67346b81332e4bfd03becef135f7e777cef3256fe33b3313456456ae095a352e333bbf6463bb13b9486a70718fa4c4355d66222bb0a7437de29 WHIRLPOOL e5286fbcaeffbcd3bd66c5adba8c20eb9cd64915b38606289cfab41a754a46b250667e6ac3485f8c3ed3b5a16bc14dcce6a9227d486be71d5b58298ca7d70f4d
 DIST NVIDIA-Linux-x86_64-340.96.run 69824601 SHA256 a7553a5749679994642ef0262906e6431dce354c03052151d9821d29dad7470d SHA512 6ffa4567ef6f5e09bcd50760b87baa2abe6a6ed1fbc280319101cc6582f2a381c36ab3fd1b4d74bcb5748adc3b82881618673ef77e5fe1a74c19a657774bcd87 WHIRLPOOL 823488bf9e338fee314d84c7ad2af6556548b94437c98094ca42911d74f19b5f44ee9809bb112a244016dadfdb372232365a355a4d40eaf685f5e0fa13868b58
 DIST NVIDIA-Linux-x86_64-340.98.run 69984344 SHA256 c800991c80fc844c9a80466edb7ae854b4e67314515988c4d016e15d1d0a3f67 SHA512 969595e1fb2c729f3fde45411d650bb437c221b5102341bd138f5be0e2a90e87d9ad534820ea168f1af5f981af5d1e8cf564a62db495580c054f0f80b0cc5c8a WHIRLPOOL 23f9672a2bf47284294538a6d25758031d9ad0e5af7791a56b8c2add9cc00982ca5b76859c710c6f56a7dfb39b2f3d2b35c77e0e95c70587f7fd01e712b6ab68
@@ -105,9 +117,12 @@ DIST NVIDIA-Linux-x86_64-367.44.run 75032664 SHA256 09a4e67afa79c159f96071215bac
 DIST NVIDIA-Linux-x86_64-367.57.run 77127324 SHA256 a1615db29f1377817b610cca997e0339753ee9d58b28e1618b892691df3a8851 SHA512 fc94f5df7eb2ef243db381bc4458f911a6d76bff949701bedb249a3ebf369ff3da8dc5a7d52ab6ae3f23e947c419923f303cd57429a266a0f8e96df1039b1f5d WHIRLPOOL 5580b7839652c250ba134ecc97438d1810453d5bd5d8cffd44f01379d7509bca6f0c58318a150a5b4786f955d4de708ce9be618572212eca2c7098a36eab24d5
 DIST NVIDIA-Linux-x86_64-370.28.run 76690360 SHA256 90aa3c186e45b39e6fc0064ab8dbda8bcc897cb61d2e7b7cb30b4ec9a4b39239 SHA512 931476f92a63d142478b2d6b3da4031769fd3b93aee2387800a78b1354b59a5fb5e4e293436b6b4c246627d51c0f55d140ab230de385cb1567bc8b25518eb741 WHIRLPOOL ce866c38291d2ab4aeeff05654a0e61196129f77baea5af93ddbc22fab9574ba39cc05d58020ea2407cc7342f0bcf5c2702d42290f4cc3b53c9e04fb7c617413
 DIST NVIDIA-Linux-x86_64-375.20.run 75886564 SHA256 d10e40a19dc57ac958567a2b247c2b113e5f1e4186ad48e9a58e70a46d07620b SHA512 96daf0d9e3d8e42f7dd46d759a09d95b6745c719960cefd590abf927034ce2ab369422a0cc8e5ebe76de3c92068ea2b0e1c89106f7285c589bff166b2c3e9c1e WHIRLPOOL 72e0db9b94bf8a81af2562b6405ff6b7928283641e3013e2389314529120024426a125f189901753db858e10a20cf622fa8d06d3dbd262b65bf539cf3b0d7978
+DIST NVIDIA-Linux-x86_64-375.26.run 75869960 SHA256 4f42b2c3709dc2f11a1deca89628582062f4e9bca87f28a4fde50d25bd4a1ecf SHA512 0990ac2e7b045bf62a8c58eb7acf91458756de91887d43486d9754bfc1493b28193072a9687d2d892cc98aaa4e584a8b2a8471756d4f19965da904d51e437dd1 WHIRLPOOL b9890e705dbc3e967a978c5f823f71a418b03aa1b36669c1763559ed81a6a103e9d011246ffe049eda899425e254e8955b921ea9132a8d36530dc4a230cb4832
 DIST NVIDIA-Linux-x86_64-96.43.23-pkg2.run 15962375 SHA256 ce8d8253e7dab7da63fbdac449ebf190cd0c10cbfffea0f8d0165515f851bc64 SHA512 04bec1187a6024a2b9839f008ec829281f1f2602dae2e639030bc385943186506bcaa2b46a230b2ab87f9217190841abc62f9e2d6395ab5559623389c31c6563 WHIRLPOOL 0651c44a51a1a06fcff5bfddbf9c3e408977e03263c7fe806cb6c01f9fe92f716dfe4e5190ffe1048bde72fcffdc8bca8267e74dd43ba5c9dfb22b6201fcc2bb
 DIST nvidia-settings-304.131.tar.bz2 1480447 SHA256 d36d2d1ae7c1bb72cd18e713470546d2aa7057624b1f61319daf559a94054d29 SHA512 9269f54f87581e29e6d7cabeaf989c70cb27aa55f6b8f5f1c71b8a14401326d06ea194710722b41283cca56f5808b90a9b1fb12158d48c6332cce15a701c5796 WHIRLPOOL be8e38a09a0bfa40267b9cdae2800a9ef00a89e28e618b743b7acb0cd9ece4b242b74ced32018d735989592300b49b2ee683caa11a1e161bcecf070a58952dfd
 DIST nvidia-settings-304.132.tar.bz2 1480097 SHA256 53b86952ec29b32bdcc838199c3db802a5affd58e348f68ac9f4931ae0e2021f SHA512 512db744830b31ded109047e0c736dd18ae01cdea2b94099d06b7f30a31274fa4fd689b286a1e12768ac618fc4d38be9eb7c0d58b1f0a3e2b67ae4a133cec97d WHIRLPOOL adce5fce462119dfa1569c4b2241f1129ae2659ae8964a9556d730bcda246c7db08b6e6b14ae644df8e3fcc990f84c9585b4ecb9617e26833fb70babd447c606
+DIST nvidia-settings-304.134.tar.bz2 1480967 SHA256 8e562823fe9a7b1d33775db5605040488c064ab59ede20e1b2e5a6ec08ef2261 SHA512 c15b9c3eff470e47dca9d695029fb5f7c3d7a91bdcceea7c114c305254ef341ece2fa8b727446ebe704f21b4c39b7872b1b2d9a740cf9cb5257f6aaaf2313208 WHIRLPOOL 0e8a1137cd71cf60794a0572189cde15ed39fa7be22410afe232b62daf8df17dd2af22631ecbfa30374439c3f1b7b1ed69af2737bdc37665bd42819b0f326593
+DIST nvidia-settings-340.101.tar.bz2 1550221 SHA256 e98d2816f30182826aebb4315d4069d212709d28c129528295c012e11c5c5bd5 SHA512 145cfff7828b61566c13644d58e62495e5dfcbc0d24c49b04b24953d6822bb406de166879ef681a9ad6a6cb64fbc85948a93afb2f63f4e0a24107818eb0f2882 WHIRLPOOL bca223365521625d30bef14a752eb02d6166ee1e988087c584c0f325413cf0d92a67989d9f456f16b09611558af0eab4f8f3a37894db8c1df1fe3446bc3975ee
 DIST nvidia-settings-340.96.tar.bz2 1551011 SHA256 af7303b070a4b41e388a7be6dfae17f020a5cc197170d4815b9a291a3a98aaff SHA512 fc6096338e48c347e4e854d06e8f63d8edb6527953996e63f3f70619be59d0436176547b5197ef30d18a82cf5b58dd775dcca4a2624107b63cce1ae589f2b154 WHIRLPOOL e7266ca0395aa1a5666a43bf6e54e258706d4e76bfd15079485e2379b332d2d6ba0c97b32e49f5b041340bb2d3c0e11dace702754ffc952c149557e0ab9d820a
 DIST nvidia-settings-340.98.tar.bz2 1549627 SHA256 6ee6c8d7a86f03696ce0464dccd8a01a4f04b732989ae2658dee3c5b9cff9a0f SHA512 dc1dc39b59d591a2211dded2a6379da63f3678e38fa9f5e9ea7f0bb9368fc00085c50bad817d90f52d29f5247ac93350af0262d06bd32beef259234511e7c251 WHIRLPOOL 4bc4cbd883c86206dd03690f7c41778655b7db731c04f342713b1bd4b93f906fd5598f8c1afee8bb14236998940edd6497dc430add095961ba76735532176d40
 DIST nvidia-settings-346.96.tar.bz2 1558100 SHA256 b293f269aac01dfdf59e9dff46d774f7ca77d4628f377c01cabfbfccd28f3cd9 SHA512 9ead0fa5f0a55c1080d9b4da6cf96c2435c1a166297187f2c7d8b95a9e66c2e9cdd2e35739a4304b02ff1ccedb0421a7dc99a546df3a8f18804da133b93f50e3 WHIRLPOOL 4bddea94bb4c0dcde6b2b06507ffe890a1996471603de2d494f54b783cd36d44aa620fe03d16bc104ce99d6371a50666b0f029a309b78226810761cc13053f98
@@ -127,3 +142,4 @@ DIST nvidia-settings-367.44.tar.bz2 1571750 SHA256 74ca3c7ac3e75c13b6aaef92739e2
 DIST nvidia-settings-367.57.tar.bz2 1571905 SHA256 aacb66b130e4adc034e10afb518c919a96029b31b14da8975b08d250d8750140 SHA512 57bf414f4aefacd994e73ea3b31de8cf9f5d6ddc9a95ea1456c21905510c4ba9219e690a1b1bb1346b57a80caf9856c5fede80734163392f0788b995d1bd4cea WHIRLPOOL 7294f84afe8a00f59e2073773d12dc0b31273ab49fe318558eee84a72b7df1233fa004949c0512bff1974c5edbc4749eed68e172336241ea9cb24d6c585a8979
 DIST nvidia-settings-370.28.tar.bz2 1573509 SHA256 59d7818a4837144e373ce958233db059fde59e279477001e187579770ebf0c5f SHA512 c4da6ae54839a8f91d3557153a648f69095e9a486dbaaf73e453d625660f1adcada12ee5c4bccc1afe2cfd454ead13c1df0e59d5d6aa70f6065823d53f7bb461 WHIRLPOOL e5f0a9fd67e50aee42598d6a0ce9a69a162405a6121518c7aaf9ede409e9bdeb44e3102a123eb6f8c963e0fdaca429a8b693f6af2f0467e746c42f57a496d45f
 DIST nvidia-settings-375.20.tar.bz2 1614521 SHA256 40cd293e79bda131147187f281578e2b1f887c05bee78f671bde329af4956ada SHA512 e47d482a4c844ae8ef3c29f249333f6176a39f1a6e1dbcb87497a9117f5158fe68136a74739aae071ceac14bf779362c0484382e10b803503a605e7867ab4cbd WHIRLPOOL 9969d420f14f1bf3e7ed5dabd86438678d997089aef9ac1025f0585ddc87201d3558833dc3b9ce6d13415a2f484610b9a0d923b4cbeaae79d889a880d9475126
+DIST nvidia-settings-375.26.tar.bz2 1615459 SHA256 beb0d88e2f63427239fd2014299ef7bf780e70800f68be5d011575e858711fe9 SHA512 e575670ccf7e3ef0089ee6a969f107f6f43d742a60cc325c6d95efc4773f34a6e013fd2c4e38b5f90054e24146a05c2300c0cf6a9b7013b556bacc1402956f49 WHIRLPOOL 854e4444beb330c97b29ebc00936c9d2f2522165ef2ca86f68ae28abadef516aedb341e2b2bf6d7a762decaeac4d5c3084bddaa21492b0a60607a2bbf541c301

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.26-profiles-rc.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.26-profiles-rc.patch
new file mode 100644
index 00000000..13acd04
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.26-profiles-rc.patch
@@ -0,0 +1,11 @@
+--- a/nvidia-application-profiles-375.26-rc
++++ b/nvidia-application-profiles-375.26-rc
+@@ -48,7 +48,7 @@
+         {
+           "name" : "NoEnforceShaderInputOutputMatching",
+           "settings" : [ "GLShaderPortabilityWarnings", false ]
+-        },
++        }
+     ],
+     "rules" : [
+         {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-304.134.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-304.134.ebuild
new file mode 100644
index 00000000..5e5a264
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-304.134.ebuild
@@ -0,0 +1,488 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
+	portability toolchain-funcs unpacker user versionator udev
+
+NV_URI="http://us.download.nvidia.com/XFree86/"
+X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
+X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
+AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
+SRC_URI="
+	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
+	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
+	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
+	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
+	tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
+"
+
+LICENSE="GPL-2 NVIDIA-r1"
+SLOT="0/${PV%.*}"
+KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools +X"
+RESTRICT="bindist mirror"
+EMULTILIB_PKG="true"
+
+COMMON="
+	app-eselect/eselect-opencl
+	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		x11-libs/gdk-pixbuf
+		x11-libs/gtk+:2
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/pango[X]
+		x11-libs/pangox-compat
+	)
+	X? (
+		>=app-eselect/eselect-opengl-1.0.9
+	)
+"
+DEPEND="${COMMON}
+	kernel_linux? (
+		virtual/linux-sources
+		virtual/pkgconfig
+	)"
+RDEPEND="${COMMON}
+	acpi? ( sys-power/acpid )
+	tools? ( !media-video/nvidia-settings )
+	X? (
+		<x11-base/xorg-server-1.19.99:=
+		x11-libs/libXvMC
+		multilib? (
+			>=x11-libs/libX11-1.6.2[abi_x86_32]
+			>=x11-libs/libXext-1.3.2[abi_x86_32]
+		)
+	)
+"
+PDEPEND="X? ( >=x11-libs/libvdpau-0.3-r1 )"
+
+REQUIRED_USE="
+	tools? ( X )
+	static-libs? ( tools )
+"
+
+QA_PREBUILT="opt/* usr/lib*"
+
+S=${WORKDIR}/
+
+pkg_pretend() {
+
+	if use amd64 && has_multilib_profile && \
+		[ "${DEFAULT_ABI}" != "amd64" ]; then
+		eerror "This ebuild doesn't currently support changing your default ABI"
+		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
+	fi
+
+	if use kernel_linux && kernel_is ge 4 10; then
+		ewarn "Gentoo supports kernels which are supported by NVIDIA"
+		ewarn "which are limited to the following kernels:"
+		ewarn "<sys-kernel/gentoo-sources-4.10"
+		ewarn "<sys-kernel/vanilla-sources-4.10"
+		ewarn ""
+		ewarn "You are free to utilize eapply_user to provide whatever"
+		ewarn "support you feel is appropriate, but will not receive"
+		ewarn "support as a result of those changes."
+		ewarn ""
+		ewarn "Do not file a bug report about this."
+		ewarn ""
+	fi
+
+	# Since Nvidia ships many different series of drivers, we need to give the user
+	# some kind of guidance as to what version they should install. This tries
+	# to point the user in the right direction but can't be perfect. check
+	# nvidia-driver.eclass
+	nvidia-driver-check-warning
+
+	# Kernel features/options to check for
+	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
+	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
+
+	# Now do the above checks
+	use kernel_linux && check_extra_config
+}
+
+pkg_setup() {
+	# try to turn off distcc and ccache for people that have a problem with it
+	export DISTCC_DISABLE=1
+	export CCACHE_DISABLE=1
+
+	if use kernel_linux; then
+		linux-mod_pkg_setup
+		MODULE_NAMES="nvidia(video:${S}/kernel)"
+		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
+		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
+		# linux-mod_src_compile calls set_arch_to_kernel, which
+		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
+		# expects x86_64 or i386 and then converts it to x86
+		# later on in the build process
+		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
+	fi
+
+	# set variables to where files are in the package structure
+	if use kernel_FreeBSD; then
+		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
+		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
+		NV_DOC="${S}/doc"
+		NV_OBJ="${S}/obj"
+		NV_SRC="${S}/src"
+		NV_MAN="${S}/x11/man"
+		NV_X11="${S}/obj"
+		NV_SOVER=1
+	elif use kernel_linux; then
+		NV_DOC="${S}"
+		NV_OBJ="${S}"
+		NV_SRC="${S}/kernel"
+		NV_MAN="${S}"
+		NV_X11="${S}"
+		NV_SOVER=${PV}
+	else
+		die "Could not determine proper NVIDIA package"
+	fi
+}
+
+src_prepare() {
+	# Please add a brief description for every added patch
+
+	if use kernel_linux; then
+		if kernel_is lt 2 6 9 ; then
+			eerror "You must build this against 2.6.9 or higher kernels."
+		fi
+
+		# If greater than 2.6.5 use M= instead of SUBDIR=
+		convert_to_m "${NV_SRC}"/Makefile.kbuild
+	fi
+
+	if use pax_kernel; then
+		ewarn "Using PAX patches is not supported. You will be asked to"
+		ewarn "use a standard kernel should you have issues. Should you"
+		ewarn "need support with these patches, contact the PaX team."
+		eapply "${FILESDIR}"/${PN}-pax-const.patch
+		eapply "${FILESDIR}"/${PN}-pax-usercopy.patch
+	fi
+
+	cat <<- EOF > "${S}"/nvidia.icd
+		/usr/$(get_libdir)/libnvidia-opencl.so
+	EOF
+
+	# Allow user patches so they can support RC kernels and whatever else
+	eapply_user
+}
+
+src_compile() {
+	# This is already the default on Linux, as there's no toplevel Makefile, but
+	# on FreeBSD there's one and triggers the kernel module build, as we install
+	# it by itself, pass this.
+
+	cd "${NV_SRC}"
+	if use kernel_FreeBSD; then
+		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
+			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
+	elif use kernel_linux; then
+		MAKEOPTS=-j1 linux-mod_src_compile
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl clean
+		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
+			AR="$(tc-getAR)" \
+			CC="$(tc-getCC)" \
+			RANLIB="$(tc-getRANLIB)" \
+			libXNVCtrl.a
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			AR="$(tc-getAR)" \
+			CC="$(tc-getCC)" \
+			LD="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NVML_ENABLED=0 \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			RANLIB="$(tc-getRANLIB)" \
+			STRIP_CMD=true
+	fi
+}
+
+# Install nvidia library:
+# the first parameter is the library to install
+# the second parameter is the provided soversion
+# the third parameter is the target directory if its not /usr/lib
+donvidia() {
+	# Full path to library minus SOVER
+	MY_LIB="$1"
+
+	# SOVER to use
+	MY_SOVER="$2"
+
+	# Where to install
+	MY_DEST="$3"
+
+	if [[ -z "${MY_DEST}" ]]; then
+		MY_DEST="/usr/$(get_libdir)"
+		action="dolib.so"
+	else
+		exeinto ${MY_DEST}
+		action="doexe"
+	fi
+
+	# Get just the library name
+	libname=$(basename $1)
+
+	# Install the library with the correct SOVER
+	${action} ${MY_LIB}.${MY_SOVER} || \
+		die "failed to install ${libname}"
+
+	# If SOVER wasn't 1, then we need to create a .1 symlink
+	if [[ "${MY_SOVER}" != "1" ]]; then
+		dosym ${libname}.${MY_SOVER} \
+			${MY_DEST}/${libname}.1 || \
+			die "failed to create ${libname} symlink"
+	fi
+
+	# Always create the symlink from the raw lib to the .1
+	dosym ${libname}.1 \
+		${MY_DEST}/${libname} || \
+		die "failed to create ${libname} symlink"
+}
+
+src_install() {
+	if use kernel_linux; then
+		linux-mod_src_install
+
+		# Add the aliases
+		# This file is tweaked with the appropriate video group in
+		# pkg_preinst, see bug #491414
+		insinto /etc/modprobe.d
+		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
+
+		# Ensures that our device nodes are created when not using X
+		exeinto "$(get_udevdir)"
+		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
+		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
+	elif use kernel_FreeBSD; then
+		if use x86-fbsd; then
+			insinto /boot/modules
+			doins "${S}/src/nvidia.kld"
+		fi
+
+		exeinto /boot/modules
+		doexe "${S}/src/nvidia.ko"
+	fi
+
+	# NVIDIA kernel <-> userspace driver config lib
+	donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
+
+	if use kernel_linux; then
+		# NVIDIA video decode <-> CUDA
+		donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
+	fi
+
+	if use X; then
+		# Xorg DDX driver
+		insinto /usr/$(get_libdir)/xorg/modules/drivers
+		doins ${NV_X11}/nvidia_drv.so
+
+		# Xorg GLX driver
+		donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
+			/usr/$(get_libdir)/opengl/nvidia/extensions
+
+		# XvMC driver
+		dolib.a ${NV_X11}/libXvMCNVIDIA.a || \
+			die "failed to install libXvMCNVIDIA.so"
+		donvidia ${NV_X11}/libXvMCNVIDIA.so ${NV_SOVER}
+		dosym libXvMCNVIDIA.so.${NV_SOVER} \
+			/usr/$(get_libdir)/libXvMCNVIDIA_dynamic.so.1 || \
+			die "failed to create libXvMCNVIDIA_dynamic.so symlink"
+	fi
+
+	# OpenCL ICD for NVIDIA
+	if use kernel_linux; then
+		insinto /etc/OpenCL/vendors
+		doins nvidia.icd
+		donvidia ${NV_OBJ}/libnvidia-opencl.so ${NV_SOVER}
+	fi
+
+	# Documentation
+	dohtml ${NV_DOC}/html/*
+	if use kernel_FreeBSD; then
+		dodoc "${NV_DOC}/README"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1"
+		use tools && doman "${NV_MAN}/nvidia-settings.1"
+	else
+		# Docs
+		newdoc "${NV_DOC}/README.txt" README
+		dodoc "${NV_DOC}/NVIDIA_Changelog"
+		doman "${NV_MAN}/nvidia-smi.1.gz"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
+		use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
+		doman "${NV_MAN}/nvidia-cuda-proxy-control.1.gz"
+	fi
+
+	# Helper Apps
+	exeinto /opt/bin/
+
+	if use X; then
+		doexe ${NV_OBJ}/nvidia-xconfig
+	fi
+
+	if use kernel_linux ; then
+		doexe ${NV_OBJ}/nvidia-debugdump
+		doexe ${NV_OBJ}/nvidia-cuda-proxy-control
+		doexe ${NV_OBJ}/nvidia-cuda-proxy-server
+		doexe ${NV_OBJ}/nvidia-smi
+		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
+	fi
+
+	dobin ${NV_OBJ}/nvidia-bug-report.sh
+
+	# Desktop entries for nvidia-settings
+	if use tools ; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/ \
+			DESTDIR="${D}" \
+			LIBDIR="${D}/usr/$(get_libdir)" \
+			PREFIX=/usr \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			install
+
+		if use static-libs; then
+			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
+
+			insinto /usr/include/NVCtrl
+			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
+		fi
+
+		# There is no icon in the FreeBSD tarball.
+		use kernel_FreeBSD || \
+			doicon ${NV_OBJ}/nvidia-settings.png
+
+		domenu "${FILESDIR}"/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+	fi
+
+	#doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
+
+	if has_multilib_profile && use multilib ; then
+		local OABI=${ABI}
+		for ABI in $(get_install_abis) ; do
+			src_install-libs
+		done
+		ABI=${OABI}
+		unset OABI
+	else
+		src_install-libs
+	fi
+
+	is_final_abi || die "failed to iterate through all ABIs"
+
+	readme.gentoo_create_doc
+}
+
+src_install-libs() {
+	local inslibdir=$(get_libdir)
+	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
+	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
+	local libdir=${NV_OBJ}
+
+	if use kernel_linux && has_multilib_profile && \
+			[[ ${ABI} == "x86" ]] ; then
+		libdir=${NV_OBJ}/32
+	fi
+
+	if use X; then
+		# The GLX libraries
+		donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
+		donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
+		if use kernel_FreeBSD; then
+			donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER} ${GL_ROOT}
+		else
+			donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER} ${GL_ROOT}
+		fi
+
+		# VDPAU
+		donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
+	fi
+
+	# NVIDIA monitoring library
+	if use kernel_linux ; then
+		donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
+	fi
+
+	# CUDA & OpenCL
+	if use kernel_linux; then
+		donvidia ${libdir}/libcuda.so ${NV_SOVER}
+		donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
+		donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
+	fi
+}
+
+pkg_preinst() {
+	if use kernel_linux; then
+		linux-mod_pkg_preinst
+
+		local videogroup="$(egetent group video | cut -d ':' -f 3)"
+		if [ -z "${videogroup}" ]; then
+			eerror "Failed to determine the video group gid"
+			die "Failed to determine the video group gid"
+		else
+			sed -i \
+				-e "s:PACKAGE:${PF}:g" \
+				-e "s:VIDEOGID:${videogroup}:" \
+				"${D}"/etc/modprobe.d/nvidia.conf || die
+		fi
+	fi
+
+	# Clean the dynamic libGL stuff's home to ensure
+	# we dont have stale libs floating around
+	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
+		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
+	fi
+	# Make sure we nuke the old nvidia-glx's env.d file
+	if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
+		rm -f "${ROOT}"/etc/env.d/09nvidia
+	fi
+}
+
+pkg_postinst() {
+	use kernel_linux && linux-mod_pkg_postinst
+
+	# Switch to the nvidia implementation
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
+	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
+
+	readme.gentoo_print_elog
+
+	if ! use X; then
+		elog "You have elected to not install the X.org driver. Along with"
+		elog "this the OpenGL libraries, XvMC, and VDPAU libraries were not"
+		elog "installed. Additionally, once the driver is loaded your card"
+		elog "and fan will run at max speed which may not be desirable."
+		elog "Use the 'nvidia-smi' init script to have your card and fan"
+		elog "speed scale appropriately."
+		elog
+	fi
+	if ! use tools; then
+		elog "USE=tools controls whether the nvidia-settings application"
+		elog "is installed. If you would like to use it, enable that"
+		elog "flag and re-emerge this ebuild. Optionally you can install"
+		elog "media-video/nvidia-settings"
+		elog
+	fi
+}
+
+pkg_prerm() {
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}
+
+pkg_postrm() {
+	use kernel_linux && linux-mod_pkg_postrm
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-340.101.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-340.101.ebuild
new file mode 100644
index 00000000..cb5fdf2
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-340.101.ebuild
@@ -0,0 +1,518 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
+	portability toolchain-funcs unpacker user udev
+
+NV_URI="http://us.download.nvidia.com/XFree86/"
+X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
+X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
+AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
+SRC_URI="
+	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
+	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
+	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
+	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
+	tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
+"
+
+LICENSE="GPL-2 NVIDIA-r2"
+SLOT="0/${PV%.*}"
+KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools +X uvm"
+RESTRICT="bindist mirror"
+EMULTILIB_PKG="true"
+
+COMMON="
+	app-eselect/eselect-opencl
+	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		dev-libs/jansson
+		x11-libs/gdk-pixbuf
+		>=x11-libs/gtk+-2.4:2
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/pango[X]
+	)
+	X? (
+		>=app-eselect/eselect-opengl-1.0.9
+	)
+"
+DEPEND="
+	${COMMON}
+	app-arch/xz-utils
+	kernel_linux? ( virtual/linux-sources )
+"
+RDEPEND="
+	${COMMON}
+	acpi? ( sys-power/acpid )
+	tools? ( !media-video/nvidia-settings )
+	X? (
+		<x11-base/xorg-server-1.19.99:=
+		>=x11-libs/libvdpau-0.3-r1
+		multilib? (
+			>=x11-libs/libX11-1.6.2[abi_x86_32]
+			>=x11-libs/libXext-1.3.2[abi_x86_32]
+		)
+	)
+"
+
+REQUIRED_USE="tools? ( X )"
+
+QA_PREBUILT="opt/* usr/lib*"
+
+S=${WORKDIR}/
+
+pkg_pretend() {
+	if use amd64 && has_multilib_profile && \
+		[ "${DEFAULT_ABI}" != "amd64" ]; then
+		eerror "This ebuild doesn't currently support changing your default ABI"
+		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
+	fi
+
+	if use kernel_linux && kernel_is ge 4 10; then
+		ewarn "Gentoo supports kernels which are supported by NVIDIA"
+		ewarn "which are limited to the following kernels:"
+		ewarn "<sys-kernel/gentoo-sources-4.10"
+		ewarn "<sys-kernel/vanilla-sources-4.10"
+		ewarn ""
+		ewarn "You are free to utilize eapply_user to provide whatever"
+		ewarn "support you feel is appropriate, but will not receive"
+		ewarn "support as a result of those changes."
+		ewarn ""
+		ewarn "Do not file a bug report about this."
+		ewarn ""
+	fi
+
+	# Since Nvidia ships many different series of drivers, we need to give the user
+	# some kind of guidance as to what version they should install. This tries
+	# to point the user in the right direction but can't be perfect. check
+	# nvidia-driver.eclass
+	nvidia-driver-check-warning
+
+	# Kernel features/options to check for
+	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
+	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
+
+	# Now do the above checks
+	use kernel_linux && check_extra_config
+}
+
+pkg_setup() {
+	# try to turn off distcc and ccache for people that have a problem with it
+	export DISTCC_DISABLE=1
+	export CCACHE_DISABLE=1
+
+	if use kernel_linux; then
+		MODULE_NAMES="nvidia(video:${S}/kernel)"
+		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel/uvm)"
+
+		# This needs to run after MODULE_NAMES (so that the eclass checks
+		# whether the kernel supports loadable modules) but before BUILD_PARAMS
+		# is set (so that KV_DIR is populated).
+		linux-mod_pkg_setup
+
+		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
+		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
+
+		# linux-mod_src_compile calls set_arch_to_kernel, which
+		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
+		# expects x86_64 or i386 and then converts it to x86
+		# later on in the build process
+		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
+	fi
+
+	# set variables to where files are in the package structure
+	if use kernel_FreeBSD; then
+		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
+		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
+		NV_DOC="${S}/doc"
+		NV_OBJ="${S}/obj"
+		NV_SRC="${S}/src"
+		NV_MAN="${S}/x11/man"
+		NV_X11="${S}/obj"
+		NV_SOVER=1
+	elif use kernel_linux; then
+		NV_DOC="${S}"
+		NV_OBJ="${S}"
+		NV_SRC="${S}/kernel"
+		NV_MAN="${S}"
+		NV_X11="${S}"
+		NV_SOVER=${PV}
+	else
+		die "Could not determine proper NVIDIA package"
+	fi
+}
+
+src_prepare() {
+	# Please add a brief description for every added patch
+
+	if use kernel_linux; then
+		if kernel_is lt 2 6 9 ; then
+			eerror "You must build this against 2.6.9 or higher kernels."
+		fi
+
+		# If greater than 2.6.5 use M= instead of SUBDIR=
+#		convert_to_m "${NV_SRC}"/Makefile.kbuild
+	fi
+
+	if use pax_kernel; then
+		ewarn "Using PAX patches is not supported. You will be asked to"
+		ewarn "use a standard kernel should you have issues. Should you"
+		ewarn "need support with these patches, contact the PaX team."
+		eapply "${FILESDIR}"/${PN}-331.13-pax-usercopy.patch
+		eapply "${FILESDIR}"/${PN}-337.12-pax-constify.patch
+	fi
+
+	# Allow user patches so they can support RC kernels and whatever else
+	eapply_user
+}
+
+src_compile() {
+	# This is already the default on Linux, as there's no toplevel Makefile, but
+	# on FreeBSD there's one and triggers the kernel module build, as we install
+	# it by itself, pass this.
+
+	cd "${NV_SRC}"
+	if use kernel_FreeBSD; then
+		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
+			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
+	elif use kernel_linux; then
+		use uvm && MAKEOPTS=-j1
+		linux-mod_src_compile
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl clean
+		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
+			AR="$(tc-getAR)" \
+			CC="$(tc-getCC)" \
+			RANLIB="$(tc-getRANLIB)" \
+			libXNVCtrl.a
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			AR="$(tc-getAR)" \
+			CC="$(tc-getCC)" \
+			LD="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NVML_ENABLED=0 \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			RANLIB="$(tc-getRANLIB)" \
+			STRIP_CMD=true
+	fi
+}
+
+# Install nvidia library:
+# the first parameter is the library to install
+# the second parameter is the provided soversion
+# the third parameter is the target directory if its not /usr/lib
+donvidia() {
+	# Full path to library minus SOVER
+	MY_LIB="$1"
+
+	# SOVER to use
+	MY_SOVER="$2"
+
+	# Where to install
+	MY_DEST="$3"
+
+	if [[ -z "${MY_DEST}" ]]; then
+		MY_DEST="/usr/$(get_libdir)"
+		action="dolib.so"
+	else
+		exeinto ${MY_DEST}
+		action="doexe"
+	fi
+
+	# Get just the library name
+	libname=$(basename $1)
+
+	# Install the library with the correct SOVER
+	${action} ${MY_LIB}.${MY_SOVER} || \
+		die "failed to install ${libname}"
+
+	# If SOVER wasn't 1, then we need to create a .1 symlink
+	if [[ "${MY_SOVER}" != "1" ]]; then
+		dosym ${libname}.${MY_SOVER} \
+			${MY_DEST}/${libname}.1 || \
+			die "failed to create ${libname} symlink"
+	fi
+
+	# Always create the symlink from the raw lib to the .1
+	dosym ${libname}.1 \
+		${MY_DEST}/${libname} || \
+		die "failed to create ${libname} symlink"
+}
+
+src_install() {
+	if use kernel_linux; then
+		linux-mod_src_install
+
+		# Add the aliases
+		# This file is tweaked with the appropriate video group in
+		# pkg_preinst, see bug #491414
+		insinto /etc/modprobe.d
+		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
+		use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
+
+		# Ensures that our device nodes are created when not using X
+		exeinto "$(get_udevdir)"
+		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
+		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
+	elif use kernel_FreeBSD; then
+		if use x86-fbsd; then
+			insinto /boot/modules
+			doins "${S}/src/nvidia.kld"
+		fi
+
+		exeinto /boot/modules
+		doexe "${S}/src/nvidia.ko"
+	fi
+
+	# NVIDIA kernel <-> userspace driver config lib
+	donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
+
+	# NVIDIA framebuffer capture library
+	donvidia ${NV_OBJ}/libnvidia-fbc.so ${NV_SOVER}
+
+	# NVIDIA video encode/decode <-> CUDA
+	if use kernel_linux; then
+		donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
+		donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
+	fi
+
+	if use X; then
+		# Xorg DDX driver
+		insinto /usr/$(get_libdir)/xorg/modules/drivers
+		doins ${NV_X11}/nvidia_drv.so
+
+		# Xorg GLX driver
+		donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
+			/usr/$(get_libdir)/opengl/nvidia/extensions
+	fi
+
+	# OpenCL ICD for NVIDIA
+	if use kernel_linux; then
+		insinto /etc/OpenCL/vendors
+		doins ${NV_OBJ}/nvidia.icd
+	fi
+
+	# Documentation
+	if use kernel_FreeBSD; then
+		dodoc "${NV_DOC}/README"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1"
+		use tools && doman "${NV_MAN}/nvidia-settings.1"
+	else
+		# Docs
+		newdoc "${NV_DOC}/README.txt" README
+		dodoc "${NV_DOC}/NVIDIA_Changelog"
+		doman "${NV_MAN}/nvidia-smi.1.gz"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
+		use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
+		doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
+	fi
+
+	docinto html
+	dodoc -r ${NV_DOC}/html/*
+
+	# Helper Apps
+	exeinto /opt/bin/
+
+	if use X; then
+		doexe ${NV_OBJ}/nvidia-xconfig
+	fi
+
+	if use kernel_linux ; then
+		doexe ${NV_OBJ}/nvidia-cuda-mps-control
+		doexe ${NV_OBJ}/nvidia-cuda-mps-server
+		doexe ${NV_OBJ}/nvidia-debugdump
+		doexe ${NV_OBJ}/nvidia-persistenced
+		doexe ${NV_OBJ}/nvidia-smi
+
+		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
+		doexe ${NV_OBJ}/nvidia-modprobe
+		fowners root:video /opt/bin/nvidia-modprobe
+		fperms 4710 /opt/bin/nvidia-modprobe
+		dosym /{opt,usr}/bin/nvidia-modprobe
+
+		doman nvidia-cuda-mps-control.1.gz
+		doman nvidia-modprobe.1.gz
+		doman nvidia-persistenced.1.gz
+		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
+		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
+		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/ \
+			DESTDIR="${D}" \
+			LIBDIR="${D}/usr/$(get_libdir)" \
+			PREFIX=/usr \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			install
+
+		if use static-libs; then
+			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
+
+			insinto /usr/include/NVCtrl
+			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
+		fi
+
+		insinto /usr/share/nvidia/
+		doins nvidia-application-profiles-${PV}-key-documentation
+
+		insinto /etc/nvidia
+		newins \
+			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
+
+		# There is no icon in the FreeBSD tarball.
+		use kernel_FreeBSD || \
+			doicon ${NV_OBJ}/nvidia-settings.png
+
+		domenu "${FILESDIR}"/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+
+	fi
+
+	dobin ${NV_OBJ}/nvidia-bug-report.sh
+
+	#doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
+
+	if has_multilib_profile && use multilib ; then
+		local OABI=${ABI}
+		for ABI in $(get_install_abis) ; do
+			src_install-libs
+		done
+		ABI=${OABI}
+		unset OABI
+	else
+		src_install-libs
+	fi
+
+	is_final_abi || die "failed to iterate through all ABIs"
+
+	readme.gentoo_create_doc
+}
+
+src_install-libs() {
+	local inslibdir=$(get_libdir)
+	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
+	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
+	local libdir=${NV_OBJ}
+
+	if use kernel_linux && has_multilib_profile && \
+			[[ ${ABI} == "x86" ]] ; then
+		libdir=${NV_OBJ}/32
+	fi
+
+	if use X; then
+		# The GLX libraries
+		donvidia ${libdir}/libEGL.so ${NV_SOVER} ${GL_ROOT}
+		donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
+		donvidia ${libdir}/libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}
+		donvidia ${libdir}/libnvidia-eglcore.so ${NV_SOVER}
+		donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
+		donvidia ${libdir}/libnvidia-glsi.so ${NV_SOVER}
+		donvidia ${libdir}/libnvidia-ifr.so ${NV_SOVER}
+		if use kernel_FreeBSD; then
+			donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
+		else
+			donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
+		fi
+
+		# VDPAU
+		donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
+
+		# GLES v2 libraries
+		insinto ${GL_ROOT}
+		doexe ${libdir}/libGLESv2.so.${PV}
+		dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
+		dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
+	fi
+
+	# NVIDIA monitoring library
+	if use kernel_linux ; then
+		donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
+	fi
+
+	# CUDA & OpenCL
+	if use kernel_linux; then
+		donvidia ${libdir}/libcuda.so ${NV_SOVER}
+		donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
+		donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
+		donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
+	fi
+}
+
+pkg_preinst() {
+	if use kernel_linux; then
+		linux-mod_pkg_preinst
+
+		local videogroup="$(egetent group video | cut -d ':' -f 3)"
+		if [ -z "${videogroup}" ]; then
+			eerror "Failed to determine the video group gid"
+			die "Failed to determine the video group gid"
+		else
+			sed -i \
+				-e "s:PACKAGE:${PF}:g" \
+				-e "s:VIDEOGID:${videogroup}:" \
+				"${D}"/etc/modprobe.d/nvidia.conf || die
+		fi
+	fi
+
+	# Clean the dynamic libGL stuff's home to ensure
+	# we dont have stale libs floating around
+	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
+		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
+	fi
+	# Make sure we nuke the old nvidia-glx's env.d file
+	if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
+		rm -f "${ROOT}"/etc/env.d/09nvidia
+	fi
+}
+
+pkg_postinst() {
+	use kernel_linux && linux-mod_pkg_postinst
+
+	# Switch to the nvidia implementation
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
+	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
+
+	readme.gentoo_print_elog
+
+	if ! use X; then
+		elog "You have elected to not install the X.org driver. Along with"
+		elog "this the OpenGL libraries and VDPAU libraries were not"
+		elog "installed. Additionally, once the driver is loaded your card"
+		elog "and fan will run at max speed which may not be desirable."
+		elog "Use the 'nvidia-smi' init script to have your card and fan"
+		elog "speed scale appropriately."
+		elog
+	fi
+	if ! use tools; then
+		elog "USE=tools controls whether the nvidia-settings application"
+		elog "is installed. If you would like to use it, enable that"
+		elog "flag and re-emerge this ebuild. Optionally you can install"
+		elog "media-video/nvidia-settings"
+		elog
+	fi
+}
+
+pkg_prerm() {
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}
+
+pkg_postrm() {
+	use kernel_linux && linux-mod_pkg_postrm
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-375.26.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-375.26.ebuild
new file mode 100644
index 00000000..c72796b
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-375.26.ebuild
@@ -0,0 +1,555 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
+	portability toolchain-funcs unpacker user udev
+
+NV_URI="http://us.download.nvidia.com/XFree86/"
+X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
+ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
+X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
+AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
+SRC_URI="
+	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
+	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
+	arm? ( ${NV_URI}Linux-x86-ARM/${PV}/${ARM_NV_PACKAGE}.run )
+	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
+	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
+	tools? (
+		ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
+	)
+"
+
+LICENSE="GPL-2 NVIDIA-r2"
+SLOT="0/${PV%.*}"
+KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
+RESTRICT="bindist mirror"
+EMULTILIB_PKG="true"
+
+IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
+REQUIRED_USE="
+	tools? ( X )
+	static-libs? ( tools )
+"
+
+COMMON="
+	app-eselect/eselect-opencl
+	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		dev-libs/jansson
+		gtk3? ( x11-libs/gtk+:3 )
+		x11-libs/cairo
+		x11-libs/gdk-pixbuf[X]
+		x11-libs/gtk+:2
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXrandr
+		x11-libs/libXv
+		x11-libs/libXxf86vm
+		x11-libs/pango[X]
+	)
+	X? (
+		>=app-eselect/eselect-opengl-1.0.9
+		app-misc/pax-utils
+	)
+"
+DEPEND="
+	${COMMON}
+	kernel_linux? ( virtual/linux-sources )
+"
+RDEPEND="
+	${COMMON}
+	acpi? ( sys-power/acpid )
+	tools? ( !media-video/nvidia-settings )
+	wayland? ( dev-libs/wayland )
+	X? (
+		<x11-base/xorg-server-1.19.99:=
+		>=x11-libs/libvdpau-1.0
+		multilib? (
+			>=x11-libs/libX11-1.6.2[abi_x86_32]
+			>=x11-libs/libXext-1.3.2[abi_x86_32]
+		)
+	)
+"
+
+QA_PREBUILT="opt/* usr/lib*"
+
+S=${WORKDIR}/
+
+pkg_pretend() {
+	if use amd64 && has_multilib_profile && \
+		[ "${DEFAULT_ABI}" != "amd64" ]; then
+		eerror "This ebuild doesn't currently support changing your default ABI"
+		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
+	fi
+
+	if use kernel_linux && kernel_is ge 4 10; then
+		ewarn "Gentoo supports kernels which are supported by NVIDIA"
+		ewarn "which are limited to the following kernels:"
+		ewarn "<sys-kernel/gentoo-sources-4.10"
+		ewarn "<sys-kernel/vanilla-sources-4.10"
+		ewarn ""
+		ewarn "You are free to utilize epatch_user to provide whatever"
+		ewarn "support you feel is appropriate, but will not receive"
+		ewarn "support as a result of those changes."
+		ewarn ""
+		ewarn "Do not file a bug report about this."
+		ewarn ""
+	fi
+
+	# Since Nvidia ships many different series of drivers, we need to give the user
+	# some kind of guidance as to what version they should install. This tries
+	# to point the user in the right direction but can't be perfect. check
+	# nvidia-driver.eclass
+	nvidia-driver-check-warning
+
+	# Kernel features/options to check for
+	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
+	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
+
+	# Now do the above checks
+	use kernel_linux && check_extra_config
+}
+
+pkg_setup() {
+	# try to turn off distcc and ccache for people that have a problem with it
+	export DISTCC_DISABLE=1
+	export CCACHE_DISABLE=1
+
+	if use driver && use kernel_linux; then
+		MODULE_NAMES="nvidia(video:${S}/kernel)"
+		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
+		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
+
+		# This needs to run after MODULE_NAMES (so that the eclass checks
+		# whether the kernel supports loadable modules) but before BUILD_PARAMS
+		# is set (so that KV_DIR is populated).
+		linux-mod_pkg_setup
+
+		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
+		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
+
+		# linux-mod_src_compile calls set_arch_to_kernel, which
+		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
+		# expects x86_64 or i386 and then converts it to x86
+		# later on in the build process
+		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
+	fi
+
+	if use kernel_linux && kernel_is lt 2 6 9; then
+		eerror "You must build this against 2.6.9 or higher kernels."
+	fi
+
+	# set variables to where files are in the package structure
+	if use kernel_FreeBSD; then
+		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
+		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
+		NV_DOC="${S}/doc"
+		NV_OBJ="${S}/obj"
+		NV_SRC="${S}/src"
+		NV_MAN="${S}/x11/man"
+		NV_X11="${S}/obj"
+		NV_SOVER=1
+	elif use kernel_linux; then
+		NV_DOC="${S}"
+		NV_OBJ="${S}"
+		NV_SRC="${S}/kernel"
+		NV_MAN="${S}"
+		NV_X11="${S}"
+		NV_SOVER=${PV}
+	else
+		die "Could not determine proper NVIDIA package"
+	fi
+}
+
+src_prepare() {
+	eapply "${FILESDIR}"/${P}-profiles-rc.patch
+
+	if use pax_kernel; then
+		ewarn "Using PAX patches is not supported. You will be asked to"
+		ewarn "use a standard kernel should you have issues. Should you"
+		ewarn "need support with these patches, contact the PaX team."
+		eapply "${FILESDIR}"/${PN}-364.12-pax.patch
+	fi
+
+	# Allow user patches so they can support RC kernels and whatever else
+	eapply_user
+}
+
+src_compile() {
+	# This is already the default on Linux, as there's no toplevel Makefile, but
+	# on FreeBSD there's one and triggers the kernel module build, as we install
+	# it by itself, pass this.
+
+	cd "${NV_SRC}"
+	if use kernel_FreeBSD; then
+		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
+			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
+	elif use driver && use kernel_linux; then
+		MAKEOPTS=-j1 linux-mod_src_compile
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			AR="$(tc-getAR)" \
+			CC="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NV_VERBOSE=1 \
+			RANLIB="$(tc-getRANLIB)" \
+			DO_STRIP= \
+			build-xnvctrl
+
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			CC="$(tc-getCC)" \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LD="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NVML_ENABLED=0 \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			DO_STRIP=
+	fi
+}
+
+# Install nvidia library:
+# the first parameter is the library to install
+# the second parameter is the provided soversion
+# the third parameter is the target directory if it is not /usr/lib
+donvidia() {
+	# Full path to library
+	nv_LIB="${1}"
+
+	# SOVER to use
+	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
+
+	# Where to install
+	nv_DEST="${2}"
+
+	# Get just the library name
+	nv_LIBNAME=$(basename "${nv_LIB}")
+
+	if [[ "${nv_DEST}" ]]; then
+		exeinto ${nv_DEST}
+		action="doexe"
+	else
+		nv_DEST="/usr/$(get_libdir)"
+		action="dolib.so"
+	fi
+
+	# Install the library
+	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
+
+	# If the library has a SONAME and SONAME does not match the library name,
+	# then we need to create a symlink
+	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
+		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
+			|| die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
+	fi
+
+	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
+		|| die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
+}
+
+src_install() {
+	if use driver && use kernel_linux; then
+		linux-mod_src_install
+
+		# Add the aliases
+		# This file is tweaked with the appropriate video group in
+		# pkg_preinst, see bug #491414
+		insinto /etc/modprobe.d
+		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
+		doins "${FILESDIR}"/nvidia-rmmod.conf
+
+		# Ensures that our device nodes are created when not using X
+		exeinto "$(get_udevdir)"
+		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
+		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
+	elif use kernel_FreeBSD; then
+		if use x86-fbsd; then
+			insinto /boot/modules
+			doins "${S}/src/nvidia.kld"
+		fi
+
+		exeinto /boot/modules
+		doexe "${S}/src/nvidia.ko"
+	fi
+
+	# NVIDIA kernel <-> userspace driver config lib
+	donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
+
+	# NVIDIA framebuffer capture library
+	donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
+
+	# NVIDIA video encode/decode <-> CUDA
+	if use kernel_linux; then
+		donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
+		donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
+	fi
+
+	if use X; then
+		# Xorg DDX driver
+		insinto /usr/$(get_libdir)/xorg/modules/drivers
+		doins ${NV_X11}/nvidia_drv.so
+
+		# Xorg GLX driver
+		donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
+			/usr/$(get_libdir)/opengl/nvidia/extensions
+
+		# Xorg nvidia.conf
+		if has_version '>=x11-base/xorg-server-1.16'; then
+			insinto /usr/share/X11/xorg.conf.d
+			newins {,50-}nvidia-drm-outputclass.conf
+		fi
+	fi
+
+	# OpenCL ICD for NVIDIA
+	if use kernel_linux; then
+		insinto /etc/OpenCL/vendors
+		doins ${NV_OBJ}/nvidia.icd
+	fi
+
+	# Documentation
+	if use kernel_FreeBSD; then
+		dodoc "${NV_DOC}/README"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1"
+		use tools && doman "${NV_MAN}/nvidia-settings.1"
+	else
+		# Docs
+		newdoc "${NV_DOC}/README.txt" README
+		dodoc "${NV_DOC}/NVIDIA_Changelog"
+		doman "${NV_MAN}/nvidia-smi.1.gz"
+		use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
+		use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
+		doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
+	fi
+
+	docinto html
+	dodoc -r ${NV_DOC}/html/*
+
+	# Helper Apps
+	exeinto /opt/bin/
+
+	if use X; then
+		doexe ${NV_OBJ}/nvidia-xconfig
+
+		insinto /etc/vulkan/icd.d
+		doins nvidia_icd.json
+	fi
+
+	if use kernel_linux; then
+		doexe ${NV_OBJ}/nvidia-cuda-mps-control
+		doexe ${NV_OBJ}/nvidia-cuda-mps-server
+		doexe ${NV_OBJ}/nvidia-debugdump
+		doexe ${NV_OBJ}/nvidia-persistenced
+		doexe ${NV_OBJ}/nvidia-smi
+
+		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
+		doexe ${NV_OBJ}/nvidia-modprobe
+		fowners root:video /opt/bin/nvidia-modprobe
+		fperms 4710 /opt/bin/nvidia-modprobe
+		dosym /{opt,usr}/bin/nvidia-modprobe
+
+		doman nvidia-cuda-mps-control.1.gz
+		doman nvidia-modprobe.1.gz
+		doman nvidia-persistenced.1.gz
+		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
+		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
+		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/ \
+			DESTDIR="${D}" \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LIBDIR="${D}/usr/$(get_libdir)" \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			PREFIX=/usr \
+			DO_STRIP= \
+			install
+
+		if use static-libs; then
+			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
+
+			insinto /usr/include/NVCtrl
+			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
+		fi
+
+		insinto /usr/share/nvidia/
+		doins nvidia-application-profiles-${PV}-key-documentation
+
+		insinto /etc/nvidia
+		newins \
+			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
+
+		# There is no icon in the FreeBSD tarball.
+		use kernel_FreeBSD || \
+			doicon ${NV_OBJ}/nvidia-settings.png
+
+		domenu "${FILESDIR}"/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+	fi
+
+	dobin ${NV_OBJ}/nvidia-bug-report.sh
+
+	if has_multilib_profile && use multilib; then
+		local OABI=${ABI}
+		for ABI in $(get_install_abis); do
+			src_install-libs
+		done
+		ABI=${OABI}
+		unset OABI
+	else
+		src_install-libs
+	fi
+
+	is_final_abi || die "failed to iterate through all ABIs"
+
+	readme.gentoo_create_doc
+}
+
+src_install-libs() {
+	local inslibdir=$(get_libdir)
+	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
+	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
+	local libdir=${NV_OBJ}
+
+	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
+		libdir=${NV_OBJ}/32
+	fi
+
+	if use X; then
+		NV_GLX_LIBRARIES=(
+			"libEGL.so.1 ${GL_ROOT}"
+			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
+			"libGLESv1_CM.so.1 ${GL_ROOT}"
+			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLESv2.so.2 ${GL_ROOT}"
+			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLX.so.0 ${GL_ROOT}"
+			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLdispatch.so.0 ${GL_ROOT}"
+			"libOpenCL.so.1.0.0 ${CL_ROOT}"
+			"libOpenGL.so.0 ${GL_ROOT}"
+			"libcuda.so.${NV_SOVER}"
+			"libnvcuvid.so.${NV_SOVER}"
+			"libnvidia-compiler.so.${NV_SOVER}"
+			"libnvidia-eglcore.so.${NV_SOVER}"
+			"libnvidia-encode.so.${NV_SOVER}"
+			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
+			"libnvidia-fbc.so.${NV_SOVER}"
+			"libnvidia-glcore.so.${NV_SOVER}"
+			"libnvidia-glsi.so.${NV_SOVER}"
+			"libnvidia-ifr.so.${NV_SOVER}"
+			"libnvidia-opencl.so.${NV_SOVER}"
+			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
+			"libvdpau_nvidia.so.${NV_SOVER}"
+		)
+
+		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-egl-wayland.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-wfb.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_FreeBSD; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-ml.so.${NV_SOVER}"
+				"tls/libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
+			donvidia ${libdir}/${NV_LIB}
+		done
+	fi
+}
+
+pkg_preinst() {
+	if use driver && use kernel_linux; then
+		linux-mod_pkg_preinst
+
+		local videogroup="$(egetent group video | cut -d ':' -f 3)"
+		if [ -z "${videogroup}" ]; then
+			eerror "Failed to determine the video group gid"
+			die "Failed to determine the video group gid"
+		else
+			sed -i \
+				-e "s:PACKAGE:${PF}:g" \
+				-e "s:VIDEOGID:${videogroup}:" \
+				"${D}"/etc/modprobe.d/nvidia.conf || die
+		fi
+	fi
+
+	# Clean the dynamic libGL stuff's home to ensure
+	# we dont have stale libs floating around
+	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
+		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
+	fi
+	# Make sure we nuke the old nvidia-glx's env.d file
+	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
+		rm -f "${ROOT}"/etc/env.d/09nvidia
+	fi
+}
+
+pkg_postinst() {
+	use driver && use kernel_linux && linux-mod_pkg_postinst
+
+	# Switch to the nvidia implementation
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
+	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
+
+	readme.gentoo_print_elog
+
+	if ! use X; then
+		elog "You have elected to not install the X.org driver. Along with"
+		elog "this the OpenGL libraries and VDPAU libraries were not"
+		elog "installed. Additionally, once the driver is loaded your card"
+		elog "and fan will run at max speed which may not be desirable."
+		elog "Use the 'nvidia-smi' init script to have your card and fan"
+		elog "speed scale appropriately."
+		elog
+	fi
+	if ! use tools; then
+		elog "USE=tools controls whether the nvidia-settings application"
+		elog "is installed. If you would like to use it, enable that"
+		elog "flag and re-emerge this ebuild. Optionally you can install"
+		elog "media-video/nvidia-settings"
+		elog
+	fi
+}
+
+pkg_prerm() {
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}
+
+pkg_postrm() {
+	use driver && use kernel_linux && linux-mod_pkg_postrm
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2017-01-09  3:38 Richard Farina
  0 siblings, 0 replies; 46+ messages in thread
From: Richard Farina @ 2017-01-09  3:38 UTC (permalink / raw
  To: gentoo-commits

commit:     5dcb0d530a11f5e84323cafc54f0395c5d10f42f
Author:     Zero_Chaos <zerochaos <AT> gentoo <DOT> org>
AuthorDate: Mon Jan  9 03:37:45 2017 +0000
Commit:     Richard Farina <zerochaos <AT> gentoo <DOT> org>
CommitDate: Mon Jan  9 03:38:02 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5dcb0d53

x11-drivers/nvidia-drivers: fix pax patch bug 604048

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 .../files/nvidia-drivers-375.20-pax.patch          | 406 +++++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-375.26.ebuild    |   4 +-
 2 files changed, 408 insertions(+), 2 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.20-pax.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.20-pax.patch
new file mode 100644
index 00000000..9dd245a
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.20-pax.patch
@@ -0,0 +1,406 @@
+diff -urp work.orig/kernel/common/inc/nv-linux.h work/kernel/common/inc/nv-linux.h
+--- work.orig/kernel/common/inc/nv-linux.h	2016-11-27 21:56:50.391617167 +0100
++++ work/kernel/common/inc/nv-linux.h	2016-11-27 22:04:14.045516163 +0100
+@@ -1310,7 +1310,8 @@ extern void *nvidia_stack_t_cache;
+ #if (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 5)
+ #define NV_KMEM_CACHE_CREATE_FULL(name, size, align, flags, ctor) \
+     kmem_cache_create(name, size, align, flags, ctor)
+-
++#define NV_KMEM_CACHE_CREATE_FULL_USERCOPY(name, size, align, flags, useroffset, usersize, ctor) \
++    kmem_cache_create_usercopy(name, size, align, flags, useroffset, usersize, ctor)
+ #else
+ #define NV_KMEM_CACHE_CREATE_FULL(name, size, align, flags, ctor) \
+     kmem_cache_create(name, size, align, flags, ctor, NULL)
+@@ -1319,6 +1320,14 @@ extern void *nvidia_stack_t_cache;
+ #define NV_KMEM_CACHE_CREATE(name, type)    \
+     NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, 0, NULL)
+ 
++#ifdef SLAB_USERCOPY
++#define NV_KMEM_CACHE_CREATE_USERCOPY(name, type)    \
++    NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, SLAB_USERCOPY, NULL)
++#else
++#define NV_KMEM_CACHE_CREATE_USERCOPY(name, type)    \
++    NV_KMEM_CACHE_CREATE_FULL_USERCOPY(name, sizeof(type), 0, 0, 0, sizeof(type), NULL)
++#endif
++
+ #define NV_KMEM_CACHE_DESTROY(kmem_cache)   \
+     kmem_cache_destroy(kmem_cache)
+ 
+diff -urp work.orig/kernel/common/inc/nv-modeset-interface.h work/kernel/common/inc/nv-modeset-interface.h
+--- work.orig/kernel/common/inc/nv-modeset-interface.h	2016-11-27 21:56:50.391617167 +0100
++++ work/kernel/common/inc/nv-modeset-interface.h	2016-11-27 21:54:23.971706350 +0100
+@@ -72,7 +72,7 @@ typedef struct {
+      * mix nvidia and nvidia-modeset kernel modules from different
+      * releases.
+      */
+-    const char *version_string;
++//    const char *version_string;
+ 
+     /*
+      * Return system information.
+@@ -117,6 +117,6 @@ typedef struct {
+ 
+ } nvidia_modeset_rm_ops_t;
+ 
+-NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops);
++NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string);
+ 
+ #endif /* _NV_MODESET_INTERFACE_H_ */
+diff -urp work.orig/kernel/common/inc/nv-register-module.h work/kernel/common/inc/nv-register-module.h
+--- work.orig/kernel/common/inc/nv-register-module.h	2016-11-27 21:56:50.391617167 +0100
++++ work/kernel/common/inc/nv-register-module.h	2016-11-27 21:54:23.971706350 +0100
+@@ -34,7 +34,7 @@ typedef struct nvidia_module_s {
+     int (*ioctl)(struct inode *, struct file * file, unsigned int cmd, unsigned long arg);
+     unsigned int (*poll)(struct file * file, poll_table *wait);
+ 
+-} nvidia_module_t;
++} __do_const nvidia_module_t;
+ 
+ int nvidia_register_module(nvidia_module_t *);
+ int nvidia_unregister_module(nvidia_module_t *);
+diff -urp work.orig/kernel/nvidia/nv.c work/kernel/nvidia/nv.c
+--- work.orig/kernel/nvidia/nv.c	2016-11-27 21:56:50.395629748 +0100
++++ work/kernel/nvidia/nv.c	2016-11-27 21:54:23.971706350 +0100
+@@ -666,7 +666,7 @@ int __init nvidia_init_module(void)
+     NV_SPIN_LOCK_INIT(&km_lock);
+ #endif
+ 
+-    nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE(nvidia_stack_cache_name,
++    nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE_USERCOPY(nvidia_stack_cache_name,
+                                                 nvidia_stack_t);
+     if (nvidia_stack_t_cache == NULL)
+     {
+diff -urp work.orig/kernel/nvidia/nv-chrdev.c work/kernel/nvidia/nv-chrdev.c
+--- work.orig/kernel/nvidia/nv-chrdev.c	2016-11-27 21:56:50.395629748 +0100
++++ work/kernel/nvidia/nv-chrdev.c	2016-11-27 21:54:23.971706350 +0100
+@@ -20,8 +20,6 @@ int nv_register_chrdev(void *param)
+ {
+     nvidia_module_t *module = (nvidia_module_t *)param;
+ 
+-    module->instance = nv_module_instance;
+-
+     return (nvidia_register_module(module));
+ }
+ 
+diff -urp work.orig/kernel/nvidia/nv-instance.c work/kernel/nvidia/nv-instance.c
+--- work.orig/kernel/nvidia/nv-instance.c	2016-11-27 21:56:50.395629748 +0100
++++ work/kernel/nvidia/nv-instance.c	2016-11-27 21:54:23.971706350 +0100
+@@ -51,6 +51,7 @@ struct pci_driver nv_pci_driver = {
+ nvidia_module_t nv_fops = {
+     .owner       = THIS_MODULE,
+     .module_name = MODULE_NAME,
++    .instance    = MODULE_INSTANCE_NUMBER,
+     .open        = nvidia_open,
+     .close       = nvidia_close,
+     .ioctl       = nvidia_ioctl,
+diff -urp work.orig/kernel/nvidia/nv-mmap.c work/kernel/nvidia/nv-mmap.c
+--- work.orig/kernel/nvidia/nv-mmap.c	2016-11-27 21:56:50.395629748 +0100
++++ work/kernel/nvidia/nv-mmap.c	2016-11-27 21:54:23.971706350 +0100
+@@ -102,12 +102,12 @@ nvidia_vma_release(struct vm_area_struct
+ }
+ 
+ #if defined(NV_VM_OPERATIONS_STRUCT_HAS_ACCESS)
+-static int
++static ssize_t
+ nvidia_vma_access(
+     struct vm_area_struct *vma,
+     unsigned long addr,
+     void *buffer,
+-    int length,
++    size_t length,
+     int write
+ )
+ {
+diff -urp work.orig/kernel/nvidia/nv-modeset-interface.c work/kernel/nvidia/nv-modeset-interface.c
+--- work.orig/kernel/nvidia/nv-modeset-interface.c	2016-11-27 21:56:50.395629748 +0100
++++ work/kernel/nvidia/nv-modeset-interface.c	2016-11-27 21:54:23.971706350 +0100
+@@ -100,10 +100,9 @@ static NvU32 nvidia_modeset_enumerate_gp
+     return count;
+ }
+ 
+-NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops)
++NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string)
+ {
+-    const nvidia_modeset_rm_ops_t local_rm_ops = {
+-        .version_string = NV_VERSION_STRING,
++    static const nvidia_modeset_rm_ops_t local_rm_ops = {
+         .system_info    = {
+             .allow_write_combining = NV_FALSE,
+         },
+@@ -116,17 +115,26 @@ NV_STATUS nvidia_get_rm_ops(nvidia_modes
+         .set_callbacks  = nvidia_modeset_set_callbacks,
+     };
+ 
+-    if (strcmp(rm_ops->version_string, NV_VERSION_STRING) != 0)
++    static const nvidia_modeset_rm_ops_t local_rm_ops_wc = {
++        .system_info    = {
++            .allow_write_combining = NV_TRUE,
++        },
++        .alloc_stack    = nvidia_modeset_rm_ops_alloc_stack,
++        .free_stack     = nvidia_modeset_rm_ops_free_stack,
++        .enumerate_gpus = nvidia_modeset_enumerate_gpus,
++        .open_gpu       = nvidia_dev_get,
++        .close_gpu      = nvidia_dev_put,
++        .op             = rm_kernel_rmapi_op, /* provided by nv-kernel.o */
++        .set_callbacks  = nvidia_modeset_set_callbacks,
++    };
++
++    if (strcmp(*version_string, NV_VERSION_STRING) != 0)
+     {
+-        rm_ops->version_string = NV_VERSION_STRING;
++        *version_string = NV_VERSION_STRING;
+         return NV_ERR_GENERIC;
+     }
+ 
+-    *rm_ops = local_rm_ops;
+-
+-    if (NV_ALLOW_WRITE_COMBINING(NV_MEMORY_TYPE_FRAMEBUFFER)) {
+-        rm_ops->system_info.allow_write_combining = NV_TRUE;
+-    }
++    *rm_ops = NV_ALLOW_WRITE_COMBINING(NV_MEMORY_TYPE_FRAMEBUFFER) ? &local_rm_ops_wc : &local_rm_ops;
+ 
+     return NV_OK;
+ }
+diff -urp work.orig/kernel/nvidia-drm/nvidia-drm-drv.c work/kernel/nvidia-drm/nvidia-drm-drv.c
+--- work.orig/kernel/nvidia-drm/nvidia-drm-drv.c	2016-11-27 21:56:50.395629748 +0100
++++ work/kernel/nvidia-drm/nvidia-drm-drv.c	2016-11-27 21:54:23.971706350 +0100
+@@ -594,7 +594,7 @@ static const struct drm_ioctl_desc nv_dr
+                       DRM_CONTROL_ALLOW|DRM_RENDER_ALLOW|DRM_UNLOCKED),
+ };
+ 
+-static struct drm_driver nv_drm_driver = {
++static drm_driver_no_const nv_drm_driver __read_only = {
+ 
+     .driver_features        = DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER,
+ 
+@@ -654,6 +654,7 @@ static void nvidia_update_drm_driver_fea
+         return;
+     }
+ 
++    pax_open_kernel();
+     nv_drm_driver.driver_features |= DRIVER_MODESET | DRIVER_ATOMIC;
+ 
+     nv_drm_driver.master_set       = nvidia_drm_master_set;
+@@ -664,6 +665,7 @@ static void nvidia_update_drm_driver_fea
+     nv_drm_driver.dumb_destroy     = drm_gem_dumb_destroy;
+ 
+     nv_drm_driver.gem_vm_ops       = &nv_drm_gem_vma_ops;
++    pax_close_kernel();
+ #endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */
+ }
+ 
+diff -urp work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c work/kernel/nvidia-modeset/nvidia-modeset-linux.c
+--- work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c	2016-11-27 21:56:50.395629748 +0100
++++ work/kernel/nvidia-modeset/nvidia-modeset-linux.c	2016-11-27 21:54:23.971706350 +0100
+@@ -335,29 +335,28 @@ static void nvkms_resume(NvU32 gpuId)
+  * Interface with resman.
+  *************************************************************************/
+ 
+-static nvidia_modeset_rm_ops_t __rm_ops = { 0 };
++static const nvidia_modeset_rm_ops_t *__rm_ops;
+ static nvidia_modeset_callbacks_t nvkms_rm_callbacks = {
+-    nvkms_suspend,
+-    nvkms_resume
++    .suspend = nvkms_suspend,
++    .resume = nvkms_resume
+ };
+ 
+ static int nvkms_alloc_rm(void)
+ {
+     NV_STATUS nvstatus;
+     int ret;
++    const char *version_string = NV_VERSION_STRING;
+ 
+-    __rm_ops.version_string = NV_VERSION_STRING;
+-
+-    nvstatus = nvidia_get_rm_ops(&__rm_ops);
++    nvstatus = nvidia_get_rm_ops(&__rm_ops, &version_string);
+ 
+     if (nvstatus != NV_OK) {
+         printk(KERN_ERR NVKMS_LOG_PREFIX "Version mismatch: "
+                "nvidia.ko(%s) nvidia-modeset.ko(%s)\n",
+-               __rm_ops.version_string, NV_VERSION_STRING);
++               version_string, NV_VERSION_STRING);
+         return -EINVAL;
+     }
+ 
+-    ret = __rm_ops.set_callbacks(&nvkms_rm_callbacks);
++    ret = __rm_ops->set_callbacks(&nvkms_rm_callbacks);
+     if (ret < 0) {
+         printk(KERN_ERR NVKMS_LOG_PREFIX "Failed to register callbacks\n");
+         return ret;
+@@ -368,20 +367,20 @@ static int nvkms_alloc_rm(void)
+ 
+ static void nvkms_free_rm(void)
+ {
+-    __rm_ops.set_callbacks(NULL);
++    __rm_ops->set_callbacks(NULL);
+ }
+ 
+ void NVKMS_API_CALL nvkms_call_rm(void *ops)
+ {
+     nvidia_modeset_stack_ptr stack = NULL;
+ 
+-    if (__rm_ops.alloc_stack(&stack) != 0) {
++    if (__rm_ops->alloc_stack(&stack) != 0) {
+         return;
+     }
+ 
+-    __rm_ops.op(stack, ops);
++    __rm_ops->op(stack, ops);
+ 
+-    __rm_ops.free_stack(stack);
++    __rm_ops->free_stack(stack);
+ }
+ 
+ /*************************************************************************
+@@ -705,13 +704,13 @@ NvBool NVKMS_API_CALL nvkms_open_gpu(NvU
+     nvidia_modeset_stack_ptr stack = NULL;
+     NvBool ret;
+ 
+-    if (__rm_ops.alloc_stack(&stack) != 0) {
++    if (__rm_ops->alloc_stack(&stack) != 0) {
+         return NV_FALSE;
+     }
+ 
+-    ret = __rm_ops.open_gpu(gpuId, stack) == 0;
++    ret = __rm_ops->open_gpu(gpuId, stack) == 0;
+ 
+-    __rm_ops.free_stack(stack);
++    __rm_ops->free_stack(stack);
+ 
+     return ret;
+ }
+@@ -720,23 +719,23 @@ void NVKMS_API_CALL nvkms_close_gpu(NvU3
+ {
+     nvidia_modeset_stack_ptr stack = NULL;
+ 
+-    if (__rm_ops.alloc_stack(&stack) != 0) {
++    if (__rm_ops->alloc_stack(&stack) != 0) {
+         return;
+     }
+ 
+-    __rm_ops.close_gpu(gpuId, stack);
++    __rm_ops->close_gpu(gpuId, stack);
+ 
+-    __rm_ops.free_stack(stack);
++    __rm_ops->free_stack(stack);
+ }
+ 
+ NvU32 NVKMS_API_CALL nvkms_enumerate_gpus(nv_gpu_info_t *gpu_info)
+ {
+-    return __rm_ops.enumerate_gpus(gpu_info);
++    return __rm_ops->enumerate_gpus(gpu_info);
+ }
+ 
+ NvBool NVKMS_API_CALL nvkms_allow_write_combining(void)
+ {
+-    return __rm_ops.system_info.allow_write_combining;
++    return __rm_ops->system_info.allow_write_combining;
+ }
+ 
+ /*************************************************************************
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_global.c work/kernel/nvidia-uvm/uvm8_global.c
+--- work.orig/kernel/nvidia-uvm/uvm8_global.c	2016-11-27 21:56:50.399642330 +0100
++++ work/kernel/nvidia-uvm/uvm8_global.c	2016-11-27 21:54:23.975709978 +0100
+@@ -35,17 +35,17 @@
+ #include "nv_uvm_interface.h"
+ 
+ uvm_global_t g_uvm_global;
+-static struct UvmOpsUvmEvents g_exported_uvm8_ops;
++static struct UvmOpsUvmEvents g_exported_uvm8_ops = {
++    .startDevice = NULL,
++    .stopDevice  = NULL,
++    .isrTopHalf  = uvm8_isr_top_half,
++};
+ static bool g_ops_registered = false;
+ 
+ static NV_STATUS uvm8_register_callbacks(void)
+ {
+     NV_STATUS status = NV_OK;
+ 
+-    g_exported_uvm8_ops.startDevice = NULL;
+-    g_exported_uvm8_ops.stopDevice  = NULL;
+-    g_exported_uvm8_ops.isrTopHalf  = uvm8_isr_top_half;
+-
+     // Register the UVM callbacks with the main GPU driver:
+     status = uvm_rm_locked_call(nvUvmInterfaceRegisterUvmCallbacks(&g_exported_uvm8_ops));
+     if (status != NV_OK)
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c
+--- work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c	2016-11-27 21:56:50.399642330 +0100
++++ work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c	2016-11-27 21:54:23.975709978 +0100
+@@ -368,7 +368,7 @@ void uvm_gpu_semaphore_set_payload(uvm_g
+     // being optimized out on non-SMP configs (we need them for interacting with
+     // the GPU correctly even on non-SMP).
+     mb();
+-    ACCESS_ONCE(*semaphore->payload) = payload;
++    ACCESS_ONCE_RW(*semaphore->payload) = payload;
+ }
+ 
+ // This function is intended to catch channels which have been left dangling in
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_hal.h work/kernel/nvidia-uvm/uvm8_hal.h
+--- work.orig/kernel/nvidia-uvm/uvm8_hal.h	2016-11-27 21:56:50.399642330 +0100
++++ work/kernel/nvidia-uvm/uvm8_hal.h	2016-11-27 21:54:23.975709978 +0100
+@@ -316,7 +316,7 @@ typedef struct
+         // fault_buffer_ops: id is a hardware class
+         uvm_fault_buffer_hal_t fault_buffer_ops;
+     } u;
+-} uvm_hal_class_ops_t;
++} __do_const uvm_hal_class_ops_t;
+ 
+ // When UVM next support is enabled support for future chips in the hal is
+ // enabled by providing additional hal table entries below.
+diff -urp work.orig/kernel/nvidia-uvm/uvm8_mmu.h work/kernel/nvidia-uvm/uvm8_mmu.h
+--- work.orig/kernel/nvidia-uvm/uvm8_mmu.h	2016-11-27 21:56:50.399642330 +0100
++++ work/kernel/nvidia-uvm/uvm8_mmu.h	2016-11-27 21:54:23.975709978 +0100
+@@ -24,7 +24,6 @@
+ #ifndef __UVM8_MMU_H__
+ #define __UVM8_MMU_H__
+ 
+-#include "uvm8_forward_decl.h"
+ #include "uvm8_hal_types.h"
+ #include "uvm8_pmm_gpu.h"
+ #include "uvmtypes.h"
+diff -urp work.orig/kernel/nvidia-uvm/uvm_common.c work/kernel/nvidia-uvm/uvm_common.c
+--- work.orig/kernel/nvidia-uvm/uvm_common.c	2016-11-27 21:56:50.399642330 +0100
++++ work/kernel/nvidia-uvm/uvm_common.c	2016-11-27 21:54:23.975709978 +0100
+@@ -42,7 +42,6 @@
+ #define UVM_SPIN_LOOP_PRINT_TIMEOUT_SEC     30ULL
+ 
+ static dev_t g_uvmBaseDev;
+-struct UvmOpsUvmEvents g_exportedUvmOps;
+ 
+ static char* uvm_driver_mode = "8";
+ 
+diff -urp work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h work/kernel/nvidia-uvm/uvm_full_fault_buffer.h
+--- work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h	2016-11-27 21:56:50.399642330 +0100
++++ work/kernel/nvidia-uvm/uvm_full_fault_buffer.h	2016-11-27 21:54:23.975709978 +0100
+@@ -31,6 +31,7 @@
+ #define _UVM_FULL_FAULT_BUFFER_H_
+ 
+ #include "uvmtypes.h"
++#include "linux/compiler.h"
+ 
+ #define MAXWELL_FAULT_BUFFER_A (0xb069)
+ #define MEM_RD32(a) (*(const volatile NvU32 *)(a)) 
+@@ -303,7 +304,7 @@ typedef struct
+     NvUvmControlPrefetch_t              controlPrefetch;
+     NvUvmTestFaultBufferOverflow_t      testFaultBufferOverflow;
+     NvUvmClearFaultBufferOverflow_t     clearFaultBufferOverflow;
+-} UvmFaultBufferOps;
++} __no_const UvmFaultBufferOps;
+ 
+ /******************************************************************************
+     uvmfull_fault_buffer_init
+diff -urp work.orig/kernel/nvidia-uvm/uvm_linux.h work/kernel/nvidia-uvm/uvm_linux.h
+--- work.orig/kernel/nvidia-uvm/uvm_linux.h	2016-11-27 21:56:50.399642330 +0100
++++ work/kernel/nvidia-uvm/uvm_linux.h	2016-11-27 21:54:23.975709978 +0100
+@@ -420,7 +420,7 @@ static inline NvU64 NV_GETTIME(void)
+ 
+ // WRITE_ONCE/READ_ONCE have incompatible definitions across versions, which produces warnings.
+ // Therefore, we define our own macros
+-#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE(x) = (val))
++#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE_RW(x) = (val))
+ #define UVM_READ_ONCE(x) ACCESS_ONCE(x)
+ 
+ // Added in 3.11

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-375.26.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-375.26.ebuild
index abfa74f..fc45d6f 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-375.26.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-375.26.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -177,7 +177,7 @@ src_prepare() {
 		ewarn "Using PAX patches is not supported. You will be asked to"
 		ewarn "use a standard kernel should you have issues. Should you"
 		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-364.12-pax.patch
+		eapply "${FILESDIR}"/${PN}-375.20-pax.patch
 	fi
 
 	# Allow user patches so they can support RC kernels and whatever else


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2017-04-11  7:07 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2017-04-11  7:07 UTC (permalink / raw
  To: gentoo-commits

commit:     6593722f33f09717f05320e435313c862296fbac
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 11 07:07:04 2017 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Tue Apr 11 07:07:20 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6593722f

x11-drivers/nvidia-drivers: Fix building without CONFIG_MTRR (bug #614706 by David Flogeras).

Package-Manager: Portage-2.3.5, Repoman-2.3.2

 .../nvidia-drivers/files/nvidia-drivers-304.135-endif.patch  | 12 ++++++++++++
 x11-drivers/nvidia-drivers/nvidia-drivers-304.135.ebuild     |  2 ++
 2 files changed, 14 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-304.135-endif.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-304.135-endif.patch
new file mode 100644
index 00000000000..f902c742b74
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-304.135-endif.patch
@@ -0,0 +1,12 @@
+--- a/kernel/os-agp.c
++++ b/kernel/os-agp.c
+@@ -180,8 +180,8 @@
+     {
+         nv_mtrr_del(nv->agp.arch_phys_wc_add_token, agp_info.aper_base,
+                     agp_info.aper_size << 20);
+-#endif
+     }
++#endif
+ release:
+     NV_AGPGART_BACKEND_RELEASE(drm_agp_p, nvl->agp_bridge);
+ bailout:

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-304.135.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-304.135.ebuild
index f1f1cab7dc5..1946ef0b405 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-304.135.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-304.135.ebuild
@@ -151,6 +151,8 @@ src_prepare() {
 	# Please add a brief description for every added patch
 
 	if use kernel_linux; then
+		eapply "${FILESDIR}"/${P}-endif.patch
+
 		if kernel_is lt 2 6 9 ; then
 			eerror "You must build this against 2.6.9 or higher kernels."
 		fi


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2017-09-27 16:26 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2017-09-27 16:26 UTC (permalink / raw
  To: gentoo-commits

commit:     b40400b5ec0252bee0915be28ba1b294de479972
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 27 16:25:41 2017 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Wed Sep 27 16:25:41 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b40400b5

x11-drivers/nvidia-drivers: Old.

Package-Manager: Portage-2.3.10, Repoman-2.3.3

 x11-drivers/nvidia-drivers/Manifest                |  34 --
 .../files/nvidia-drivers-304.135-endif.patch       |  12 -
 .../files/nvidia-drivers-375.39-profiles-rc.patch  |  11 -
 .../files/nvidia-drivers-375.66-profiles-rc.patch  |  11 -
 .../nvidia-drivers-304.135-r1.ebuild               | 498 ------------------
 .../nvidia-drivers/nvidia-drivers-304.135.ebuild   | 493 ------------------
 .../nvidia-drivers-340.102-r1.ebuild               | 529 -------------------
 .../nvidia-drivers/nvidia-drivers-340.102.ebuild   | 524 -------------------
 .../nvidia-drivers/nvidia-drivers-375.39.ebuild    | 558 --------------------
 .../nvidia-drivers/nvidia-drivers-375.66-r1.ebuild | 569 --------------------
 .../nvidia-drivers/nvidia-drivers-375.66.ebuild    | 564 --------------------
 .../nvidia-drivers/nvidia-drivers-384.59-r1.ebuild | 578 ---------------------
 .../nvidia-drivers/nvidia-drivers-384.69.ebuild    | 578 ---------------------
 13 files changed, 4959 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index a224ca98cd0..b7e851dfe7d 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -1,74 +1,40 @@
 DIST NVIDIA-FreeBSD-x86-173.14.39.tar.gz 20038266 SHA256 63a922ce4c5b676b4cb1ace98094dace4cc5408f2553e183df7b2127777a238b SHA512 96982fe7e0751c52fbef534193de09d187b99c1984c05e791223eb804719d8b3ba72efd983f227661ded4b71569bdbb914f1f629ab73a8bc9b8172832ccf3ec6 WHIRLPOOL 21f5906f42adf0064c7a7f81ac8e323de488e6d36356ee42c31a15c31ebb64335d5e2cff0ff022d41de480f9e0a57b3b96387f17151c7b59eceba2c61a7a102b
-DIST NVIDIA-FreeBSD-x86-304.135.tar.gz 35092250 SHA256 3bcecc26c67588174bcee96b25f4f70265f463e4b3eb85d83363977acf3b6d33 SHA512 2e8e8b6cc02bcb44fcfc5f7b378cfe104669d2092e5191261c800bb458281e4ae269d8ae3f7230f5e1432004d55120e063166ead5d91d80b96eb158f7927b34a WHIRLPOOL b42379f450630f20ece6f3af95b9f02d8c91121454d9c883f23cbb7a46e2099c41de2f15663932befb218eea856cb0a861fc34b19f3e84061cd0fa4f4c8722e6
 DIST NVIDIA-FreeBSD-x86-304.137.tar.gz 35399011 SHA256 5f874133853eacc5b9a10311cec22d3c4898db7f75b92bb6c12d5be5126516fb SHA512 9bab183289461d915371b7b5b34e66fdfe8ffff945806dbdf00e0e1cc7242f7b74a0acfc6ed24c3643a6d51edc837cd905ba3b224c30040b0f40d662dc6e7a6d WHIRLPOOL 321b9a8aded7c6128687d620d43c65bb481543f9ece8f61f3e8a38ec9f3cd06f745462fe64fc080490f9e341ef1acd5fb4438e88435c1321e138b9fe58840d55
-DIST NVIDIA-FreeBSD-x86-340.102.tar.gz 12057262 SHA256 d3edf43d6fc518869c35ae8d98ab5d55b86ade71127956ef66b201f60bc5dfe8 SHA512 bf15e68b1eee85e83474aaa480096991eac7506481f1192b53e0e10ff891f177c50c1492c51fb68ce0af3c5ccc54dad60edc90ec42b156e8338e51b9f9542520 WHIRLPOOL 6eb5df57b709ea2c3ab1c81d7a186fd106ff019400d66bc68c91da12d27b0b365e2f1b44c6d41cd45f605a813be1b88d587fcd7b3513c251e3248dc2f243d529
 DIST NVIDIA-FreeBSD-x86-340.104.tar.gz 60305172 SHA256 28c5fdd306e50c3e9ef23f68a63c90be0717231595fa3fec700b00117ba990e1 SHA512 051bb0e0be3a70f3d3265c493c96a1ac249730ce2c1b4a97f7fb4797daa92af066f2bb88b922a80e4a7f5d3e5d37e0ec8ac3f9fdda77e68c905ef55f47ccbc8e WHIRLPOOL 8212e5ff3dafc18e9caad5ce68b7c4eb1881fdfaf64cf7e63bda2d69464e8972097f6cb5be2672bb0a7fad307a44acd0732b77a005e479147fe21f901dab8afa
-DIST NVIDIA-FreeBSD-x86-375.39.tar.gz 59111267 SHA256 ca39ab55716516bbca62fc888ec786745a8df7f346e68703f54e1a42afad733e SHA512 8f5bf9ffc731ca90a2604b80c3974ee123a12d7db9ee9be1811f5e78711798d7a29737a3651406c1c5e24a197d50f2f2fc39d94c8d11f9700900ef13266a5bf7 WHIRLPOOL e6ce83478238b2f6497ed48688531a6ba4bf78baa2d376e6c8a0f04b35039ed1532a4618f8a53c60ab0778330313ca1e9eecb836a4ade4c5b006844386d4b23f
-DIST NVIDIA-FreeBSD-x86-375.66.tar.gz 59154988 SHA256 b664c4796626213e7bee4cace75bf576ffa2943ca26a0414bcf598c8e6ff5614 SHA512 b034d8bb569d7b4f277aabef9d82c7928c345c27fd25b77d5d843f0e587c9e3f641e1860f4459a06ab3e1e68460743d04553ce919b4c8ecd2a3b624875c78c52 WHIRLPOOL 9385aca80b3cf3d00a1b7686a43edcc5c9d7fb20a7223c0642676cb1d084a1cfc19b1e32babfb72b397e651cf3a0ef1adf71f45fc4a8f826476b68407c00497d
 DIST NVIDIA-FreeBSD-x86-375.82.tar.gz 59566154 SHA256 4a5c17bf40f2edc475fadd08ddb2db169f51d8871c62723b082dd9041d801aa5 SHA512 6747bf6d6278c6ed0828c6fdcad5353e516f28384609a3f0a885966707eebb096926a876c17843bfa7626a01a6d4e0ab12c781faf9ac0291771b195c9eb13d85 WHIRLPOOL 8da17a8e56e7cd831da3544633352f74c053bc376fb2d0d803232c035c8bdc98e2e3688b4954ec7875cf30ec303df296d206e155c5dabf1f05e7fe6af9679e3a
 DIST NVIDIA-FreeBSD-x86-378.13.tar.gz 59610253 SHA256 aca461f050950f1a3a81137ec8adf2057deaa20ad166bdd4ce8f3e34616e7a98 SHA512 a0101201089df2bbf5bdc4ded2228dd989da6a47da31c3ec8d55916b1ff3457924555f82c7381934745fdc1b1f8f78e3fc10e5089279eb13423628dbfe560c6b WHIRLPOOL ac67d07d3ffb0959f685b7d59de152ba8fc97e11c30ed3f1a200511bcaf3de1cd1879147f37fde66a1c8d13dd327aac8a9ac78d42cc9656ef79e3180897aaef1
 DIST NVIDIA-FreeBSD-x86-381.22.tar.gz 60112159 SHA256 f309408941c7d393fe51b2356bd424791558b70f8f17f8856fbbefb1bcf74138 SHA512 ffe5882051fad081854e7b7fefe86a4da55b263b2ca217664991a7e0d84ff2f22d62a37c89afd578f3c99c12be897e5db7a3d1c71c747df655af8e220eb983fa WHIRLPOOL 42bd9205e28d067b1f7417607da21cd66411cefbd1cec74807bbdcee2255e758df2eb15f79a0c3fe1dde7d9f010cfcf648bb6a5890b4637ea7f799cc0810340d
-DIST NVIDIA-FreeBSD-x86-384.59.tar.gz 63257550 SHA256 0ae4aeb3beab6be586cd76f193d03ee7aa7397c66bfcdc84ab6629f808543bb0 SHA512 00598c3fe0d2361e0a8cf945fee19edb884c3bba059000d5103ea45c1f36a06238017752130ac7d8cdca0a7be87109dbb76b5cd318a5263495cbf0b91fc45fb9 WHIRLPOOL 12a9d4d5fbe5af9370e40ecea9fff7b9ffd868da988dd69bc9ad9b27529401a7f910f7013cb1a3765b5edd175c9c97eab0ecdce858c44adf5d8e6450ddcb38ee
-DIST NVIDIA-FreeBSD-x86-384.69.tar.gz 63499223 SHA256 2887ff505c56787cf24a8cbfb9648d6c3e53f15d11905ca969ac016f432de4d6 SHA512 dcdf8ed7683d73722984b2a466cc958d95563fcde0beb5aeafefa0226539c26163159f30b1d7371c819cd41823f63aff82f3150f59a1c529895faea9b3cb398f WHIRLPOOL 2e400861a1cf94371e810619b6a38b71b49f18f150225ca993df41f09e163a91bf59fb1a33d27dea9b07ae13cd981b3baf5b2b45190fedca39fa513e1f686479
 DIST NVIDIA-FreeBSD-x86-384.90.tar.gz 63539967 SHA256 84a307e03c7db1eb230538e46c45640f815750141cb3d6bd6cb3f3e68381c31e SHA512 16e333a846f47618f6e732d89bd92fda628c02b28784226a879f23147df764c540c96d2fe517dea465a7d07022df676a009aec22bb09c4439b9ea8b0351c6996 WHIRLPOOL 8ec2fdcdf841a20abb579a65e6e18d1ea405a6edad98a57a9b1baa807d4725b3812b6d540ea6f31b84ae28a12a1117e903f258e8f80d93d5dfff52de0eea8920
 DIST NVIDIA-FreeBSD-x86-96.43.23.tar.gz 15463464 SHA256 18d855db8381eda1a6cf548c9e5095fc5bb8694bf1d6e24fc1072fba4e54cd78 SHA512 42d7b1b76cdb3b23680363e565614a22112162a5dd3639cb804fe670c0c3f3f23595bbefa3f78afdc6a8ca848446dee853c7a355f2c96a0d01b354753ba2785c WHIRLPOOL f8e59ce521990cd9edee441e73f973f074db492952807a0931e362102874cddbb47604ff5c5eb20a0cbde27f9b6d4e440dd12cc2e5a20c9cb65bf3c0b3e62511
-DIST NVIDIA-FreeBSD-x86_64-304.135.tar.gz 36144428 SHA256 0e415045b96bb272150d35d72c4a17c3d8e7b593dc7ffc577f6f25cc04f9de95 SHA512 8939f0153e7dc98ed147c79a042731461f87582ef46c4762afadf6a5e1cd0ca32ca99415a3819f7e5abefb2df5c59731454e80873d3d622b73f27e75518c8793 WHIRLPOOL e8689e07f12e169f9abad243111bcddee7796826f0028d29bb5eb340649696a3688a74068f07f52d6764fba9924ddd1dba18e8ae442654fffa9b902ccbde2c7f
 DIST NVIDIA-FreeBSD-x86_64-304.137.tar.gz 36474676 SHA256 231693189e1bdf5c1dd02315cde5ef9ed6c0854564314438f2f40f9788a34120 SHA512 f0ae7ccea417aceedf34bfb9c96fd79b31cbf74a8fa59d5199b0ad7b81b8a4aeb66cd4801a45cc37f836979cb4267aa69e08517beaa9b8cb9c66a477d02ef8de WHIRLPOOL 9eb9036d64bd52ccbc8ce641da57c34ec9165d1f74293bec21be6d874cc8338f785d68a45ae2e8cd1161a34b2c95246c9b5504bdf810dfbfae1814ad35eb6a1e
-DIST NVIDIA-FreeBSD-x86_64-340.102.tar.gz 60862932 SHA256 6d1108c2e8d1b25eb16cd8dc4eb221f2a20d2e4c39a515c0b5809fb407991f94 SHA512 fddef644937093550f9e5dfc25dc5cb81280785735c2d11f644b5eece8144b23bc88a353534ca95e925f54da9131ed5dd7460b72e554b6625df33e243476588f WHIRLPOOL 0b19ef96124768b8cafb0211a79f8ba6e3d04d9289d5194a59fdaa4eb15ab898c103346892007d9fd6eac75d6d503cd9724ab8f60bd7cf28fee2f9307b03d70b
 DIST NVIDIA-FreeBSD-x86_64-340.104.tar.gz 61176133 SHA256 93b8ff6dacf1aa9f3b47af7bbcc09397ead6614edff46c85f2f1c5d5aec9a59d SHA512 d7535527fb9ffc820509da8d0b159c70627c72a7182c354448851a334fcd5b8835046d0e9812079af2fa92de0f3fce299a67e70ef50697a2a1f33b8d995e7f73 WHIRLPOOL 942075e9075879eb4656ee1ca612a0500f90d824cfc77018ee9e2dff804341f5fcd853e200deb0525fd0ecc394d99b15f31f6203854d0a4b0103c187961a74d6
-DIST NVIDIA-FreeBSD-x86_64-375.39.tar.gz 58308585 SHA256 0d58c450b3391cf28655f15505aaca8d011590efe5dd3ebc6a3212a9d7597b17 SHA512 2b9e4fe4c850c59050d6f586be743e6e9511d12ee3e5f760b6c6ef5ff2084b7bc147267a7844191db1bfab842806a47054ce8f7534d5fee614efbf08e1faaca4 WHIRLPOOL fe195242a1a3657609eb9ea0eda27daa22fcc40beaa35e3cfcda575978361f68da27a46411ad38a93bef333bba91c06b911545d4d14f19b3dd2d085ae7012408
-DIST NVIDIA-FreeBSD-x86_64-375.66.tar.gz 58343065 SHA256 f6977d58d57818c27989d0c87dff0bdcb348a57ac18e0607ba03fa7489caa089 SHA512 7a222192c04c6cc3fb7818caebb45b4f4e3c9f702bcc14400cc9a7d3d83daae40ff254b70b3845a44fa120b702734b4619f5d4c5a8d25300becfc5f73710f3e9 WHIRLPOOL c77b5457bf4c053baefe1cf676baf47b318cfbfb8c323a8f6d270a36d8119d7843d5e28313c0b011feb9f19aea430d3f37e5b7798304ec174b996871876445e1
 DIST NVIDIA-FreeBSD-x86_64-375.82.tar.gz 58748290 SHA256 e58490883350a1bb713cdfafb31c377a33033f1a92b61a4111bf31e721d2e65d SHA512 5e2b42ff63e06219764db8187203ce1a2c3c8b478be31fc713ef396e8f8d46def9b2631d7989866740bd0c6a81bbf5d2ed083c14cfa7171c0d993553ca6f431c WHIRLPOOL ae9392648677d229ac920ad74ca1b59f330ffdb51b4a445b8c6f0efe95430810d5041f6d61ffa97350f9b167ab18a3a96c115a19b5aff7d390aec43de95d76cb
 DIST NVIDIA-FreeBSD-x86_64-378.13.tar.gz 58779963 SHA256 451b9e4b2da86609c760a9a133efa8d37d844ad036299689f007c90463a7ca39 SHA512 34cfc383ba196ecec2cd27fc12bf30dd58f8782b73414e7b4c182e832ae0dce1f8c017afbb2101d7525d4e321f80cac49d3b578a8fc0cf88be9310f4deb77057 WHIRLPOOL 23929abd50467f267cf6b7d58a49fc6f667036b7e92363cc05b021790d0d5ebc61e181c3b2e7c32a6338328cfcc05311d74112b005d638c0295b2c6189dfa3b8
 DIST NVIDIA-FreeBSD-x86_64-381.22.tar.gz 59284579 SHA256 f63001f380055da84eec7aaeddc13442a004ca6979adbfec46d3efac4bad7116 SHA512 51c5a87fabe87ec7f2589ed97d97447b127ecb5fe501c60bc7c9fce74141c127f4f9bb820d2a9b34fb56db436476d0cb18a73845ab4e7ec2315d4975c8ce4e32 WHIRLPOOL 40e1c62b9c8b1d5b20eaa1737285e1ce01e912b013c1aae7c9167e6d240cce5a461fd955e5583065a206abf6d6b195c8916464ce1dd4a53bb5ee94de3679373e
-DIST NVIDIA-FreeBSD-x86_64-384.59.tar.gz 62465295 SHA256 325612d3fa039b34f6f6e817eccfa03ef0b45346acf14e5d6daf01a6d4f4241b SHA512 ac2dac82e24e192812dd2f0c3c33d5ae06e41ec8f8f23c26a4d617e92494cb5509c9499c934355823261daa1ab9e98f68b804efadff86e99cf7d093b8125875c WHIRLPOOL a4bf1c3980699ab355788063ba184ab142ba8f0efd2398c38f9e1def875558bb67fb8d92df761da56ff84464d5b38eef7962f36219b7c311ad05d9d3dbe56fe8
-DIST NVIDIA-FreeBSD-x86_64-384.69.tar.gz 62681463 SHA256 d312cfa6892c83cf8fcf055f0327d24ce592643fcd619f92bbfeb47d60adb369 SHA512 b2f3d09bc1ebeb49da9b0eece79e6977479fd918a043313da6dd8d762ff0d7face2579ebac400b334be70ef0abdc34eefb297d80d707eab11a2161d077fa3d24 WHIRLPOOL 00ff8c94bc06f457e44de69739eedad1275d9a19fee0978614e9e90962437284e4c2bc04efcfab553bbe94c266ac6987aaabbb329a331a2e4a7d0b5ba26760a1
 DIST NVIDIA-FreeBSD-x86_64-384.90.tar.gz 62724143 SHA256 b213fe40c3df81a8391bfa81fd2763a878f28e846c8dcd65fd922ad6dbbeb3e5 SHA512 0077ba72301b65fb898fa180d77ff6abcb2a78e62c3528e3afbdfb679248f34e6a00faefeec713e7cc4a7daa7c15e6039090e5dbb047d6a9f2cff38c2e8afdb9 WHIRLPOOL bbf04cf8603a1cce37eeefd918f7252bd024098c4a2b12d3513391e3d793c6cc0d82b0ba0018409fb16dfec2a7d3cd1dfa6711eb7a6afc7e0afa3f4601b05f53
-DIST NVIDIA-Linux-armv7l-gnueabihf-375.39.run 25350238 SHA256 52f512bbb3e2d5747df9b294667df9975564408c5ce4f3124aca7dba4355a3a9 SHA512 d888ab0c81c53138eec06e25be683798b5459a6862affa92429feb1e63fcd4cd7ac76bd78eff8c1bef245a25a6a7eb77994ad99c15ed65e8be1a64b3e4c45030 WHIRLPOOL 5714fdcd9e226a336e0abd46bd8a91eef486fc14de543a98d284b3ae3955e924dbde10a08144309b6c0b4e19fcb011bffb8c046a05cbe05f6123b22d270e2939
-DIST NVIDIA-Linux-armv7l-gnueabihf-375.66.run 26668661 SHA256 eb9ac4a3e7dad9f1a149eb04a4d6668b73b75b0e12cca41f12ac52db3e39981b SHA512 fa60b385f7ae79de28e6cb452c249c26a6dbec72f0ab1f31fa89fbea937e5bb13303b32e275384d834b524e58d47fb18497e0920657307a89f9cebe8aef96909 WHIRLPOOL c34e92a43601240dca0dfd2d14f75ce828b12c2da80dbafaf67c6437ba54dc214ca69ce0d0f1a8bef883539ec8430761055b0cf60d9a4502544b39d98bae9648
 DIST NVIDIA-Linux-armv7l-gnueabihf-375.82.run 26650801 SHA256 d3419a636806915e809ccefd4a0566f3e21bf15ee21f39f1bf9411b041d48f05 SHA512 28554f1c24fe63c9257c0de3e84e4e739a45bf1c20ec7a53bc2c1b69b4e2355675061491ef5b03f3ae489cf623e553cfa68442f5536f137837327036d1c53d63 WHIRLPOOL f793a6eb559302289a01e39072927a45d1afb01ea086944ef243acf14000c989ecb4df26b55079764ad98c581ef5ae64d50ff7913c27895e0e216e9ffb25dea1
 DIST NVIDIA-Linux-armv7l-gnueabihf-378.13.run 26514235 SHA256 399abf527d84e4b4d01ea66e0de4a1f9b1b39871b180ef3bf99c4718ebe3db91 SHA512 253786a821df85fa926ae842114321b3c70502f887ea7c2b6790dfe3836039ee5d390e6722ca8785904ec6487e465916923d3042dc6191b3b4522c3161b80cb0 WHIRLPOOL 154b13ecb368716980ab779894942831c13e4b2d47c1d5765ab14590663b34be1571df7934e1277c9a29cdfe93e209a04e2a9fed2830c407a42547433fd9e721
 DIST NVIDIA-Linux-armv7l-gnueabihf-381.22.run 26815484 SHA256 246272d7da8f60564f4a0776fb3af82652add9e0ced8f856dc6530f97e97a748 SHA512 934cda37c7aed26243b5b661122e1c060de5b4df890aaf2295b6650dddea37cb4f0e3f0bebddb00b5d687b66ab5e028a203195c4d4ad3379593babda42febe77 WHIRLPOOL 33f5f0b0a9463419a2dcc6b2d6026607e28b13982fd0e26ffa797d9ba3ea6aab045b52523a653aea8378d31cd787628db1707c33df61c5d9b9943c07dde209aa
-DIST NVIDIA-Linux-armv7l-gnueabihf-384.59.run 28594162 SHA256 d77e90d34f1110208716c9cb1a208cc066ac5beb6055c5c9ffed538a534b34c2 SHA512 7ac7f42d5e203e22603682660e0e641f08aa9321ff7be0421d23a19af0b9d8d9efe53d4194ff65467fbb419910d64fe711d5b2a1583de987f3e73c1827bea2fe WHIRLPOOL b703954018f3139f2c92d72cc6f04a5a676fe7f75fb38c6b4782adb673f84f1df4ad73360a635df121ba9f7d0e364b79c018271909af286b5c7a042e2205749f
-DIST NVIDIA-Linux-armv7l-gnueabihf-384.69.run 28886325 SHA256 9ded813474ff591b17a19794e89d543fcedfb34d8b6275b2ac7abead26dad024 SHA512 e80d7aed341d7758e689b4adc7d6d0062d258a84b87bc6f085981fea500c777c25f9c9b3ea8de47f2399fc789b0fab46e2991eb8daa149e238cdf3c1ac3d9d7c WHIRLPOOL 5ae000b443bb994a589ca29101683e50f6afc82f72d26b84cfd07d71ab873b55b854e5313f5fc55289abacf492137d5abd0a6505adacf5367462d17724c3aa55
 DIST NVIDIA-Linux-armv7l-gnueabihf-384.90.run 29044581 SHA256 d154bff89275a8781c68dd3ca27a66bb6ebf0c77a4b42418cdd43c6f3500e365 SHA512 4d6f23c1ce4ce26520aa49955959833d630a398df0826cf9b0c1109103fc3c4da1d7c19d1cc826116562bcbfca933f291b300bea377e91f72f15c97e0c6d68f0 WHIRLPOOL b709ec3288803124d1c2caf98d0ec68a23dcae6ac8affece55faa1613985621cd427f90d0f80ecba4fa00b797044b21022f9ab9feca09948d42e9dd1cf2f49fa
 DIST NVIDIA-Linux-x86-173.14.39-pkg0.run 15134997 SHA256 a09935f37121ed3db8ae3da63a0d8e9d4348a19c859811c9fe44d6ce8e3eab23 SHA512 e24e15ccec725d3cbca502c2b77061776a81ef92917a950adec4ff6bdc34f10903aa654433177ea74be0dade4af81c5380d5710d375a5ea445940d06154bde93 WHIRLPOOL fce3d8e4f6cdf698f5a057514b6fe220bb1011025bdce5bd4cf0e424fb4d306d38251b6726bda03f290ea8137d5a95ed418cf8751722879f9042462abd9181b6
-DIST NVIDIA-Linux-x86-304.135.run 41202842 SHA256 5cb0a191ddca7b4c72b3c26cd57b7d719878ce628d24b5b026a0e5c8d3a00d93 SHA512 c2645cc9a6f23641d8b6da51e72e203980068c05e365fcc73b32322a6875ce95e81f4e0d893276e14e84e93464488539c16db6b3be04f5324cf7d7a12bb557f8 WHIRLPOOL 79d0d0badd36c94f3d48eef2c40184ee876bf78e153b18e73521fbe756cd78248da38405e7c08abbfa400ee8cd8150d81987bd7f45501937a77c39f7fc9a0ee6
 DIST NVIDIA-Linux-x86-304.137.run 41504115 SHA256 ca98379fc2090bdfe8b74113d6ac7bcc7eadbd86a489c3c4ec4cd5ba9f6064f8 SHA512 021c5a88d50489aa0a1c7eac14259e23542b93578ae339995a2e38b786d06d239968c07933cab3fb78a922cffc7e213d6fa3fe07e34065a9c7f03e24f8729370 WHIRLPOOL a514bfaa4bb07121ee9194848573b4879e016c5df2c94aecd4410363e386c743d7a2559cc52b5ea7c984afa50360117f930b7db39aade489ed325a43a843aebf
-DIST NVIDIA-Linux-x86-340.102.run 38779756 SHA256 61b13d5dae0f6f5d788a4d8c4c98e8d971d19cb90b606058060d007946248828 SHA512 bea700c925a6044fcded40324bb389c5fa1aadc40831f685a76e7b0ded11161f492960950c201467e564d157dcbe0c330d13a2014f51d0073002c5a262a6f0ca WHIRLPOOL f7a3e3c5f8bb9eedf0a93104564d3d9c3eabc39a807c47e87f84373f89513afcafecb94e602b12fd24f872971f2d16a5f945326c670a6eebcd9ffcdcb70cb99e
 DIST NVIDIA-Linux-x86-340.104.run 38823602 SHA256 e39015f8e2c6c87037be340fd1899f703ac15356c5694ad8187cd67e71491cd1 SHA512 8dacd5345a5794e862f4106ab9e8e402defa7883dd176c243d019209b560fe955d7576a13936364c01c5a249f15df58208308c9378c12c3438784376e5fb806c WHIRLPOOL 8ec9722a0f986c902483c0a88db336f8bf6710e713f20606f309ee5682f6cc1d384054ea057720faff0eab211c69a30ca297a3776b67f3b8712e36bdcd298d38
-DIST NVIDIA-Linux-x86-375.39.run 44434734 SHA256 7f33f6572c5c5c57df71531749c7339309a2097918375685ea8018826cf19456 SHA512 0f4e784f69f7b4c4696b62779892d8e77aef0adb701dcf5e844027e3a1870aa56bb913bc05f30b079c2519bdda87fa0096d612e9d74ea35b97882fc54fa5d2ca WHIRLPOOL 1d1e6a49d86a72f38d3c84a0b75735c9b64b0bbc75bc54e91318b316298609dd34ab3affff5795fedba44133536e22bf287a76d8271bf0cee990204a383e8a93
-DIST NVIDIA-Linux-x86-375.66.run 44495924 SHA256 29220e249a308f89c2a6fa48be6a0009d58f082d07d3fedfbf4ab0015559f14c SHA512 9f890529cba18197dfb340cefdbb058fd7d4edae39c1ef19a398aaba782e66993257a9f3e93b3f43eb51463492644c0cdf2c5a4af612d6401ebc5427783ef94a WHIRLPOOL bc323f86c99c83f2e3ad3b28f47adfb483988dbcc8e828aedf0e57d1a98a0b7aaf93055076abe2c92f614744309ff47a76edbeb38567cf1daa04c85094abe3dd
 DIST NVIDIA-Linux-x86-375.82.run 44633335 SHA256 620629a35b1773e7eefddb9ea7982a4a75ecf65c1ea6f7ba83b94a84b269f561 SHA512 cbd6edd7490e0e5ef9dd2020c18eb5f75412993e06b9c4f1919f49a8ffdc36131a96d868ab51691fb5c4a661e826b000ec93363c9b168304f6498014e300bf24 WHIRLPOOL e32fc6ab5a76b1b5ccaebebaa1a46a99bdc25eefd824e095fe07b8bf30dc0644cf6e55c54b0d33cc89de598e8c154b5f285b0db863a8e7384923f3e716504b9c
 DIST NVIDIA-Linux-x86-378.13.run 44397547 SHA256 05e62a6098aac7373438ee381072253a861d56522f74948c2b714e20e69a46b1 SHA512 b96d2558a1003a3c66cade3a1e16abd34d855c0e27cdebacdc0495e0ba3cd5c68bb84cc5f81bff1b9ddce36ac52e0dc125c56d868b77d7c8e2f606d559b13b4a WHIRLPOOL e8231978664cec766813821c0f363ef437ba627debc2d2664164fe44c344c480c50799710dbeeee782fdacdb66b16317d69a9dec4f21d347dc40e471201b3ed1
 DIST NVIDIA-Linux-x86-381.22.run 42931990 SHA256 7b7dd6ee1c871dc5367fc207bba65077c3820a683decbfe6126fc70c0d1b9d08 SHA512 15723bfa25b0f39224ad5098c784a292abe4bf1daafaeb2f1df910bbab466e666b848b12e50b0bdd45f83e2d81957425a63501550b3dc5eb8fe3e576a8a10d22 WHIRLPOOL c01bec46411e3fc7f29cb38c6a16c8d50a3979cac1ce6a9e58feeb5878f6388f955cb95e0ecf71482c0fe9c1f57c989ecee6825bf921a0cf95c242f0a1ed3c23
-DIST NVIDIA-Linux-x86-384.59.run 47228533 SHA256 0c17658a4f874df43c02b521cd0a1357dfe2ea0b553be6b47ebae2e45323916c SHA512 09ceccb8c5bc136bb8ba75b8a15fc0cc08eb3680b6c5233b3dca4a1c55d14461d9adee2c686baff4173c8947c0bbc6dd52fcff5c1715a157015ecf4e802b214b WHIRLPOOL 72c05dfd9524a6551cf36fb2d1a8314414d756ee78735882aafee3c9f22ce906afacdcd0c38d781ff7056e330b14f71e5419fabdfa2811bd9cf7035e40ed0127
-DIST NVIDIA-Linux-x86-384.69.run 47081157 SHA256 3b70587582220ab1102bcb8386f206f89e6b146856af41f16eaa5910e54ef8fd SHA512 7bd55906111ed00bc8aef75a70ee636dc5a8fc22196a94d29cd651b5083b1974e45194ee7091dbb7db4f70706297bdf1c9e5f658500fc28323030684a3670663 WHIRLPOOL 3f1e26090a22d8ac44e0a3a8ea507878cdb7be5fa0666c1b01a68aa082659c144fd851ced7a94e02b2ecfefe1fa6361b56538af40abf28ee4edf4e04dea4eb16
 DIST NVIDIA-Linux-x86-384.90.run 46518269 SHA256 97a667de9fd7fdaa2f47b75d4049394224788931c2df2848de3f5553de810057 SHA512 4376be6ade4380f8416a7d07a77b2e71bf07f62488c6887d2023973ca57574a0c6d294327159d4a0cf12400e4156b48fa989e3a80615cefd25d918e6d558784f WHIRLPOOL 27c080472f1bb733d6bcfd1a6f2e1bbeb126fa7a9aa76b0dc1db9bdbf770951403fdce06ab1209b68839ce3ec9954bacf92ff6f96b263d9c1c22ff82dd3209b7
 DIST NVIDIA-Linux-x86-96.43.23-pkg0.run 11504817 SHA256 51e6adf4ba73071622045fc37169f80db3ae3e784dff53b29d35146a04042142 SHA512 bed5726e57637481fe4e3c03a65ec14fe949f00860e729ebde408f4fd861d7bfdc296a78bc2f5d42e8b282db09f4bbde1e0545df7228fa20227080dc4b868ba7 WHIRLPOOL 6d4fd1786c11f4e326cc3101d0bb1a2f8b63c25c3dd59f10188f8355759e2861ce44fd53d60258b513d5a1d6124d0f91ba8edf4d3668b6feabfb3e8d585f14fe
 DIST NVIDIA-Linux-x86_64-173.14.39-pkg2.run 21100833 SHA256 15a953666d5681ba54c97498b578ffd286a1dc96d605f3b02110f3f99813100e SHA512 a65cd496e6ed57f771c3d99f37f616a1242d97844f6faef7a807825ad899c0e536a99fde397020839f0857883b934032f9491024f3047a6b06d3eea1f5d77713 WHIRLPOOL dc5f243b7d1de7e2d1b7f005e018a2940d63335b11a7c83c234b348b7a1839e9131169d2ea928bd8c2f549a4535149b03e16e6c94d59dfa745f7f904ff790a45
-DIST NVIDIA-Linux-x86_64-304.135.run 69766944 SHA256 706269a507995544a24d24b3386d8f7bddbad3ce52167fae0da9e00dad8ab588 SHA512 1b444eb4af219506c88fdc78746eca1afb8571017858cb387d8546f1950d6d82c1077c74e9bda9ccebb0e42bc5cb4d50d9b8c01989ae4cb52c3fc069304b7ab5 WHIRLPOOL 1fdb38f634ad8e41e37e1fb7d84ffb22566b4c5e182aa90f6a034db99c251864759909ad0b9db77ed08645c0da50362e40bc37574f526d58bb3eece7c37772a6
 DIST NVIDIA-Linux-x86_64-304.137.run 70087133 SHA256 eb1f56db3a2bea13e3ccde7b5ae14abe8cd6c6dbe69af4c71c68a623cc96e3e2 SHA512 d7fae1e486005ffa2f2bf7f14f901bf5156fc784407a9acfea584f49bdab92ff5f4d0fb66c4c5b2800a461fc06aebb7d760bcb59f69ce4f2cb4e03e11816b3e9 WHIRLPOOL d6dee3634b0d6052c8fbaedc6e24c893af9c9d4f0f0a7836827bfaf26313f3877f398e6cfd22c27527c30dd37347206375d9c7e642cdc9a43a682bc787b1122b
-DIST NVIDIA-Linux-x86_64-340.102.run 69960567 SHA256 2b96d2f26c00405471e0ce10dca0b6639e91aeb43f7c5aadbdae28445a28df5a SHA512 eead5b6f18afd5384f30f36a9ef569dea7d6ca1dbc590f63d603694bcc6a8bf251942b36ca606cfd5e6775ef180cd564f3cf226a3f4c04d7ed354204fec15577 WHIRLPOOL 6596a178aa35ac841bf287fa1372f6748cda0430c6b4bcd18fa63d63030331df59e75d4a3dde63f28a6fa15cdfaa90d27136c96e9abe81fb05202f00430ecaa9
 DIST NVIDIA-Linux-x86_64-340.104.run 70085947 SHA256 baf131979e3eafb65239aa1863751d5893906eeb617ce7fb37253d69fa2b66a2 SHA512 3f7609e7a736ba7d77f96ea5561789113878c5cb85b2970ad5ae63acdd09c0f5bc6449a5ed7d948f85d684870dcc2b479c4e0d7d750a47dfd716940de72dba3f WHIRLPOOL a1ed77fea5740ae68ea1f226fbb2b6601394f23f475da4d18da55c022f5a83daf87241c9a06051607dfd301bcfb5885d1672da838bd436fc506b993b762e1c69
-DIST NVIDIA-Linux-x86_64-375.39.run 77264092 SHA256 91be5a20841678d671f32074e2901791fe12c00ce1f3b6b3c4199ce302da85a7 SHA512 9a7e865db44f8e65be257b26250adcdf6f3dfac4e164f14a42b8e03c576016dfedf152d6a6cb84fb3ae9930d2b4ba472a63cf32d557395ff7fa429d9b8c9ccd0 WHIRLPOOL 03a27813464847958d9d2adb0bc260e31c6458df18e567c4c36e1eac5f7288108f88147cf1115f360b159a6d0ab459692abb35a79879e19fec2db30709802df1
-DIST NVIDIA-Linux-x86_64-375.66.run 75096990 SHA256 59e37f570ba5f3d7148028e96684d77f347d49a54e3722189782fc9b17d201c0 SHA512 518534816da3e20e9b539e19b0e93340b6141aebe76989139aa130883106a68da74f9ef3692419e0b3c111a7c50ceb20e45ecdde53af78c7c709b4d51acb5164 WHIRLPOOL b09f2f0b32735e761e7508091d3e83c3b6f3224213a0cf7d83df914d581ef390a110cd2015dbec8cfb5f87ff1e0924d2d93335f8f9862ed65f6da867c236bd25
 DIST NVIDIA-Linux-x86_64-375.82.run 77461911 SHA256 11c40ea70d13d5b251531875afa264a2347f2fd122f7fd68c71d50861c7df2c3 SHA512 6da63b807d6dd7cc8ac2b794d5c9ab8383e3c0ce6a47adc600941545509fb40b5f06344781afc895bd83f2780b2bce187994df5684db2890f50b41adfee8f910 WHIRLPOOL e95000830bde425b61c3c7f9f1e99eff10ae26b2467afd35aebb95735182cf4f3b56900f0c6e808616089121138fa17b3c83ceec414fde379676815f67bd9cc8
 DIST NVIDIA-Linux-x86_64-378.13.run 76239469 SHA256 3de379249ef25a8c10a24be2718bf1cb2e338da204e37874c4a0c66dbcdf42ee SHA512 2f6789aa0a400c035c0a074631dc5c26abb4f8a62efe928ca3a2865b89d29acfc09c27f23a664e438275e4bfd25c261745d4d495f9aca5f54ee6c53a389059d2 WHIRLPOOL 6e8dcc7be0981591f377babbd9e1430fddeac9a42291f36a95243d418882bc8b38a1e692e2fd62d4b785feca93165e54a64c015bd99193c699831465f512b180
 DIST NVIDIA-Linux-x86_64-381.22.run 76581130 SHA256 1a3ea8a19fbf650774e5ecd86caa5ef950971958226ed04020b0e6e29b4dd28d SHA512 669a3dd0896d68ba8eef4689b01971b92ec1c54e6cf2a9ff8d3f281ae9f2fe402f079e76109b65e698d76798bcc7a9bb43da9d128fec59ac1fafafd1c4a1e42c WHIRLPOOL 6e80c1fa813bf2930c3d47198e0e382c96ed5c5bc7ba9713e55e61e3fe2ab12c7b28526b4940b15b74e19169c1579151272bdc4033641158012c8f6a56736c3b
-DIST NVIDIA-Linux-x86_64-384.59.run 81794848 SHA256 7b53bdee6e396cb271b57f77455fe5c561e655ca3fbba015dae0de3d6c11542b SHA512 e31c8e08b43131f6ed6c092a7e9086a1fc029ae06b3ec3cd059e939e890b177fc782414114dc432142354c96d1fddf43d90b20da03308fa7a96dc2830fade786 WHIRLPOOL 5816ccc8e6e7b1d0f7f3c8404e917fc5a6d6488e0a69a6b00e5b965926ba236dc770364528007e2af190d2a5f586d3a60328871e76291e4eee83a04bedda46f8
-DIST NVIDIA-Linux-x86_64-384.69.run 80803084 SHA256 a7b7984fc532be17c262bc4353e279824ae63625d8ae9f1016cb66d199b97650 SHA512 3d479c200c4dea3dc60131102c0eef0b55b5035717b88ccc3820e7168650b24ffca1433383f5f6c4d6472af9636aab632d5f04e20973f5d957372047cac58392 WHIRLPOOL e8dbd67b964355a416fd7e81a61406fe192ad7ea91abc2ed54dbf952fd5a6e514aded80f8d7e917d1db66dabf31bb3052251e3912499553d4656e022d42e4299
 DIST NVIDIA-Linux-x86_64-384.90.run 80833580 SHA256 0ddf6820f2fcca3ec3021e42a028f8bc08bca123fcea4c0c3f41c8c0ffa5febd SHA512 f47d3bad9229c837c37a75ed5b189f688c8d05230762f58494f0e744610ea19046cae4cd61d0f3b63d4e1cde50590497f600ef36a48f65f489e4c2067a05d0d3 WHIRLPOOL 36d7ddbacbb8945457ef912ca46181786e4bc48677df42a4340824fe3dc169b231ea140a75dd31dc3052b08f272d1fef1a92868527e65850593299e75dd0d116
 DIST NVIDIA-Linux-x86_64-96.43.23-pkg2.run 15962375 SHA256 ce8d8253e7dab7da63fbdac449ebf190cd0c10cbfffea0f8d0165515f851bc64 SHA512 04bec1187a6024a2b9839f008ec829281f1f2602dae2e639030bc385943186506bcaa2b46a230b2ab87f9217190841abc62f9e2d6395ab5559623389c31c6563 WHIRLPOOL 0651c44a51a1a06fcff5bfddbf9c3e408977e03263c7fe806cb6c01f9fe92f716dfe4e5190ffe1048bde72fcffdc8bca8267e74dd43ba5c9dfb22b6201fcc2bb
-DIST nvidia-settings-304.135.tar.bz2 1480857 SHA256 f5431a6547d7727506b72616156c18f927a89c0702e7f939b5043fdb66e4faf8 SHA512 ce77819c223d02bc5330a57047b45cf9022159b0d03b3fb1572a64aebbcb5872312acef3f56e2574acc4c2c92eae9ac6e602327fd2658c47f2b97c69cf61ebfb WHIRLPOOL 5fc6c4ada22d8a1b0cade4049691c013a5dfa0a7777d7789f310d363c9c4ed5cb724acc153ec562fcc2266228325096e3f733e8f1517a74c047388a4361d25d8
 DIST nvidia-settings-304.137.tar.bz2 1481361 SHA256 b1de2296add50c2c67f8c0e08ae231ca707edb15c1b3db517c4b4d69b0b3bf44 SHA512 676d1f70c9a78ee234f5f1a283412430a386fa604de211afba02806a45906c5e246a002989b724d74752178d28c92a268de1c98d4c87876797d991253f16b0cc WHIRLPOOL d5f57bb3d72906fe3b387a05c454ecd4fe4f59a6c4536baebff3a3840498b85a2b44ed3a44a91a561b3c56690e8d0943b3ba9fddd219b6948e22a4cdbf79c203
-DIST nvidia-settings-340.102.tar.bz2 1550093 SHA256 2895d4e2597a6ea0c425d74c7a0808775065f5cf58397fbbe6e626b00c60a55a SHA512 1ab190d8bcba7cc39d47f38db2bee28fab48d48c9a6674c9ff29ea3f51103e13746ee1df2d30581bd8259fc1104fed90b36cba88907bb2f202c931d256eab66a WHIRLPOOL 58105b371bc7156c2749f4bf85377f06fca71eb0a933721d70987aa53bb6c94494de3be25363ccf326105ca475405dcd7c884ceb6158df352ac6cc70dcffbf7e
 DIST nvidia-settings-340.104.tar.bz2 1549760 SHA256 b3eb8335dc6476bf5804f936f725320e2ca0d8d19ba7f5a4f35134ba6bc477ef SHA512 d4277ef0ce87ee7baf2c5155ca8d93e8db2483329053c541b6a605653f4a6883aad81ebdc45b4c60aa78b72bd4c6c88e5b1327cc4cd2f540fcee8dbd7edc3e53 WHIRLPOOL 4ef3ceb3f069c4b61f3a0c1557951a93890fc287bfa34ffca215c06bcd0c88537238f2b576ece9d42ad718e1d314eb0e7675922e900767d07d25574f805b2609
-DIST nvidia-settings-375.39.tar.gz 2112268 SHA256 71b651872f2f56dcb6f2c0498543da22027d71d0d5dce3b6a4e98425d0ec6d4c SHA512 e445bbdbfcca70b3e1f478219d3f13c5bea543e3b4d5c4a986f3e97ffd6d0c7cf78da98991316b81924b05d201f1dba48deec6263e0c28a2fb6d520008e390a2 WHIRLPOOL 6191581851e43ece748d670731566fbdeae77446cc54be1d48caf5c4f66e543409266ca54c1aca06a72ce4dfc9fa5a47a6d66783234a3a84d388a8b11e43cffa
-DIST nvidia-settings-375.66.tar.gz 2114252 SHA256 3a93d845be4a94f03e9768ee78d9f24ef8bd302e30b66e81a5a784356dcc36e9 SHA512 93933a86faa3525d99176e08a8dd943b06b7c4236e85636a765e2a1476d3f22afbfc1066208987542fc5dd26c9bb3239a75838add8c64f6abc4cdea5c02338e5 WHIRLPOOL d1c36169edf682c2a2872122a9d42654cd88f36048cdaf9b6ab6c13276301eb545f04092bc39d52c35890d11ad4acd3eb48f013b16ccfa8f3d5ce32f251b690b
 DIST nvidia-settings-375.82.tar.gz 2114647 SHA256 11cc6afaa2472520090d966910fc1b0465c6cc903fe05ed80b3f54924a106b69 SHA512 7a374be56c8be52767d73a048029d9e55dc2abcf2f6a97eb4931544c927c85a1103a206be9e8d1ffcef36fec2caf2416f33699ad4d51e7dca17e4e844c37a595 WHIRLPOOL 2eb7de30119615460ffa4f37cd35f515e493c34b4c7e8d110b64a17bd919f32372f601f8418acbeb6021adb37528c5ad09da8678c569e72dddf9eff174b88c06
 DIST nvidia-settings-378.13.tar.gz 2112676 SHA256 a446ec3553f3fd16f60a0cf42cf9cf078cb3911595bb518649c489334422e85a SHA512 6f5fda9c54b067e21f2c869bcfb7c799c99f584d769020cb15e8764f59183e6a6469919ec48bce47be2144910d0004a9ca221df4a9e4fa9ab9f18710b36fa420 WHIRLPOOL 2eb475a8808bdc8380eb92c4189f2ca5aabc839d466efaaaeef6737aa8a75014e3252fd3d4a1344cede268c3bafa52ddb07057aa500ac6f626382e220326474b
 DIST nvidia-settings-381.22.tar.gz 2127491 SHA256 83cade551b43055bf93d7ca7e5911a4c61a9e7bea7d88b4c57aa885e82165e29 SHA512 79cd41b9c0e63b69574caddb62437132810ecb4cd07b90899976ae8535948f28d72021fc9a6969559909cf0f7a5d411b0202782970d64a82c636e7738c9d5681 WHIRLPOOL dfd0a4c568aa6ff1946fbe7c68f0c8cf8721c46bbe5dc82987ed900ca4b275781e7d1784e3094472ad9748c4008b5639791dcf51993b73aaeb03ce9a8e3a524c
-DIST nvidia-settings-384.59.tar.gz 2133723 SHA256 2ba5d254b2cbc35aca7862f6d7cbac8b6aabd9c082f7feaff7fba7b3a6a32caf SHA512 5556858f02f5d2b7a5b2fb6073902e98dc7d39267186cc47b810f07463e8507162bdffdf20f15e569766f05b411376a9002796979fc35a01b30aed821f0c3c47 WHIRLPOOL fcfd47ef9b5c3b9b40d62f3f7ec801d65c4efb99756dc727d5c050b1ae12a6fface409188b041c97b6e2d6daa3011d6e0b09cea6b1d7bee48907df38ce02101b
-DIST nvidia-settings-384.69.tar.gz 2137487 SHA256 7f8f377218bea06cf64fc8e30d969ac7e96c95e56d4c38c77c9dd2531cc34aca SHA512 3017be97f57c3f3792fefdc043e0bcc3c28c2dff9c6864dcd3a18e29c3dd4d2048e121a1e1d23310e80a3a132472d6e7e2db22ac7544f792aa7b3e112bc428c5 WHIRLPOOL 1a33e42863ec45277fa39481196520f7be8209be2396107133b64ff577577594c9a76ca5ea04e483e6ac21ef7340ab1bf433dd0707766051c85ee0421076e2e1
 DIST nvidia-settings-384.90.tar.gz 2137511 SHA256 eca3d2bf55e680ca1726163035dbe39655b9eec21d3c953dda4a67818d3908ec SHA512 d5c78844af1e0faaefd523347dc3dd3f17a49e9d0ac87b64b4177f06743ff7e06e1a3e454ad54e805c1f976cced6b7f45bfa851334005e58f84f8401b26202af WHIRLPOOL 957c9d6f66e647f181367e02eaff71fcf1772f5468bdb1986da593d08713960d4f4be7a7a99bb991e9a2c44a002293a505c18afae23422c9353a1fec51f40b7c

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-304.135-endif.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-304.135-endif.patch
deleted file mode 100644
index f902c742b74..00000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-304.135-endif.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/kernel/os-agp.c
-+++ b/kernel/os-agp.c
-@@ -180,8 +180,8 @@
-     {
-         nv_mtrr_del(nv->agp.arch_phys_wc_add_token, agp_info.aper_base,
-                     agp_info.aper_size << 20);
--#endif
-     }
-+#endif
- release:
-     NV_AGPGART_BACKEND_RELEASE(drm_agp_p, nvl->agp_bridge);
- bailout:

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.39-profiles-rc.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.39-profiles-rc.patch
deleted file mode 100644
index cb62f8dcbe5..00000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.39-profiles-rc.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/nvidia-application-profiles-375.39-rc
-+++ b/nvidia-application-profiles-375.39-rc
-@@ -48,7 +48,7 @@
-         {
-           "name" : "NoEnforceShaderInputOutputMatching",
-           "settings" : [ "GLShaderPortabilityWarnings", false ]
--        },
-+        }
-     ],
-     "rules" : [
-         {

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.66-profiles-rc.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.66-profiles-rc.patch
deleted file mode 100644
index 33e77f300af..00000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.66-profiles-rc.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/nvidia-application-profiles-375.66-rc
-+++ b/nvidia-application-profiles-375.66-rc
-@@ -48,7 +48,7 @@
-         {
-           "name" : "NoEnforceShaderInputOutputMatching",
-           "settings" : [ "GLShaderPortabilityWarnings", false ]
--        },
-+        }
-     ],
-     "rules" : [
-         {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-304.135-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-304.135-r1.ebuild
deleted file mode 100644
index 28804d50042..00000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-304.135-r1.ebuild
+++ /dev/null
@@ -1,498 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
-	portability toolchain-funcs unpacker user versionator udev
-
-NV_URI="http://http.download.nvidia.com/XFree86/"
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
-X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
-SRC_URI="
-	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
-	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
-	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
-	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
-	tools? ( ${NV_URI}nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
-"
-
-LICENSE="GPL-2 NVIDIA-r1"
-SLOT="0/${PV%.*}"
-KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
-IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools +X"
-RESTRICT="bindist mirror"
-EMULTILIB_PKG="true"
-
-COMMON="
-	app-eselect/eselect-opencl
-	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
-	tools? (
-		dev-libs/atk
-		dev-libs/glib:2
-		x11-libs/gdk-pixbuf[X]
-		x11-libs/gtk+:2
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/pango[X]
-		x11-libs/pangox-compat
-	)
-	X? (
-		>=app-eselect/eselect-opengl-1.0.9
-	)
-"
-DEPEND="${COMMON}
-	kernel_linux? (
-		virtual/linux-sources
-		virtual/pkgconfig
-	)"
-RDEPEND="${COMMON}
-	acpi? ( sys-power/acpid )
-	tools? ( !media-video/nvidia-settings )
-	X? (
-		<x11-base/xorg-server-1.19.99:=
-		>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
-		sys-libs/zlib[${MULTILIB_USEDEP}]
-		x11-libs/libXvMC[${MULTILIB_USEDEP}]
-	)
-"
-PDEPEND="X? ( >=x11-libs/libvdpau-0.3-r1[${MULTILIB_USEDEP}] )"
-
-REQUIRED_USE="
-	tools? ( X )
-	static-libs? ( tools )
-"
-
-QA_PREBUILT="opt/* usr/lib*"
-
-S=${WORKDIR}/
-
-nvidia_drivers_versions_check() {
-	if use amd64 && has_multilib_profile && \
-		[ "${DEFAULT_ABI}" != "amd64" ]; then
-		eerror "This ebuild doesn't currently support changing your default ABI"
-		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
-	fi
-
-	if use kernel_linux && kernel_is ge 4 10; then
-		ewarn "Gentoo supports kernels which are supported by NVIDIA"
-		ewarn "which are limited to the following kernels:"
-		ewarn "<sys-kernel/gentoo-sources-4.10"
-		ewarn "<sys-kernel/vanilla-sources-4.10"
-		ewarn ""
-		ewarn "You are free to utilize eapply_user to provide whatever"
-		ewarn "support you feel is appropriate, but will not receive"
-		ewarn "support as a result of those changes."
-		ewarn ""
-		ewarn "Do not file a bug report about this."
-		ewarn ""
-	fi
-
-	# Since Nvidia ships many different series of drivers, we need to give the user
-	# some kind of guidance as to what version they should install. This tries
-	# to point the user in the right direction but can't be perfect. check
-	# nvidia-driver.eclass
-	nvidia-driver-check-warning
-
-	# Kernel features/options to check for
-	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
-	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
-
-	# Now do the above checks
-	use kernel_linux && check_extra_config
-}
-
-pkg_pretend() {
-	nvidia_drivers_versions_check
-}
-
-pkg_setup() {
-	nvidia_drivers_versions_check
-
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	if use kernel_linux; then
-		linux-mod_pkg_setup
-		MODULE_NAMES="nvidia(video:${S}/kernel)"
-		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
-		# linux-mod_src_compile calls set_arch_to_kernel, which
-		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
-		# expects x86_64 or i386 and then converts it to x86
-		# later on in the build process
-		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
-	fi
-
-	# set variables to where files are in the package structure
-	if use kernel_FreeBSD; then
-		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
-		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
-		NV_DOC="${S}/doc"
-		NV_OBJ="${S}/obj"
-		NV_SRC="${S}/src"
-		NV_MAN="${S}/x11/man"
-		NV_X11="${S}/obj"
-		NV_SOVER=1
-	elif use kernel_linux; then
-		NV_DOC="${S}"
-		NV_OBJ="${S}"
-		NV_SRC="${S}/kernel"
-		NV_MAN="${S}"
-		NV_X11="${S}"
-		NV_SOVER=${PV}
-	else
-		die "Could not determine proper NVIDIA package"
-	fi
-}
-
-src_prepare() {
-	# Please add a brief description for every added patch
-
-	if use kernel_linux; then
-		eapply "${FILESDIR}"/${P}-endif.patch
-
-		if kernel_is lt 2 6 9 ; then
-			eerror "You must build this against 2.6.9 or higher kernels."
-		fi
-
-		# If greater than 2.6.5 use M= instead of SUBDIR=
-		convert_to_m "${NV_SRC}"/Makefile.kbuild
-	fi
-
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-pax-const.patch
-		eapply "${FILESDIR}"/${PN}-pax-usercopy.patch
-	fi
-
-	cat <<- EOF > "${S}"/nvidia.icd
-		/usr/$(get_libdir)/libnvidia-opencl.so
-	EOF
-
-	local man_file
-	for man_file in "${NV_MAN}"/*1.gz; do
-		gunzip $man_file || die
-	done
-
-	# Allow user patches so they can support RC kernels and whatever else
-	eapply_user
-}
-
-src_compile() {
-	# This is already the default on Linux, as there's no toplevel Makefile, but
-	# on FreeBSD there's one and triggers the kernel module build, as we install
-	# it by itself, pass this.
-
-	cd "${NV_SRC}"
-	if use kernel_FreeBSD; then
-		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
-			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
-	elif use kernel_linux; then
-		MAKEOPTS=-j1 linux-mod_src_compile
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl clean
-		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
-			AR="$(tc-getAR)" \
-			CC="$(tc-getCC)" \
-			RANLIB="$(tc-getRANLIB)" \
-			libXNVCtrl.a
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			AR="$(tc-getAR)" \
-			CC="$(tc-getCC)" \
-			LD="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NVML_ENABLED=0 \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			RANLIB="$(tc-getRANLIB)" \
-			STRIP_CMD=true
-	fi
-}
-
-# Install nvidia library:
-# the first parameter is the library to install
-# the second parameter is the provided soversion
-# the third parameter is the target directory if its not /usr/lib
-donvidia() {
-	# Full path to library minus SOVER
-	MY_LIB="$1"
-
-	# SOVER to use
-	MY_SOVER="$2"
-
-	# Where to install
-	MY_DEST="$3"
-
-	if [[ -z "${MY_DEST}" ]]; then
-		MY_DEST="/usr/$(get_libdir)"
-		action="dolib.so"
-	else
-		exeinto ${MY_DEST}
-		action="doexe"
-	fi
-
-	# Get just the library name
-	libname=$(basename $1)
-
-	# Install the library with the correct SOVER
-	${action} ${MY_LIB}.${MY_SOVER} || \
-		die "failed to install ${libname}"
-
-	# If SOVER wasn't 1, then we need to create a .1 symlink
-	if [[ "${MY_SOVER}" != "1" ]]; then
-		dosym ${libname}.${MY_SOVER} \
-			${MY_DEST}/${libname}.1 || \
-			die "failed to create ${libname} symlink"
-	fi
-
-	# Always create the symlink from the raw lib to the .1
-	dosym ${libname}.1 \
-		${MY_DEST}/${libname} || \
-		die "failed to create ${libname} symlink"
-}
-
-src_install() {
-	if use kernel_linux; then
-		linux-mod_src_install
-
-		# Add the aliases
-		# This file is tweaked with the appropriate video group in
-		# pkg_preinst, see bug #491414
-		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-
-		# Ensures that our device nodes are created when not using X
-		exeinto "$(get_udevdir)"
-		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
-		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
-	elif use kernel_FreeBSD; then
-		if use x86-fbsd; then
-			insinto /boot/modules
-			doins "${S}/src/nvidia.kld"
-		fi
-
-		exeinto /boot/modules
-		doexe "${S}/src/nvidia.ko"
-	fi
-
-	# NVIDIA kernel <-> userspace driver config lib
-	donvidia "${NV_OBJ}"/libnvidia-cfg.so ${NV_SOVER}
-
-	if use kernel_linux; then
-		# NVIDIA video decode <-> CUDA
-		donvidia "${NV_OBJ}"/libnvcuvid.so ${NV_SOVER}
-	fi
-
-	if use X; then
-		# Xorg DDX driver
-		insinto /usr/$(get_libdir)/xorg/modules/drivers
-		doins "${NV_X11}"/nvidia_drv.so
-
-		# Xorg GLX driver
-		donvidia "${NV_X11}"/libglx.so ${NV_SOVER} \
-			/usr/$(get_libdir)/opengl/nvidia/extensions
-
-		# XvMC driver
-		dolib.a "${NV_X11}"/libXvMCNVIDIA.a || \
-			die "failed to install libXvMCNVIDIA.so"
-		donvidia "${NV_X11}"/libXvMCNVIDIA.so ${NV_SOVER}
-		dosym libXvMCNVIDIA.so.${NV_SOVER} \
-			/usr/$(get_libdir)/libXvMCNVIDIA_dynamic.so.1 || \
-			die "failed to create libXvMCNVIDIA_dynamic.so symlink"
-	fi
-
-	# OpenCL ICD for NVIDIA
-	if use kernel_linux; then
-		insinto /etc/OpenCL/vendors
-		doins nvidia.icd
-		donvidia "${NV_OBJ}"/libnvidia-opencl.so ${NV_SOVER}
-	fi
-
-	# Documentation
-	dodoc -r "${NV_DOC}"/html
-	if use kernel_FreeBSD; then
-		dodoc "${NV_DOC}"/README
-		use X && doman "${NV_MAN}"/nvidia-xconfig.1
-		use tools && doman "${NV_MAN}"/nvidia-settings.1
-	else
-		# Docs
-		newdoc "${NV_DOC}"/README.txt README
-		dodoc "${NV_DOC}"/NVIDIA_Changelog
-		doman "${NV_MAN}"/nvidia-smi.1
-		use X && doman "${NV_MAN}"/nvidia-xconfig.1
-		use tools && doman "${NV_MAN}"/nvidia-settings.1
-		doman "${NV_MAN}"/nvidia-cuda-proxy-control.1
-	fi
-
-	# Helper Apps
-	exeinto /opt/bin/
-
-	if use X; then
-		doexe "${NV_OBJ}"/nvidia-xconfig
-	fi
-
-	if use kernel_linux ; then
-		doexe "${NV_OBJ}"/nvidia-debugdump
-		doexe "${NV_OBJ}"/nvidia-cuda-proxy-control
-		doexe "${NV_OBJ}"/nvidia-cuda-proxy-server
-		doexe "${NV_OBJ}"/nvidia-smi
-		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
-	fi
-
-	dobin "${NV_OBJ}"/nvidia-bug-report.sh
-
-	# Desktop entries for nvidia-settings
-	if use tools ; then
-		emake -C "${S}"/nvidia-settings-${PV}/src/ \
-			DESTDIR="${D}" \
-			LIBDIR="${D}/usr/$(get_libdir)" \
-			PREFIX=/usr \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			install
-
-		if use static-libs; then
-			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
-
-			insinto /usr/include/NVCtrl
-			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
-		fi
-
-		# There is no icon in the FreeBSD tarball.
-		use kernel_FreeBSD || \
-			doicon "${NV_OBJ}"/nvidia-settings.png
-
-		domenu "${FILESDIR}"/nvidia-settings.desktop
-
-		exeinto /etc/X11/xinit/xinitrc.d
-		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-	fi
-
-	#doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
-
-	if has_multilib_profile && use multilib ; then
-		local OABI=${ABI}
-		for ABI in $(get_install_abis) ; do
-			src_install-libs
-		done
-		ABI=${OABI}
-		unset OABI
-	else
-		src_install-libs
-	fi
-
-	is_final_abi || die "failed to iterate through all ABIs"
-
-	readme.gentoo_create_doc
-}
-
-src_install-libs() {
-	local inslibdir=$(get_libdir)
-	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
-	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
-	local nv_libdir="${NV_OBJ}"
-
-	if use kernel_linux && has_multilib_profile && \
-			[[ ${ABI} == "x86" ]] ; then
-		nv_libdir="${NV_OBJ}"/32
-	fi
-
-	if use X; then
-		# The GLX libraries
-		donvidia "${nv_libdir}"/libGL.so ${NV_SOVER} ${GL_ROOT}
-		donvidia "${nv_libdir}"/libnvidia-glcore.so ${NV_SOVER}
-		if use kernel_FreeBSD; then
-			donvidia "${nv_libdir}"/libnvidia-tls.so ${NV_SOVER} ${GL_ROOT}
-		else
-			donvidia "${nv_libdir}"/tls/libnvidia-tls.so ${NV_SOVER} ${GL_ROOT}
-		fi
-
-		# VDPAU
-		donvidia "${nv_libdir}"/libvdpau_nvidia.so ${NV_SOVER}
-	fi
-
-	# NVIDIA monitoring library
-	if use kernel_linux ; then
-		donvidia "${nv_libdir}"/libnvidia-ml.so ${NV_SOVER}
-	fi
-
-	# CUDA & OpenCL
-	if use kernel_linux; then
-		donvidia "${nv_libdir}"/libcuda.so ${NV_SOVER}
-		donvidia "${nv_libdir}"/libnvidia-compiler.so ${NV_SOVER}
-		donvidia "${nv_libdir}"/libOpenCL.so 1.0.0 ${CL_ROOT}
-	fi
-}
-
-pkg_preinst() {
-	if use kernel_linux; then
-		linux-mod_pkg_preinst
-
-		local videogroup="$(egetent group video | cut -d ':' -f 3)"
-		if [ -z "${videogroup}" ]; then
-			eerror "Failed to determine the video group gid"
-			die "Failed to determine the video group gid"
-		else
-			sed -i \
-				-e "s:PACKAGE:${PF}:g" \
-				-e "s:VIDEOGID:${videogroup}:" \
-				"${D}"/etc/modprobe.d/nvidia.conf || die
-		fi
-	fi
-
-	# Clean the dynamic libGL stuff's home to ensure
-	# we dont have stale libs floating around
-	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
-		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
-	fi
-	# Make sure we nuke the old nvidia-glx's env.d file
-	if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
-		rm -f "${ROOT}"/etc/env.d/09nvidia
-	fi
-}
-
-pkg_postinst() {
-	use kernel_linux && linux-mod_pkg_postinst
-
-	# Switch to the nvidia implementation
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
-	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
-
-	readme.gentoo_print_elog
-
-	if ! use X; then
-		elog "You have elected to not install the X.org driver. Along with"
-		elog "this the OpenGL libraries, XvMC, and VDPAU libraries were not"
-		elog "installed. Additionally, once the driver is loaded your card"
-		elog "and fan will run at max speed which may not be desirable."
-		elog "Use the 'nvidia-smi' init script to have your card and fan"
-		elog "speed scale appropriately."
-		elog
-	fi
-	if ! use tools; then
-		elog "USE=tools controls whether the nvidia-settings application"
-		elog "is installed. If you would like to use it, enable that"
-		elog "flag and re-emerge this ebuild. Optionally you can install"
-		elog "media-video/nvidia-settings"
-		elog
-	fi
-}
-
-pkg_prerm() {
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}
-
-pkg_postrm() {
-	use kernel_linux && linux-mod_pkg_postrm
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-304.135.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-304.135.ebuild
deleted file mode 100644
index 4a3c1c5a612..00000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-304.135.ebuild
+++ /dev/null
@@ -1,493 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
-	portability toolchain-funcs unpacker user versionator udev
-
-NV_URI="http://http.download.nvidia.com/XFree86/"
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
-X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
-SRC_URI="
-	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
-	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
-	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
-	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
-	tools? ( ${NV_URI}nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
-"
-
-LICENSE="GPL-2 NVIDIA-r1"
-SLOT="0/${PV%.*}"
-KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
-IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools +X"
-RESTRICT="bindist mirror"
-EMULTILIB_PKG="true"
-
-COMMON="
-	app-eselect/eselect-opencl
-	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
-	tools? (
-		dev-libs/atk
-		dev-libs/glib:2
-		x11-libs/gdk-pixbuf[X]
-		x11-libs/gtk+:2
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/pango[X]
-		x11-libs/pangox-compat
-	)
-	X? (
-		>=app-eselect/eselect-opengl-1.0.9
-	)
-"
-DEPEND="${COMMON}
-	kernel_linux? (
-		virtual/linux-sources
-		virtual/pkgconfig
-	)"
-RDEPEND="${COMMON}
-	acpi? ( sys-power/acpid )
-	tools? ( !media-video/nvidia-settings )
-	X? (
-		<x11-base/xorg-server-1.19.99:=
-		>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
-		sys-libs/zlib[${MULTILIB_USEDEP}]
-		x11-libs/libXvMC[${MULTILIB_USEDEP}]
-	)
-"
-PDEPEND="X? ( >=x11-libs/libvdpau-0.3-r1[${MULTILIB_USEDEP}] )"
-
-REQUIRED_USE="
-	tools? ( X )
-	static-libs? ( tools )
-"
-
-QA_PREBUILT="opt/* usr/lib*"
-
-S=${WORKDIR}/
-
-nvidia_drivers_versions_check() {
-	if use amd64 && has_multilib_profile && \
-		[ "${DEFAULT_ABI}" != "amd64" ]; then
-		eerror "This ebuild doesn't currently support changing your default ABI"
-		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
-	fi
-
-	if use kernel_linux && kernel_is ge 4 10; then
-		ewarn "Gentoo supports kernels which are supported by NVIDIA"
-		ewarn "which are limited to the following kernels:"
-		ewarn "<sys-kernel/gentoo-sources-4.10"
-		ewarn "<sys-kernel/vanilla-sources-4.10"
-		ewarn ""
-		ewarn "You are free to utilize eapply_user to provide whatever"
-		ewarn "support you feel is appropriate, but will not receive"
-		ewarn "support as a result of those changes."
-		ewarn ""
-		ewarn "Do not file a bug report about this."
-		ewarn ""
-	fi
-
-	# Since Nvidia ships many different series of drivers, we need to give the user
-	# some kind of guidance as to what version they should install. This tries
-	# to point the user in the right direction but can't be perfect. check
-	# nvidia-driver.eclass
-	nvidia-driver-check-warning
-
-	# Kernel features/options to check for
-	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
-	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
-
-	# Now do the above checks
-	use kernel_linux && check_extra_config
-}
-
-pkg_pretend() {
-	nvidia_drivers_versions_check
-}
-
-pkg_setup() {
-	nvidia_drivers_versions_check
-
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	if use kernel_linux; then
-		linux-mod_pkg_setup
-		MODULE_NAMES="nvidia(video:${S}/kernel)"
-		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
-		# linux-mod_src_compile calls set_arch_to_kernel, which
-		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
-		# expects x86_64 or i386 and then converts it to x86
-		# later on in the build process
-		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
-	fi
-
-	# set variables to where files are in the package structure
-	if use kernel_FreeBSD; then
-		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
-		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
-		NV_DOC="${S}/doc"
-		NV_OBJ="${S}/obj"
-		NV_SRC="${S}/src"
-		NV_MAN="${S}/x11/man"
-		NV_X11="${S}/obj"
-		NV_SOVER=1
-	elif use kernel_linux; then
-		NV_DOC="${S}"
-		NV_OBJ="${S}"
-		NV_SRC="${S}/kernel"
-		NV_MAN="${S}"
-		NV_X11="${S}"
-		NV_SOVER=${PV}
-	else
-		die "Could not determine proper NVIDIA package"
-	fi
-}
-
-src_prepare() {
-	# Please add a brief description for every added patch
-
-	if use kernel_linux; then
-		eapply "${FILESDIR}"/${P}-endif.patch
-
-		if kernel_is lt 2 6 9 ; then
-			eerror "You must build this against 2.6.9 or higher kernels."
-		fi
-
-		# If greater than 2.6.5 use M= instead of SUBDIR=
-		convert_to_m "${NV_SRC}"/Makefile.kbuild
-	fi
-
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-pax-const.patch
-		eapply "${FILESDIR}"/${PN}-pax-usercopy.patch
-	fi
-
-	cat <<- EOF > "${S}"/nvidia.icd
-		/usr/$(get_libdir)/libnvidia-opencl.so
-	EOF
-
-	# Allow user patches so they can support RC kernels and whatever else
-	eapply_user
-}
-
-src_compile() {
-	# This is already the default on Linux, as there's no toplevel Makefile, but
-	# on FreeBSD there's one and triggers the kernel module build, as we install
-	# it by itself, pass this.
-
-	cd "${NV_SRC}"
-	if use kernel_FreeBSD; then
-		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
-			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
-	elif use kernel_linux; then
-		MAKEOPTS=-j1 linux-mod_src_compile
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl clean
-		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
-			AR="$(tc-getAR)" \
-			CC="$(tc-getCC)" \
-			RANLIB="$(tc-getRANLIB)" \
-			libXNVCtrl.a
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			AR="$(tc-getAR)" \
-			CC="$(tc-getCC)" \
-			LD="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NVML_ENABLED=0 \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			RANLIB="$(tc-getRANLIB)" \
-			STRIP_CMD=true
-	fi
-}
-
-# Install nvidia library:
-# the first parameter is the library to install
-# the second parameter is the provided soversion
-# the third parameter is the target directory if its not /usr/lib
-donvidia() {
-	# Full path to library minus SOVER
-	MY_LIB="$1"
-
-	# SOVER to use
-	MY_SOVER="$2"
-
-	# Where to install
-	MY_DEST="$3"
-
-	if [[ -z "${MY_DEST}" ]]; then
-		MY_DEST="/usr/$(get_libdir)"
-		action="dolib.so"
-	else
-		exeinto ${MY_DEST}
-		action="doexe"
-	fi
-
-	# Get just the library name
-	libname=$(basename $1)
-
-	# Install the library with the correct SOVER
-	${action} ${MY_LIB}.${MY_SOVER} || \
-		die "failed to install ${libname}"
-
-	# If SOVER wasn't 1, then we need to create a .1 symlink
-	if [[ "${MY_SOVER}" != "1" ]]; then
-		dosym ${libname}.${MY_SOVER} \
-			${MY_DEST}/${libname}.1 || \
-			die "failed to create ${libname} symlink"
-	fi
-
-	# Always create the symlink from the raw lib to the .1
-	dosym ${libname}.1 \
-		${MY_DEST}/${libname} || \
-		die "failed to create ${libname} symlink"
-}
-
-src_install() {
-	if use kernel_linux; then
-		linux-mod_src_install
-
-		# Add the aliases
-		# This file is tweaked with the appropriate video group in
-		# pkg_preinst, see bug #491414
-		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-
-		# Ensures that our device nodes are created when not using X
-		exeinto "$(get_udevdir)"
-		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
-		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
-	elif use kernel_FreeBSD; then
-		if use x86-fbsd; then
-			insinto /boot/modules
-			doins "${S}/src/nvidia.kld"
-		fi
-
-		exeinto /boot/modules
-		doexe "${S}/src/nvidia.ko"
-	fi
-
-	# NVIDIA kernel <-> userspace driver config lib
-	donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
-
-	if use kernel_linux; then
-		# NVIDIA video decode <-> CUDA
-		donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
-	fi
-
-	if use X; then
-		# Xorg DDX driver
-		insinto /usr/$(get_libdir)/xorg/modules/drivers
-		doins ${NV_X11}/nvidia_drv.so
-
-		# Xorg GLX driver
-		donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
-			/usr/$(get_libdir)/opengl/nvidia/extensions
-
-		# XvMC driver
-		dolib.a ${NV_X11}/libXvMCNVIDIA.a || \
-			die "failed to install libXvMCNVIDIA.so"
-		donvidia ${NV_X11}/libXvMCNVIDIA.so ${NV_SOVER}
-		dosym libXvMCNVIDIA.so.${NV_SOVER} \
-			/usr/$(get_libdir)/libXvMCNVIDIA_dynamic.so.1 || \
-			die "failed to create libXvMCNVIDIA_dynamic.so symlink"
-	fi
-
-	# OpenCL ICD for NVIDIA
-	if use kernel_linux; then
-		insinto /etc/OpenCL/vendors
-		doins nvidia.icd
-		donvidia ${NV_OBJ}/libnvidia-opencl.so ${NV_SOVER}
-	fi
-
-	# Documentation
-	dohtml ${NV_DOC}/html/*
-	if use kernel_FreeBSD; then
-		dodoc "${NV_DOC}/README"
-		use X && doman "${NV_MAN}/nvidia-xconfig.1"
-		use tools && doman "${NV_MAN}/nvidia-settings.1"
-	else
-		# Docs
-		newdoc "${NV_DOC}/README.txt" README
-		dodoc "${NV_DOC}/NVIDIA_Changelog"
-		doman "${NV_MAN}/nvidia-smi.1.gz"
-		use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
-		use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
-		doman "${NV_MAN}/nvidia-cuda-proxy-control.1.gz"
-	fi
-
-	# Helper Apps
-	exeinto /opt/bin/
-
-	if use X; then
-		doexe ${NV_OBJ}/nvidia-xconfig
-	fi
-
-	if use kernel_linux ; then
-		doexe ${NV_OBJ}/nvidia-debugdump
-		doexe ${NV_OBJ}/nvidia-cuda-proxy-control
-		doexe ${NV_OBJ}/nvidia-cuda-proxy-server
-		doexe ${NV_OBJ}/nvidia-smi
-		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
-	fi
-
-	dobin ${NV_OBJ}/nvidia-bug-report.sh
-
-	# Desktop entries for nvidia-settings
-	if use tools ; then
-		emake -C "${S}"/nvidia-settings-${PV}/src/ \
-			DESTDIR="${D}" \
-			LIBDIR="${D}/usr/$(get_libdir)" \
-			PREFIX=/usr \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			install
-
-		if use static-libs; then
-			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
-
-			insinto /usr/include/NVCtrl
-			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
-		fi
-
-		# There is no icon in the FreeBSD tarball.
-		use kernel_FreeBSD || \
-			doicon ${NV_OBJ}/nvidia-settings.png
-
-		domenu "${FILESDIR}"/nvidia-settings.desktop
-
-		exeinto /etc/X11/xinit/xinitrc.d
-		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-	fi
-
-	#doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
-
-	if has_multilib_profile && use multilib ; then
-		local OABI=${ABI}
-		for ABI in $(get_install_abis) ; do
-			src_install-libs
-		done
-		ABI=${OABI}
-		unset OABI
-	else
-		src_install-libs
-	fi
-
-	is_final_abi || die "failed to iterate through all ABIs"
-
-	readme.gentoo_create_doc
-}
-
-src_install-libs() {
-	local inslibdir=$(get_libdir)
-	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
-	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
-	local libdir=${NV_OBJ}
-
-	if use kernel_linux && has_multilib_profile && \
-			[[ ${ABI} == "x86" ]] ; then
-		libdir=${NV_OBJ}/32
-	fi
-
-	if use X; then
-		# The GLX libraries
-		donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
-		donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
-		if use kernel_FreeBSD; then
-			donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER} ${GL_ROOT}
-		else
-			donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER} ${GL_ROOT}
-		fi
-
-		# VDPAU
-		donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
-	fi
-
-	# NVIDIA monitoring library
-	if use kernel_linux ; then
-		donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
-	fi
-
-	# CUDA & OpenCL
-	if use kernel_linux; then
-		donvidia ${libdir}/libcuda.so ${NV_SOVER}
-		donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
-		donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
-	fi
-}
-
-pkg_preinst() {
-	if use kernel_linux; then
-		linux-mod_pkg_preinst
-
-		local videogroup="$(egetent group video | cut -d ':' -f 3)"
-		if [ -z "${videogroup}" ]; then
-			eerror "Failed to determine the video group gid"
-			die "Failed to determine the video group gid"
-		else
-			sed -i \
-				-e "s:PACKAGE:${PF}:g" \
-				-e "s:VIDEOGID:${videogroup}:" \
-				"${D}"/etc/modprobe.d/nvidia.conf || die
-		fi
-	fi
-
-	# Clean the dynamic libGL stuff's home to ensure
-	# we dont have stale libs floating around
-	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
-		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
-	fi
-	# Make sure we nuke the old nvidia-glx's env.d file
-	if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
-		rm -f "${ROOT}"/etc/env.d/09nvidia
-	fi
-}
-
-pkg_postinst() {
-	use kernel_linux && linux-mod_pkg_postinst
-
-	# Switch to the nvidia implementation
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
-	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
-
-	readme.gentoo_print_elog
-
-	if ! use X; then
-		elog "You have elected to not install the X.org driver. Along with"
-		elog "this the OpenGL libraries, XvMC, and VDPAU libraries were not"
-		elog "installed. Additionally, once the driver is loaded your card"
-		elog "and fan will run at max speed which may not be desirable."
-		elog "Use the 'nvidia-smi' init script to have your card and fan"
-		elog "speed scale appropriately."
-		elog
-	fi
-	if ! use tools; then
-		elog "USE=tools controls whether the nvidia-settings application"
-		elog "is installed. If you would like to use it, enable that"
-		elog "flag and re-emerge this ebuild. Optionally you can install"
-		elog "media-video/nvidia-settings"
-		elog
-	fi
-}
-
-pkg_prerm() {
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}
-
-pkg_postrm() {
-	use kernel_linux && linux-mod_pkg_postrm
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-340.102-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-340.102-r1.ebuild
deleted file mode 100644
index 39187a30aba..00000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-340.102-r1.ebuild
+++ /dev/null
@@ -1,529 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
-	portability toolchain-funcs unpacker user udev
-
-NV_URI="http://http.download.nvidia.com/XFree86/"
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
-X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
-SRC_URI="
-	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
-	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
-	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
-	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
-	tools? ( ${NV_URI}nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
-"
-
-LICENSE="GPL-2 NVIDIA-r2"
-SLOT="0/${PV%.*}"
-KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
-IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools +X uvm"
-RESTRICT="bindist mirror"
-EMULTILIB_PKG="true"
-
-COMMON="
-	app-eselect/eselect-opencl
-	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
-	tools? (
-		dev-libs/atk
-		dev-libs/glib:2
-		dev-libs/jansson
-		x11-libs/gdk-pixbuf[X]
-		>=x11-libs/gtk+-2.4:2
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/pango[X]
-	)
-	X? (
-		>=app-eselect/eselect-opengl-1.0.9
-	)
-"
-DEPEND="
-	${COMMON}
-	app-arch/xz-utils
-	kernel_linux? ( virtual/linux-sources )
-"
-RDEPEND="
-	${COMMON}
-	acpi? ( sys-power/acpid )
-	tools? ( !media-video/nvidia-settings )
-	X? (
-		<x11-base/xorg-server-1.19.99:=
-		>=x11-libs/libvdpau-0.3-r1
-		sys-libs/zlib[${MULTILIB_USEDEP}]
-		multilib? (
-			>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
-			>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
-		)
-	)
-"
-
-REQUIRED_USE="tools? ( X )"
-
-QA_PREBUILT="opt/* usr/lib*"
-
-S=${WORKDIR}/
-
-nvidia_drivers_versions_check() {
-	if use amd64 && has_multilib_profile && \
-		[ "${DEFAULT_ABI}" != "amd64" ]; then
-		eerror "This ebuild doesn't currently support changing your default ABI"
-		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
-	fi
-
-	if use kernel_linux && kernel_is ge 4 10; then
-		ewarn "Gentoo supports kernels which are supported by NVIDIA"
-		ewarn "which are limited to the following kernels:"
-		ewarn "<sys-kernel/gentoo-sources-4.10"
-		ewarn "<sys-kernel/vanilla-sources-4.10"
-		ewarn ""
-		ewarn "You are free to utilize eapply_user to provide whatever"
-		ewarn "support you feel is appropriate, but will not receive"
-		ewarn "support as a result of those changes."
-		ewarn ""
-		ewarn "Do not file a bug report about this."
-		ewarn ""
-	fi
-
-	# Since Nvidia ships many different series of drivers, we need to give the user
-	# some kind of guidance as to what version they should install. This tries
-	# to point the user in the right direction but can't be perfect. check
-	# nvidia-driver.eclass
-	nvidia-driver-check-warning
-
-	# Kernel features/options to check for
-	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
-	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
-
-	# Now do the above checks
-	use kernel_linux && check_extra_config
-}
-
-pkg_pretend() {
-	nvidia_drivers_versions_check
-}
-
-pkg_setup() {
-	nvidia_drivers_versions_check
-
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	if use kernel_linux; then
-		MODULE_NAMES="nvidia(video:${S}/kernel)"
-		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel/uvm)"
-
-		# This needs to run after MODULE_NAMES (so that the eclass checks
-		# whether the kernel supports loadable modules) but before BUILD_PARAMS
-		# is set (so that KV_DIR is populated).
-		linux-mod_pkg_setup
-
-		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
-
-		# linux-mod_src_compile calls set_arch_to_kernel, which
-		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
-		# expects x86_64 or i386 and then converts it to x86
-		# later on in the build process
-		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
-	fi
-
-	# set variables to where files are in the package structure
-	if use kernel_FreeBSD; then
-		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
-		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
-		NV_DOC="${S}/doc"
-		NV_OBJ="${S}/obj"
-		NV_SRC="${S}/src"
-		NV_MAN="${S}/x11/man"
-		NV_X11="${S}/obj"
-		NV_SOVER=1
-	elif use kernel_linux; then
-		NV_DOC="${S}"
-		NV_OBJ="${S}"
-		NV_SRC="${S}/kernel"
-		NV_MAN="${S}"
-		NV_X11="${S}"
-		NV_SOVER=${PV}
-	else
-		die "Could not determine proper NVIDIA package"
-	fi
-}
-
-src_prepare() {
-	# Please add a brief description for every added patch
-
-	if use kernel_linux; then
-		if kernel_is lt 2 6 9 ; then
-			eerror "You must build this against 2.6.9 or higher kernels."
-		fi
-
-		# If greater than 2.6.5 use M= instead of SUBDIR=
-#		convert_to_m "${NV_SRC}"/Makefile.kbuild
-	fi
-
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-331.13-pax-usercopy.patch
-		eapply "${FILESDIR}"/${PN}-337.12-pax-constify.patch
-	fi
-
-	local man_file
-	for man_file in "${NV_MAN}"/*1.gz; do
-		gunzip $man_file || die
-	done
-
-	# Allow user patches so they can support RC kernels and whatever else
-	eapply_user
-}
-
-src_compile() {
-	# This is already the default on Linux, as there's no toplevel Makefile, but
-	# on FreeBSD there's one and triggers the kernel module build, as we install
-	# it by itself, pass this.
-
-	cd "${NV_SRC}"
-	if use kernel_FreeBSD; then
-		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
-			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
-	elif use kernel_linux; then
-		use uvm && MAKEOPTS=-j1
-		linux-mod_src_compile
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl clean
-		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
-			AR="$(tc-getAR)" \
-			CC="$(tc-getCC)" \
-			RANLIB="$(tc-getRANLIB)" \
-			libXNVCtrl.a
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			AR="$(tc-getAR)" \
-			CC="$(tc-getCC)" \
-			LD="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NVML_ENABLED=0 \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			RANLIB="$(tc-getRANLIB)" \
-			STRIP_CMD=true
-	fi
-}
-
-# Install nvidia library:
-# the first parameter is the library to install
-# the second parameter is the provided soversion
-# the third parameter is the target directory if its not /usr/lib
-donvidia() {
-	# Full path to library minus SOVER
-	MY_LIB="$1"
-
-	# SOVER to use
-	MY_SOVER="$2"
-
-	# Where to install
-	MY_DEST="$3"
-
-	if [[ -z "${MY_DEST}" ]]; then
-		MY_DEST="/usr/$(get_libdir)"
-		action="dolib.so"
-	else
-		exeinto ${MY_DEST}
-		action="doexe"
-	fi
-
-	# Get just the library name
-	libname=$(basename $1)
-
-	# Install the library with the correct SOVER
-	${action} ${MY_LIB}.${MY_SOVER} || \
-		die "failed to install ${libname}"
-
-	# If SOVER wasn't 1, then we need to create a .1 symlink
-	if [[ "${MY_SOVER}" != "1" ]]; then
-		dosym ${libname}.${MY_SOVER} \
-			${MY_DEST}/${libname}.1 || \
-			die "failed to create ${libname} symlink"
-	fi
-
-	# Always create the symlink from the raw lib to the .1
-	dosym ${libname}.1 \
-		${MY_DEST}/${libname} || \
-		die "failed to create ${libname} symlink"
-}
-
-src_install() {
-	if use kernel_linux; then
-		linux-mod_src_install
-
-		# Add the aliases
-		# This file is tweaked with the appropriate video group in
-		# pkg_preinst, see bug #491414
-		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-		use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
-
-		# Ensures that our device nodes are created when not using X
-		exeinto "$(get_udevdir)"
-		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
-		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
-	elif use kernel_FreeBSD; then
-		if use x86-fbsd; then
-			insinto /boot/modules
-			doins "${S}/src/nvidia.kld"
-		fi
-
-		exeinto /boot/modules
-		doexe "${S}/src/nvidia.ko"
-	fi
-
-	# NVIDIA kernel <-> userspace driver config lib
-	donvidia "${NV_OBJ}"/libnvidia-cfg.so ${NV_SOVER}
-
-	# NVIDIA framebuffer capture library
-	donvidia "${NV_OBJ}"/libnvidia-fbc.so ${NV_SOVER}
-
-	# NVIDIA video encode/decode <-> CUDA
-	if use kernel_linux; then
-		donvidia "${NV_OBJ}"/libnvcuvid.so ${NV_SOVER}
-		donvidia "${NV_OBJ}"/libnvidia-encode.so ${NV_SOVER}
-	fi
-
-	if use X; then
-		# Xorg DDX driver
-		insinto /usr/$(get_libdir)/xorg/modules/drivers
-		doins "${NV_X11}"/nvidia_drv.so
-
-		# Xorg GLX driver
-		donvidia "${NV_X11}"/libglx.so ${NV_SOVER} \
-			/usr/$(get_libdir)/opengl/nvidia/extensions
-	fi
-
-	# OpenCL ICD for NVIDIA
-	if use kernel_linux; then
-		insinto /etc/OpenCL/vendors
-		doins "${NV_OBJ}"/nvidia.icd
-	fi
-
-	# Documentation
-	if use kernel_FreeBSD; then
-		dodoc "${NV_DOC}"/README
-		use X && doman "${NV_MAN}"/nvidia-xconfig.1
-		use tools && doman "${NV_MAN}"/nvidia-settings.1
-	else
-		# Docs
-		newdoc "${NV_DOC}"/README.txt README
-		dodoc "${NV_DOC}"/NVIDIA_Changelog
-		doman "${NV_MAN}"/nvidia-smi.1
-		use X && doman "${NV_MAN}"/nvidia-xconfig.1
-		use tools && doman "${NV_MAN}"/nvidia-settings.1
-		doman "${NV_MAN}"/nvidia-cuda-mps-control.1
-	fi
-
-	docinto html
-	dodoc -r "${NV_DOC}"/html/*
-
-	# Helper Apps
-	exeinto /opt/bin/
-
-	if use X; then
-		doexe "${NV_OBJ}"/nvidia-xconfig
-	fi
-
-	if use kernel_linux ; then
-		doexe "${NV_OBJ}"/nvidia-cuda-mps-control
-		doexe "${NV_OBJ}"/nvidia-cuda-mps-server
-		doexe "${NV_OBJ}"/nvidia-debugdump
-		doexe "${NV_OBJ}"/nvidia-persistenced
-		doexe "${NV_OBJ}"/nvidia-smi
-
-		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
-		doexe "${NV_OBJ}"/nvidia-modprobe
-		fowners root:video /opt/bin/nvidia-modprobe
-		fperms 4710 /opt/bin/nvidia-modprobe
-		dosym /{opt,usr}/bin/nvidia-modprobe
-
-		doman nvidia-cuda-mps-control.1
-		doman nvidia-modprobe.1
-		doman nvidia-persistenced.1
-		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
-		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
-		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src/ \
-			DESTDIR="${D}" \
-			LIBDIR="${D}/usr/$(get_libdir)" \
-			PREFIX=/usr \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			install
-
-		if use static-libs; then
-			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
-
-			insinto /usr/include/NVCtrl
-			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
-		fi
-
-		insinto /usr/share/nvidia/
-		doins nvidia-application-profiles-${PV}-key-documentation
-
-		insinto /etc/nvidia
-		newins \
-			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
-
-		# There is no icon in the FreeBSD tarball.
-		use kernel_FreeBSD || \
-			doicon "${NV_OBJ}"/nvidia-settings.png
-
-		domenu "${FILESDIR}"/nvidia-settings.desktop
-
-		exeinto /etc/X11/xinit/xinitrc.d
-		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-
-	fi
-
-	dobin "${NV_OBJ}"/nvidia-bug-report.sh
-
-	#doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
-
-	if has_multilib_profile && use multilib ; then
-		local OABI=${ABI}
-		for ABI in $(get_install_abis) ; do
-			src_install-libs
-		done
-		ABI=${OABI}
-		unset OABI
-	else
-		src_install-libs
-	fi
-
-	is_final_abi || die "failed to iterate through all ABIs"
-
-	readme.gentoo_create_doc
-}
-
-src_install-libs() {
-	local inslibdir=$(get_libdir)
-	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
-	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
-	local nv_libdir="${NV_OBJ}"
-
-	if use kernel_linux && has_multilib_profile && \
-			[[ ${ABI} == "x86" ]] ; then
-		nv_libdir="${NV_OBJ}"/32
-	fi
-
-	if use X; then
-		# The GLX libraries
-		donvidia "${nv_libdir}"/libEGL.so ${NV_SOVER} ${GL_ROOT}
-		donvidia "${nv_libdir}"/libGL.so ${NV_SOVER} ${GL_ROOT}
-		donvidia "${nv_libdir}"/libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}
-		donvidia "${nv_libdir}"/libnvidia-eglcore.so ${NV_SOVER}
-		donvidia "${nv_libdir}"/libnvidia-glcore.so ${NV_SOVER}
-		donvidia "${nv_libdir}"/libnvidia-glsi.so ${NV_SOVER}
-		donvidia "${nv_libdir}"/libnvidia-ifr.so ${NV_SOVER}
-		if use kernel_FreeBSD; then
-			donvidia "${nv_libdir}"/libnvidia-tls.so ${NV_SOVER}
-		else
-			donvidia "${nv_libdir}"/tls/libnvidia-tls.so ${NV_SOVER}
-		fi
-
-		# VDPAU
-		donvidia "${nv_libdir}"/libvdpau_nvidia.so ${NV_SOVER}
-
-		# GLES v2 libraries
-		insinto ${GL_ROOT}
-		doexe "${nv_libdir}"/libGLESv2.so.${PV}
-		dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
-		dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
-	fi
-
-	# NVIDIA monitoring library
-	if use kernel_linux ; then
-		donvidia "${nv_libdir}"/libnvidia-ml.so ${NV_SOVER}
-	fi
-
-	# CUDA & OpenCL
-	if use kernel_linux; then
-		donvidia "${nv_libdir}"/libcuda.so ${NV_SOVER}
-		donvidia "${nv_libdir}"/libnvidia-compiler.so ${NV_SOVER}
-		donvidia "${nv_libdir}"/libOpenCL.so 1.0.0 ${CL_ROOT}
-		donvidia "${nv_libdir}"/libnvidia-opencl.so ${NV_SOVER}
-	fi
-}
-
-pkg_preinst() {
-	if use kernel_linux; then
-		linux-mod_pkg_preinst
-
-		local videogroup="$(egetent group video | cut -d ':' -f 3)"
-		if [ -z "${videogroup}" ]; then
-			eerror "Failed to determine the video group gid"
-			die "Failed to determine the video group gid"
-		else
-			sed -i \
-				-e "s:PACKAGE:${PF}:g" \
-				-e "s:VIDEOGID:${videogroup}:" \
-				"${D}"/etc/modprobe.d/nvidia.conf || die
-		fi
-	fi
-
-	# Clean the dynamic libGL stuff's home to ensure
-	# we dont have stale libs floating around
-	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
-		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
-	fi
-	# Make sure we nuke the old nvidia-glx's env.d file
-	if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
-		rm -f "${ROOT}"/etc/env.d/09nvidia
-	fi
-}
-
-pkg_postinst() {
-	use kernel_linux && linux-mod_pkg_postinst
-
-	# Switch to the nvidia implementation
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
-	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
-
-	readme.gentoo_print_elog
-
-	if ! use X; then
-		elog "You have elected to not install the X.org driver. Along with"
-		elog "this the OpenGL libraries and VDPAU libraries were not"
-		elog "installed. Additionally, once the driver is loaded your card"
-		elog "and fan will run at max speed which may not be desirable."
-		elog "Use the 'nvidia-smi' init script to have your card and fan"
-		elog "speed scale appropriately."
-		elog
-	fi
-	if ! use tools; then
-		elog "USE=tools controls whether the nvidia-settings application"
-		elog "is installed. If you would like to use it, enable that"
-		elog "flag and re-emerge this ebuild. Optionally you can install"
-		elog "media-video/nvidia-settings"
-		elog
-	fi
-}
-
-pkg_prerm() {
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}
-
-pkg_postrm() {
-	use kernel_linux && linux-mod_pkg_postrm
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-340.102.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-340.102.ebuild
deleted file mode 100644
index b683c4e9673..00000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-340.102.ebuild
+++ /dev/null
@@ -1,524 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
-	portability toolchain-funcs unpacker user udev
-
-NV_URI="http://http.download.nvidia.com/XFree86/"
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
-X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
-SRC_URI="
-	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
-	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
-	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
-	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
-	tools? ( ${NV_URI}nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
-"
-
-LICENSE="GPL-2 NVIDIA-r2"
-SLOT="0/${PV%.*}"
-KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
-IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools +X uvm"
-RESTRICT="bindist mirror"
-EMULTILIB_PKG="true"
-
-COMMON="
-	app-eselect/eselect-opencl
-	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
-	tools? (
-		dev-libs/atk
-		dev-libs/glib:2
-		dev-libs/jansson
-		x11-libs/gdk-pixbuf[X]
-		>=x11-libs/gtk+-2.4:2
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/pango[X]
-	)
-	X? (
-		>=app-eselect/eselect-opengl-1.0.9
-	)
-"
-DEPEND="
-	${COMMON}
-	app-arch/xz-utils
-	kernel_linux? ( virtual/linux-sources )
-"
-RDEPEND="
-	${COMMON}
-	acpi? ( sys-power/acpid )
-	tools? ( !media-video/nvidia-settings )
-	X? (
-		<x11-base/xorg-server-1.19.99:=
-		>=x11-libs/libvdpau-0.3-r1
-		sys-libs/zlib[${MULTILIB_USEDEP}]
-		multilib? (
-			>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
-			>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
-		)
-	)
-"
-
-REQUIRED_USE="tools? ( X )"
-
-QA_PREBUILT="opt/* usr/lib*"
-
-S=${WORKDIR}/
-
-nvidia_drivers_versions_check() {
-	if use amd64 && has_multilib_profile && \
-		[ "${DEFAULT_ABI}" != "amd64" ]; then
-		eerror "This ebuild doesn't currently support changing your default ABI"
-		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
-	fi
-
-	if use kernel_linux && kernel_is ge 4 10; then
-		ewarn "Gentoo supports kernels which are supported by NVIDIA"
-		ewarn "which are limited to the following kernels:"
-		ewarn "<sys-kernel/gentoo-sources-4.10"
-		ewarn "<sys-kernel/vanilla-sources-4.10"
-		ewarn ""
-		ewarn "You are free to utilize eapply_user to provide whatever"
-		ewarn "support you feel is appropriate, but will not receive"
-		ewarn "support as a result of those changes."
-		ewarn ""
-		ewarn "Do not file a bug report about this."
-		ewarn ""
-	fi
-
-	# Since Nvidia ships many different series of drivers, we need to give the user
-	# some kind of guidance as to what version they should install. This tries
-	# to point the user in the right direction but can't be perfect. check
-	# nvidia-driver.eclass
-	nvidia-driver-check-warning
-
-	# Kernel features/options to check for
-	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
-	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
-
-	# Now do the above checks
-	use kernel_linux && check_extra_config
-}
-
-pkg_pretend() {
-	nvidia_drivers_versions_check
-}
-
-pkg_setup() {
-	nvidia_drivers_versions_check
-
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	if use kernel_linux; then
-		MODULE_NAMES="nvidia(video:${S}/kernel)"
-		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel/uvm)"
-
-		# This needs to run after MODULE_NAMES (so that the eclass checks
-		# whether the kernel supports loadable modules) but before BUILD_PARAMS
-		# is set (so that KV_DIR is populated).
-		linux-mod_pkg_setup
-
-		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
-
-		# linux-mod_src_compile calls set_arch_to_kernel, which
-		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
-		# expects x86_64 or i386 and then converts it to x86
-		# later on in the build process
-		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
-	fi
-
-	# set variables to where files are in the package structure
-	if use kernel_FreeBSD; then
-		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
-		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
-		NV_DOC="${S}/doc"
-		NV_OBJ="${S}/obj"
-		NV_SRC="${S}/src"
-		NV_MAN="${S}/x11/man"
-		NV_X11="${S}/obj"
-		NV_SOVER=1
-	elif use kernel_linux; then
-		NV_DOC="${S}"
-		NV_OBJ="${S}"
-		NV_SRC="${S}/kernel"
-		NV_MAN="${S}"
-		NV_X11="${S}"
-		NV_SOVER=${PV}
-	else
-		die "Could not determine proper NVIDIA package"
-	fi
-}
-
-src_prepare() {
-	# Please add a brief description for every added patch
-
-	if use kernel_linux; then
-		if kernel_is lt 2 6 9 ; then
-			eerror "You must build this against 2.6.9 or higher kernels."
-		fi
-
-		# If greater than 2.6.5 use M= instead of SUBDIR=
-#		convert_to_m "${NV_SRC}"/Makefile.kbuild
-	fi
-
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-331.13-pax-usercopy.patch
-		eapply "${FILESDIR}"/${PN}-337.12-pax-constify.patch
-	fi
-
-	# Allow user patches so they can support RC kernels and whatever else
-	eapply_user
-}
-
-src_compile() {
-	# This is already the default on Linux, as there's no toplevel Makefile, but
-	# on FreeBSD there's one and triggers the kernel module build, as we install
-	# it by itself, pass this.
-
-	cd "${NV_SRC}"
-	if use kernel_FreeBSD; then
-		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
-			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
-	elif use kernel_linux; then
-		use uvm && MAKEOPTS=-j1
-		linux-mod_src_compile
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl clean
-		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
-			AR="$(tc-getAR)" \
-			CC="$(tc-getCC)" \
-			RANLIB="$(tc-getRANLIB)" \
-			libXNVCtrl.a
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			AR="$(tc-getAR)" \
-			CC="$(tc-getCC)" \
-			LD="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NVML_ENABLED=0 \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			RANLIB="$(tc-getRANLIB)" \
-			STRIP_CMD=true
-	fi
-}
-
-# Install nvidia library:
-# the first parameter is the library to install
-# the second parameter is the provided soversion
-# the third parameter is the target directory if its not /usr/lib
-donvidia() {
-	# Full path to library minus SOVER
-	MY_LIB="$1"
-
-	# SOVER to use
-	MY_SOVER="$2"
-
-	# Where to install
-	MY_DEST="$3"
-
-	if [[ -z "${MY_DEST}" ]]; then
-		MY_DEST="/usr/$(get_libdir)"
-		action="dolib.so"
-	else
-		exeinto ${MY_DEST}
-		action="doexe"
-	fi
-
-	# Get just the library name
-	libname=$(basename $1)
-
-	# Install the library with the correct SOVER
-	${action} ${MY_LIB}.${MY_SOVER} || \
-		die "failed to install ${libname}"
-
-	# If SOVER wasn't 1, then we need to create a .1 symlink
-	if [[ "${MY_SOVER}" != "1" ]]; then
-		dosym ${libname}.${MY_SOVER} \
-			${MY_DEST}/${libname}.1 || \
-			die "failed to create ${libname} symlink"
-	fi
-
-	# Always create the symlink from the raw lib to the .1
-	dosym ${libname}.1 \
-		${MY_DEST}/${libname} || \
-		die "failed to create ${libname} symlink"
-}
-
-src_install() {
-	if use kernel_linux; then
-		linux-mod_src_install
-
-		# Add the aliases
-		# This file is tweaked with the appropriate video group in
-		# pkg_preinst, see bug #491414
-		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-		use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
-
-		# Ensures that our device nodes are created when not using X
-		exeinto "$(get_udevdir)"
-		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
-		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
-	elif use kernel_FreeBSD; then
-		if use x86-fbsd; then
-			insinto /boot/modules
-			doins "${S}/src/nvidia.kld"
-		fi
-
-		exeinto /boot/modules
-		doexe "${S}/src/nvidia.ko"
-	fi
-
-	# NVIDIA kernel <-> userspace driver config lib
-	donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
-
-	# NVIDIA framebuffer capture library
-	donvidia ${NV_OBJ}/libnvidia-fbc.so ${NV_SOVER}
-
-	# NVIDIA video encode/decode <-> CUDA
-	if use kernel_linux; then
-		donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
-		donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
-	fi
-
-	if use X; then
-		# Xorg DDX driver
-		insinto /usr/$(get_libdir)/xorg/modules/drivers
-		doins ${NV_X11}/nvidia_drv.so
-
-		# Xorg GLX driver
-		donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
-			/usr/$(get_libdir)/opengl/nvidia/extensions
-	fi
-
-	# OpenCL ICD for NVIDIA
-	if use kernel_linux; then
-		insinto /etc/OpenCL/vendors
-		doins ${NV_OBJ}/nvidia.icd
-	fi
-
-	# Documentation
-	if use kernel_FreeBSD; then
-		dodoc "${NV_DOC}/README"
-		use X && doman "${NV_MAN}/nvidia-xconfig.1"
-		use tools && doman "${NV_MAN}/nvidia-settings.1"
-	else
-		# Docs
-		newdoc "${NV_DOC}/README.txt" README
-		dodoc "${NV_DOC}/NVIDIA_Changelog"
-		doman "${NV_MAN}/nvidia-smi.1.gz"
-		use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
-		use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
-		doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
-	fi
-
-	docinto html
-	dodoc -r ${NV_DOC}/html/*
-
-	# Helper Apps
-	exeinto /opt/bin/
-
-	if use X; then
-		doexe ${NV_OBJ}/nvidia-xconfig
-	fi
-
-	if use kernel_linux ; then
-		doexe ${NV_OBJ}/nvidia-cuda-mps-control
-		doexe ${NV_OBJ}/nvidia-cuda-mps-server
-		doexe ${NV_OBJ}/nvidia-debugdump
-		doexe ${NV_OBJ}/nvidia-persistenced
-		doexe ${NV_OBJ}/nvidia-smi
-
-		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
-		doexe ${NV_OBJ}/nvidia-modprobe
-		fowners root:video /opt/bin/nvidia-modprobe
-		fperms 4710 /opt/bin/nvidia-modprobe
-		dosym /{opt,usr}/bin/nvidia-modprobe
-
-		doman nvidia-cuda-mps-control.1.gz
-		doman nvidia-modprobe.1.gz
-		doman nvidia-persistenced.1.gz
-		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
-		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
-		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src/ \
-			DESTDIR="${D}" \
-			LIBDIR="${D}/usr/$(get_libdir)" \
-			PREFIX=/usr \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			install
-
-		if use static-libs; then
-			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
-
-			insinto /usr/include/NVCtrl
-			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
-		fi
-
-		insinto /usr/share/nvidia/
-		doins nvidia-application-profiles-${PV}-key-documentation
-
-		insinto /etc/nvidia
-		newins \
-			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
-
-		# There is no icon in the FreeBSD tarball.
-		use kernel_FreeBSD || \
-			doicon ${NV_OBJ}/nvidia-settings.png
-
-		domenu "${FILESDIR}"/nvidia-settings.desktop
-
-		exeinto /etc/X11/xinit/xinitrc.d
-		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-
-	fi
-
-	dobin ${NV_OBJ}/nvidia-bug-report.sh
-
-	#doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
-
-	if has_multilib_profile && use multilib ; then
-		local OABI=${ABI}
-		for ABI in $(get_install_abis) ; do
-			src_install-libs
-		done
-		ABI=${OABI}
-		unset OABI
-	else
-		src_install-libs
-	fi
-
-	is_final_abi || die "failed to iterate through all ABIs"
-
-	readme.gentoo_create_doc
-}
-
-src_install-libs() {
-	local inslibdir=$(get_libdir)
-	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
-	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
-	local libdir=${NV_OBJ}
-
-	if use kernel_linux && has_multilib_profile && \
-			[[ ${ABI} == "x86" ]] ; then
-		libdir=${NV_OBJ}/32
-	fi
-
-	if use X; then
-		# The GLX libraries
-		donvidia ${libdir}/libEGL.so ${NV_SOVER} ${GL_ROOT}
-		donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
-		donvidia ${libdir}/libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}
-		donvidia ${libdir}/libnvidia-eglcore.so ${NV_SOVER}
-		donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
-		donvidia ${libdir}/libnvidia-glsi.so ${NV_SOVER}
-		donvidia ${libdir}/libnvidia-ifr.so ${NV_SOVER}
-		if use kernel_FreeBSD; then
-			donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
-		else
-			donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
-		fi
-
-		# VDPAU
-		donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
-
-		# GLES v2 libraries
-		insinto ${GL_ROOT}
-		doexe ${libdir}/libGLESv2.so.${PV}
-		dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
-		dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
-	fi
-
-	# NVIDIA monitoring library
-	if use kernel_linux ; then
-		donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
-	fi
-
-	# CUDA & OpenCL
-	if use kernel_linux; then
-		donvidia ${libdir}/libcuda.so ${NV_SOVER}
-		donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
-		donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
-		donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
-	fi
-}
-
-pkg_preinst() {
-	if use kernel_linux; then
-		linux-mod_pkg_preinst
-
-		local videogroup="$(egetent group video | cut -d ':' -f 3)"
-		if [ -z "${videogroup}" ]; then
-			eerror "Failed to determine the video group gid"
-			die "Failed to determine the video group gid"
-		else
-			sed -i \
-				-e "s:PACKAGE:${PF}:g" \
-				-e "s:VIDEOGID:${videogroup}:" \
-				"${D}"/etc/modprobe.d/nvidia.conf || die
-		fi
-	fi
-
-	# Clean the dynamic libGL stuff's home to ensure
-	# we dont have stale libs floating around
-	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
-		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
-	fi
-	# Make sure we nuke the old nvidia-glx's env.d file
-	if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
-		rm -f "${ROOT}"/etc/env.d/09nvidia
-	fi
-}
-
-pkg_postinst() {
-	use kernel_linux && linux-mod_pkg_postinst
-
-	# Switch to the nvidia implementation
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
-	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
-
-	readme.gentoo_print_elog
-
-	if ! use X; then
-		elog "You have elected to not install the X.org driver. Along with"
-		elog "this the OpenGL libraries and VDPAU libraries were not"
-		elog "installed. Additionally, once the driver is loaded your card"
-		elog "and fan will run at max speed which may not be desirable."
-		elog "Use the 'nvidia-smi' init script to have your card and fan"
-		elog "speed scale appropriately."
-		elog
-	fi
-	if ! use tools; then
-		elog "USE=tools controls whether the nvidia-settings application"
-		elog "is installed. If you would like to use it, enable that"
-		elog "flag and re-emerge this ebuild. Optionally you can install"
-		elog "media-video/nvidia-settings"
-		elog
-	fi
-}
-
-pkg_prerm() {
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}
-
-pkg_postrm() {
-	use kernel_linux && linux-mod_pkg_postrm
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-375.39.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-375.39.ebuild
deleted file mode 100644
index 89e7506aba7..00000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-375.39.ebuild
+++ /dev/null
@@ -1,558 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
-	portability toolchain-funcs unpacker user udev
-
-NV_URI="http://http.download.nvidia.com/XFree86/"
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
-ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
-X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
-SRC_URI="
-	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
-	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
-	arm? ( ${NV_URI}Linux-32bit-ARM/${PV}/${ARM_NV_PACKAGE}.run )
-	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
-	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
-	tools? (
-		https://github.com/NVIDIA/nvidia-settings/archive/${PV}.tar.gz -> nvidia-settings-${PV}.tar.gz
-	)
-"
-
-LICENSE="GPL-2 NVIDIA-r2"
-SLOT="0/${PV%.*}"
-KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
-RESTRICT="bindist mirror"
-EMULTILIB_PKG="true"
-
-IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
-REQUIRED_USE="
-	tools? ( X )
-	static-libs? ( tools )
-"
-
-COMMON="
-	app-eselect/eselect-opencl
-	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
-	tools? (
-		dev-libs/atk
-		dev-libs/glib:2
-		dev-libs/jansson
-		gtk3? (
-			x11-libs/gtk+:3
-		)
-		x11-libs/cairo
-		x11-libs/gdk-pixbuf[X]
-		x11-libs/gtk+:2
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXrandr
-		x11-libs/libXv
-		x11-libs/libXxf86vm
-		x11-libs/pango[X]
-	)
-	X? (
-		>=app-eselect/eselect-opengl-1.0.9
-		app-misc/pax-utils
-	)
-"
-DEPEND="
-	${COMMON}
-	kernel_linux? ( virtual/linux-sources )
-"
-RDEPEND="
-	${COMMON}
-	acpi? ( sys-power/acpid )
-	tools? ( !media-video/nvidia-settings )
-	wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
-	X? (
-		<x11-base/xorg-server-1.19.99:=
-		>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
-		sys-libs/zlib[${MULTILIB_USEDEP}]
-	)
-"
-
-QA_PREBUILT="opt/* usr/lib*"
-
-S=${WORKDIR}/
-
-pkg_pretend() {
-	if use amd64 && has_multilib_profile && \
-		[ "${DEFAULT_ABI}" != "amd64" ]; then
-		eerror "This ebuild doesn't currently support changing your default ABI"
-		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
-	fi
-
-	if use kernel_linux && kernel_is ge 4 10; then
-		ewarn "Gentoo supports kernels which are supported by NVIDIA"
-		ewarn "which are limited to the following kernels:"
-		ewarn "<sys-kernel/gentoo-sources-4.10"
-		ewarn "<sys-kernel/vanilla-sources-4.10"
-		ewarn ""
-		ewarn "You are free to utilize epatch_user to provide whatever"
-		ewarn "support you feel is appropriate, but will not receive"
-		ewarn "support as a result of those changes."
-		ewarn ""
-		ewarn "Do not file a bug report about this."
-		ewarn ""
-	fi
-
-	# Since Nvidia ships many different series of drivers, we need to give the user
-	# some kind of guidance as to what version they should install. This tries
-	# to point the user in the right direction but can't be perfect. check
-	# nvidia-driver.eclass
-	nvidia-driver-check-warning
-
-	# Kernel features/options to check for
-	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
-	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
-
-	# Now do the above checks
-	use kernel_linux && check_extra_config
-}
-
-pkg_setup() {
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	if use driver && use kernel_linux; then
-		MODULE_NAMES="nvidia(video:${S}/kernel)"
-		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
-		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
-
-		# This needs to run after MODULE_NAMES (so that the eclass checks
-		# whether the kernel supports loadable modules) but before BUILD_PARAMS
-		# is set (so that KV_DIR is populated).
-		linux-mod_pkg_setup
-
-		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
-
-		# linux-mod_src_compile calls set_arch_to_kernel, which
-		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
-		# expects x86_64 or i386 and then converts it to x86
-		# later on in the build process
-		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
-	fi
-
-	if use kernel_linux && kernel_is lt 2 6 9; then
-		eerror "You must build this against 2.6.9 or higher kernels."
-	fi
-
-	# set variables to where files are in the package structure
-	if use kernel_FreeBSD; then
-		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
-		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
-		NV_DOC="${S}/doc"
-		NV_OBJ="${S}/obj"
-		NV_SRC="${S}/src"
-		NV_MAN="${S}/x11/man"
-		NV_X11="${S}/obj"
-		NV_SOVER=1
-	elif use kernel_linux; then
-		NV_DOC="${S}"
-		NV_OBJ="${S}"
-		NV_SRC="${S}/kernel"
-		NV_MAN="${S}"
-		NV_X11="${S}"
-		NV_SOVER=${PV}
-	else
-		die "Could not determine proper NVIDIA package"
-	fi
-}
-
-src_prepare() {
-	eapply "${FILESDIR}"/${P}-profiles-rc.patch
-
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-375.20-pax.patch
-	fi
-
-	# Allow user patches so they can support RC kernels and whatever else
-	eapply_user
-}
-
-src_compile() {
-	# This is already the default on Linux, as there's no toplevel Makefile, but
-	# on FreeBSD there's one and triggers the kernel module build, as we install
-	# it by itself, pass this.
-
-	cd "${NV_SRC}"
-	if use kernel_FreeBSD; then
-		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
-			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
-	elif use driver && use kernel_linux; then
-		MAKEOPTS=-j1 linux-mod_src_compile
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			AR="$(tc-getAR)" \
-			CC="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NV_VERBOSE=1 \
-			RANLIB="$(tc-getRANLIB)" \
-			DO_STRIP= \
-			build-xnvctrl
-
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			CC="$(tc-getCC)" \
-			GTK3_AVAILABLE=$(usex gtk3 1 0) \
-			LD="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NVML_ENABLED=0 \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			DO_STRIP=
-	fi
-}
-
-# Install nvidia library:
-# the first parameter is the library to install
-# the second parameter is the provided soversion
-# the third parameter is the target directory if it is not /usr/lib
-donvidia() {
-	# Full path to library
-	nv_LIB="${1}"
-
-	# SOVER to use
-	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
-
-	# Where to install
-	nv_DEST="${2}"
-
-	# Get just the library name
-	nv_LIBNAME=$(basename "${nv_LIB}")
-
-	if [[ "${nv_DEST}" ]]; then
-		exeinto ${nv_DEST}
-		action="doexe"
-	else
-		nv_DEST="/usr/$(get_libdir)"
-		action="dolib.so"
-	fi
-
-	# Install the library
-	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
-
-	# If the library has a SONAME and SONAME does not match the library name,
-	# then we need to create a symlink
-	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
-		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
-			|| die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
-	fi
-
-	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
-		|| die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
-}
-
-src_install() {
-	if use driver && use kernel_linux; then
-		linux-mod_src_install
-
-		# Add the aliases
-		# This file is tweaked with the appropriate video group in
-		# pkg_preinst, see bug #491414
-		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-		doins "${FILESDIR}"/nvidia-rmmod.conf
-
-		# Ensures that our device nodes are created when not using X
-		exeinto "$(get_udevdir)"
-		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
-		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
-	elif use kernel_FreeBSD; then
-		if use x86-fbsd; then
-			insinto /boot/modules
-			doins "${S}/src/nvidia.kld"
-		fi
-
-		exeinto /boot/modules
-		doexe "${S}/src/nvidia.ko"
-	fi
-
-	# NVIDIA kernel <-> userspace driver config lib
-	donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
-
-	# NVIDIA framebuffer capture library
-	donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
-
-	# NVIDIA video encode/decode <-> CUDA
-	if use kernel_linux; then
-		donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
-		donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
-	fi
-
-	if use X; then
-		# Xorg DDX driver
-		insinto /usr/$(get_libdir)/xorg/modules/drivers
-		doins ${NV_X11}/nvidia_drv.so
-
-		# Xorg GLX driver
-		donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
-			/usr/$(get_libdir)/opengl/nvidia/extensions
-
-		# Xorg nvidia.conf
-		if has_version '>=x11-base/xorg-server-1.16'; then
-			insinto /usr/share/X11/xorg.conf.d
-			newins {,50-}nvidia-drm-outputclass.conf
-		fi
-
-		insinto /usr/share/glvnd/egl_vendor.d
-		doins ${NV_X11}/10_nvidia.json
-	fi
-
-	# OpenCL ICD for NVIDIA
-	if use kernel_linux; then
-		insinto /etc/OpenCL/vendors
-		doins ${NV_OBJ}/nvidia.icd
-	fi
-
-	# Documentation
-	if use kernel_FreeBSD; then
-		dodoc "${NV_DOC}/README"
-		use X && doman "${NV_MAN}/nvidia-xconfig.1"
-		use tools && doman "${NV_MAN}/nvidia-settings.1"
-	else
-		# Docs
-		newdoc "${NV_DOC}/README.txt" README
-		dodoc "${NV_DOC}/NVIDIA_Changelog"
-		doman "${NV_MAN}/nvidia-smi.1.gz"
-		use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
-		use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
-		doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
-	fi
-
-	docinto html
-	dodoc -r ${NV_DOC}/html/*
-
-	# Helper Apps
-	exeinto /opt/bin/
-
-	if use X; then
-		doexe ${NV_OBJ}/nvidia-xconfig
-
-		insinto /etc/vulkan/icd.d
-		doins nvidia_icd.json
-	fi
-
-	if use kernel_linux; then
-		doexe ${NV_OBJ}/nvidia-cuda-mps-control
-		doexe ${NV_OBJ}/nvidia-cuda-mps-server
-		doexe ${NV_OBJ}/nvidia-debugdump
-		doexe ${NV_OBJ}/nvidia-persistenced
-		doexe ${NV_OBJ}/nvidia-smi
-
-		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
-		doexe ${NV_OBJ}/nvidia-modprobe
-		fowners root:video /opt/bin/nvidia-modprobe
-		fperms 4710 /opt/bin/nvidia-modprobe
-		dosym /{opt,usr}/bin/nvidia-modprobe
-
-		doman nvidia-cuda-mps-control.1.gz
-		doman nvidia-modprobe.1.gz
-		doman nvidia-persistenced.1.gz
-		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
-		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
-		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src/ \
-			DESTDIR="${D}" \
-			GTK3_AVAILABLE=$(usex gtk3 1 0) \
-			LIBDIR="${D}/usr/$(get_libdir)" \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			PREFIX=/usr \
-			DO_STRIP= \
-			install
-
-		if use static-libs; then
-			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
-
-			insinto /usr/include/NVCtrl
-			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
-		fi
-
-		insinto /usr/share/nvidia/
-		doins nvidia-application-profiles-${PV}-key-documentation
-
-		insinto /etc/nvidia
-		newins \
-			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
-
-		# There is no icon in the FreeBSD tarball.
-		use kernel_FreeBSD || \
-			doicon ${NV_OBJ}/nvidia-settings.png
-
-		domenu "${FILESDIR}"/nvidia-settings.desktop
-
-		exeinto /etc/X11/xinit/xinitrc.d
-		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-	fi
-
-	dobin ${NV_OBJ}/nvidia-bug-report.sh
-
-	if has_multilib_profile && use multilib; then
-		local OABI=${ABI}
-		for ABI in $(get_install_abis); do
-			src_install-libs
-		done
-		ABI=${OABI}
-		unset OABI
-	else
-		src_install-libs
-	fi
-
-	is_final_abi || die "failed to iterate through all ABIs"
-
-	readme.gentoo_create_doc
-}
-
-src_install-libs() {
-	local inslibdir=$(get_libdir)
-	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
-	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
-	local libdir=${NV_OBJ}
-
-	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
-		libdir=${NV_OBJ}/32
-	fi
-
-	if use X; then
-		NV_GLX_LIBRARIES=(
-			"libEGL.so.$(usex compat ${NV_SOVER} 1) ${GL_ROOT}"
-			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
-			"libGLESv1_CM.so.1 ${GL_ROOT}"
-			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLESv2.so.2 ${GL_ROOT}"
-			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLX.so.0 ${GL_ROOT}"
-			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLdispatch.so.0 ${GL_ROOT}"
-			"libOpenCL.so.1.0.0 ${CL_ROOT}"
-			"libOpenGL.so.0 ${GL_ROOT}"
-			"libcuda.so.${NV_SOVER}"
-			"libnvcuvid.so.${NV_SOVER}"
-			"libnvidia-compiler.so.${NV_SOVER}"
-			"libnvidia-eglcore.so.${NV_SOVER}"
-			"libnvidia-encode.so.${NV_SOVER}"
-			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
-			"libnvidia-fbc.so.${NV_SOVER}"
-			"libnvidia-glcore.so.${NV_SOVER}"
-			"libnvidia-glsi.so.${NV_SOVER}"
-			"libnvidia-ifr.so.${NV_SOVER}"
-			"libnvidia-opencl.so.${NV_SOVER}"
-			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
-			"libvdpau_nvidia.so.${NV_SOVER}"
-		)
-
-		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
-		then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-egl-wayland.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
-		then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-wfb.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_FreeBSD; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-tls.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_linux; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-ml.so.${NV_SOVER}"
-				"tls/libnvidia-tls.so.${NV_SOVER}"
-			)
-		fi
-
-		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
-			donvidia ${libdir}/${NV_LIB}
-		done
-	fi
-}
-
-pkg_preinst() {
-	if use driver && use kernel_linux; then
-		linux-mod_pkg_preinst
-
-		local videogroup="$(egetent group video | cut -d ':' -f 3)"
-		if [ -z "${videogroup}" ]; then
-			eerror "Failed to determine the video group gid"
-			die "Failed to determine the video group gid"
-		else
-			sed -i \
-				-e "s:PACKAGE:${PF}:g" \
-				-e "s:VIDEOGID:${videogroup}:" \
-				"${D}"/etc/modprobe.d/nvidia.conf || die
-		fi
-	fi
-
-	# Clean the dynamic libGL stuff's home to ensure
-	# we dont have stale libs floating around
-	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
-		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
-	fi
-	# Make sure we nuke the old nvidia-glx's env.d file
-	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
-		rm -f "${ROOT}"/etc/env.d/09nvidia
-	fi
-}
-
-pkg_postinst() {
-	use driver && use kernel_linux && linux-mod_pkg_postinst
-
-	# Switch to the nvidia implementation
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
-	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
-
-	readme.gentoo_print_elog
-
-	if ! use X; then
-		elog "You have elected to not install the X.org driver. Along with"
-		elog "this the OpenGL libraries and VDPAU libraries were not"
-		elog "installed. Additionally, once the driver is loaded your card"
-		elog "and fan will run at max speed which may not be desirable."
-		elog "Use the 'nvidia-smi' init script to have your card and fan"
-		elog "speed scale appropriately."
-		elog
-	fi
-	if ! use tools; then
-		elog "USE=tools controls whether the nvidia-settings application"
-		elog "is installed. If you would like to use it, enable that"
-		elog "flag and re-emerge this ebuild. Optionally you can install"
-		elog "media-video/nvidia-settings"
-		elog
-	fi
-}
-
-pkg_prerm() {
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}
-
-pkg_postrm() {
-	use driver && use kernel_linux && linux-mod_pkg_postrm
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-375.66-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-375.66-r1.ebuild
deleted file mode 100644
index 59ee6f6b715..00000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-375.66-r1.ebuild
+++ /dev/null
@@ -1,569 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
-	portability toolchain-funcs unpacker user udev
-
-NV_URI="http://http.download.nvidia.com/XFree86/"
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
-ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
-X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
-SRC_URI="
-	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
-	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
-	arm? ( ${NV_URI}Linux-32bit-ARM/${PV}/${ARM_NV_PACKAGE}.run )
-	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
-	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
-	tools? (
-		https://github.com/NVIDIA/nvidia-settings/archive/${PV}.tar.gz -> nvidia-settings-${PV}.tar.gz
-	)
-"
-
-LICENSE="GPL-2 NVIDIA-r2"
-SLOT="0/${PV%.*}"
-KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
-RESTRICT="bindist mirror"
-EMULTILIB_PKG="true"
-
-IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
-REQUIRED_USE="
-	tools? ( X )
-	static-libs? ( tools )
-"
-
-COMMON="
-	app-eselect/eselect-opencl
-	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
-	tools? (
-		dev-libs/atk
-		dev-libs/glib:2
-		dev-libs/jansson
-		gtk3? (
-			x11-libs/gtk+:3
-		)
-		x11-libs/cairo
-		x11-libs/gdk-pixbuf[X]
-		x11-libs/gtk+:2
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXrandr
-		x11-libs/libXv
-		x11-libs/libXxf86vm
-		x11-libs/pango[X]
-	)
-	X? (
-		>=app-eselect/eselect-opengl-1.0.9
-		app-misc/pax-utils
-	)
-"
-DEPEND="
-	${COMMON}
-	kernel_linux? ( virtual/linux-sources )
-"
-RDEPEND="
-	${COMMON}
-	acpi? ( sys-power/acpid )
-	tools? ( !media-video/nvidia-settings )
-	wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
-	X? (
-		<x11-base/xorg-server-1.19.99:=
-		>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
-		sys-libs/zlib[${MULTILIB_USEDEP}]
-	)
-"
-
-QA_PREBUILT="opt/* usr/lib*"
-
-S=${WORKDIR}/
-
-nvidia_drivers_versions_check() {
-	if use amd64 && has_multilib_profile && \
-		[ "${DEFAULT_ABI}" != "amd64" ]; then
-		eerror "This ebuild doesn't currently support changing your default ABI"
-		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
-	fi
-
-	if use kernel_linux && kernel_is ge 4 12; then
-		ewarn "Gentoo supports kernels which are supported by NVIDIA"
-		ewarn "which are limited to the following kernels:"
-		ewarn "<sys-kernel/gentoo-sources-4.12"
-		ewarn "<sys-kernel/vanilla-sources-4.12"
-		ewarn ""
-		ewarn "You are free to utilize epatch_user to provide whatever"
-		ewarn "support you feel is appropriate, but will not receive"
-		ewarn "support as a result of those changes."
-		ewarn ""
-		ewarn "Do not file a bug report about this."
-		ewarn ""
-	fi
-
-	# Since Nvidia ships many different series of drivers, we need to give the user
-	# some kind of guidance as to what version they should install. This tries
-	# to point the user in the right direction but can't be perfect. check
-	# nvidia-driver.eclass
-	nvidia-driver-check-warning
-
-	# Kernel features/options to check for
-	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
-	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
-
-	# Now do the above checks
-	use kernel_linux && check_extra_config
-}
-
-pkg_pretend() {
-	nvidia_drivers_versions_check
-}
-
-pkg_setup() {
-	nvidia_drivers_versions_check
-
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	if use driver && use kernel_linux; then
-		MODULE_NAMES="nvidia(video:${S}/kernel)"
-		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
-		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
-
-		# This needs to run after MODULE_NAMES (so that the eclass checks
-		# whether the kernel supports loadable modules) but before BUILD_PARAMS
-		# is set (so that KV_DIR is populated).
-		linux-mod_pkg_setup
-
-		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
-
-		# linux-mod_src_compile calls set_arch_to_kernel, which
-		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
-		# expects x86_64 or i386 and then converts it to x86
-		# later on in the build process
-		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
-	fi
-
-	if use kernel_linux && kernel_is lt 2 6 9; then
-		eerror "You must build this against 2.6.9 or higher kernels."
-	fi
-
-	# set variables to where files are in the package structure
-	if use kernel_FreeBSD; then
-		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
-		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
-		NV_DOC="${S}/doc"
-		NV_OBJ="${S}/obj"
-		NV_SRC="${S}/src"
-		NV_MAN="${S}/x11/man"
-		NV_X11="${S}/obj"
-		NV_SOVER=1
-	elif use kernel_linux; then
-		NV_DOC="${S}"
-		NV_OBJ="${S}"
-		NV_SRC="${S}/kernel"
-		NV_MAN="${S}"
-		NV_X11="${S}"
-		NV_SOVER=${PV}
-	else
-		die "Could not determine proper NVIDIA package"
-	fi
-}
-
-src_prepare() {
-	eapply "${FILESDIR}"/${P}-profiles-rc.patch
-
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-375.20-pax.patch
-	fi
-
-	local man_file
-	for man_file in "${NV_MAN}"/*1.gz; do
-		gunzip $man_file || die
-	done
-
-	# Allow user patches so they can support RC kernels and whatever else
-	eapply_user
-}
-
-src_compile() {
-	# This is already the default on Linux, as there's no toplevel Makefile, but
-	# on FreeBSD there's one and triggers the kernel module build, as we install
-	# it by itself, pass this.
-
-	cd "${NV_SRC}"
-	if use kernel_FreeBSD; then
-		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
-			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
-	elif use driver && use kernel_linux; then
-		MAKEOPTS=-j1 linux-mod_src_compile
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			AR="$(tc-getAR)" \
-			CC="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NV_VERBOSE=1 \
-			RANLIB="$(tc-getRANLIB)" \
-			DO_STRIP= \
-			build-xnvctrl
-
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			CC="$(tc-getCC)" \
-			GTK3_AVAILABLE=$(usex gtk3 1 0) \
-			LD="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NVML_ENABLED=0 \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			DO_STRIP=
-	fi
-}
-
-# Install nvidia library:
-# the first parameter is the library to install
-# the second parameter is the provided soversion
-# the third parameter is the target directory if it is not /usr/lib
-donvidia() {
-	# Full path to library
-	nv_LIB="${1}"
-
-	# SOVER to use
-	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
-
-	# Where to install
-	nv_DEST="${2}"
-
-	# Get just the library name
-	nv_LIBNAME=$(basename "${nv_LIB}")
-
-	if [[ "${nv_DEST}" ]]; then
-		exeinto ${nv_DEST}
-		action="doexe"
-	else
-		nv_DEST="/usr/$(get_libdir)"
-		action="dolib.so"
-	fi
-
-	# Install the library
-	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
-
-	# If the library has a SONAME and SONAME does not match the library name,
-	# then we need to create a symlink
-	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
-		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
-			|| die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
-	fi
-
-	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
-		|| die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
-}
-
-src_install() {
-	if use driver && use kernel_linux; then
-		linux-mod_src_install
-
-		# Add the aliases
-		# This file is tweaked with the appropriate video group in
-		# pkg_preinst, see bug #491414
-		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-		doins "${FILESDIR}"/nvidia-rmmod.conf
-
-		# Ensures that our device nodes are created when not using X
-		exeinto "$(get_udevdir)"
-		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
-		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
-	elif use kernel_FreeBSD; then
-		if use x86-fbsd; then
-			insinto /boot/modules
-			doins "${S}/src/nvidia.kld"
-		fi
-
-		exeinto /boot/modules
-		doexe "${S}/src/nvidia.ko"
-	fi
-
-	# NVIDIA kernel <-> userspace driver config lib
-	donvidia "${NV_OBJ}"/libnvidia-cfg.so.${NV_SOVER}
-
-	# NVIDIA framebuffer capture library
-	donvidia "${NV_OBJ}"/libnvidia-fbc.so.${NV_SOVER}
-
-	# NVIDIA video encode/decode <-> CUDA
-	if use kernel_linux; then
-		donvidia "${NV_OBJ}"/libnvcuvid.so.${NV_SOVER}
-		donvidia "${NV_OBJ}"/libnvidia-encode.so.${NV_SOVER}
-	fi
-
-	if use X; then
-		# Xorg DDX driver
-		insinto /usr/$(get_libdir)/xorg/modules/drivers
-		doins "${NV_X11}"/nvidia_drv.so
-
-		# Xorg GLX driver
-		donvidia "${NV_X11}"/libglx.so.${NV_SOVER} \
-			/usr/$(get_libdir)/opengl/nvidia/extensions
-
-		# Xorg nvidia.conf
-		if has_version '>=x11-base/xorg-server-1.16'; then
-			insinto /usr/share/X11/xorg.conf.d
-			newins {,50-}nvidia-drm-outputclass.conf
-		fi
-
-		insinto /usr/share/glvnd/egl_vendor.d
-		doins "${NV_X11}"/10_nvidia.json
-	fi
-
-	# OpenCL ICD for NVIDIA
-	if use kernel_linux; then
-		insinto /etc/OpenCL/vendors
-		doins "${NV_OBJ}"/nvidia.icd
-	fi
-
-	# Documentation
-	if use kernel_FreeBSD; then
-		dodoc "${NV_DOC}"/README
-		use X && doman "${NV_MAN}"/nvidia-xconfig.1
-		use tools && doman "${NV_MAN}"/nvidia-settings.1
-	else
-		# Docs
-		newdoc "${NV_DOC}"/README.txt README
-		dodoc "${NV_DOC}"/NVIDIA_Changelog
-		doman "${NV_MAN}"/nvidia-smi.1
-		use X && doman "${NV_MAN}"/nvidia-xconfig.1
-		use tools && doman "${NV_MAN}"/nvidia-settings.1
-		doman "${NV_MAN}"/nvidia-cuda-mps-control.1
-	fi
-
-	docinto html
-	dodoc -r "${NV_DOC}"/html/*
-
-	# Helper Apps
-	exeinto /opt/bin/
-
-	if use X; then
-		doexe "${NV_OBJ}"/nvidia-xconfig
-
-		insinto /etc/vulkan/icd.d
-		doins nvidia_icd.json
-	fi
-
-	if use kernel_linux; then
-		doexe "${NV_OBJ}"/nvidia-cuda-mps-control
-		doexe "${NV_OBJ}"/nvidia-cuda-mps-server
-		doexe "${NV_OBJ}"/nvidia-debugdump
-		doexe "${NV_OBJ}"/nvidia-persistenced
-		doexe "${NV_OBJ}"/nvidia-smi
-
-		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
-		doexe "${NV_OBJ}"/nvidia-modprobe
-		fowners root:video /opt/bin/nvidia-modprobe
-		fperms 4710 /opt/bin/nvidia-modprobe
-		dosym /{opt,usr}/bin/nvidia-modprobe
-
-		doman nvidia-cuda-mps-control.1
-		doman nvidia-modprobe.1
-		doman nvidia-persistenced.1
-		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
-		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
-		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src/ \
-			DESTDIR="${D}" \
-			GTK3_AVAILABLE=$(usex gtk3 1 0) \
-			LIBDIR="${D}/usr/$(get_libdir)" \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			PREFIX=/usr \
-			DO_STRIP= \
-			install
-
-		if use static-libs; then
-			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
-
-			insinto /usr/include/NVCtrl
-			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
-		fi
-
-		insinto /usr/share/nvidia/
-		doins nvidia-application-profiles-${PV}-key-documentation
-
-		insinto /etc/nvidia
-		newins \
-			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
-
-		# There is no icon in the FreeBSD tarball.
-		use kernel_FreeBSD || \
-			doicon "${NV_OBJ}"/nvidia-settings.png
-
-		domenu "${FILESDIR}"/nvidia-settings.desktop
-
-		exeinto /etc/X11/xinit/xinitrc.d
-		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-	fi
-
-	dobin "${NV_OBJ}"/nvidia-bug-report.sh
-
-	if has_multilib_profile && use multilib; then
-		local OABI=${ABI}
-		for ABI in $(get_install_abis); do
-			src_install-libs
-		done
-		ABI=${OABI}
-		unset OABI
-	else
-		src_install-libs
-	fi
-
-	is_final_abi || die "failed to iterate through all ABIs"
-
-	readme.gentoo_create_doc
-}
-
-src_install-libs() {
-	local inslibdir=$(get_libdir)
-	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
-	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
-	local nv_libdir="${NV_OBJ}"
-
-	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
-		nv_libdir="${NV_OBJ}"/32
-	fi
-
-	if use X; then
-		NV_GLX_LIBRARIES=(
-			"libEGL.so.$(usex compat ${NV_SOVER} 1) ${GL_ROOT}"
-			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
-			"libGLESv1_CM.so.1 ${GL_ROOT}"
-			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLESv2.so.2 ${GL_ROOT}"
-			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLX.so.0 ${GL_ROOT}"
-			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLdispatch.so.0 ${GL_ROOT}"
-			"libOpenCL.so.1.0.0 ${CL_ROOT}"
-			"libOpenGL.so.0 ${GL_ROOT}"
-			"libcuda.so.${NV_SOVER}"
-			"libnvcuvid.so.${NV_SOVER}"
-			"libnvidia-compiler.so.${NV_SOVER}"
-			"libnvidia-eglcore.so.${NV_SOVER}"
-			"libnvidia-encode.so.${NV_SOVER}"
-			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
-			"libnvidia-fbc.so.${NV_SOVER}"
-			"libnvidia-glcore.so.${NV_SOVER}"
-			"libnvidia-glsi.so.${NV_SOVER}"
-			"libnvidia-ifr.so.${NV_SOVER}"
-			"libnvidia-opencl.so.${NV_SOVER}"
-			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
-			"libvdpau_nvidia.so.${NV_SOVER}"
-		)
-
-		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
-		then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-egl-wayland.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
-		then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-wfb.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_FreeBSD; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-tls.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_linux; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-ml.so.${NV_SOVER}"
-				"tls/libnvidia-tls.so.${NV_SOVER}"
-			)
-		fi
-
-		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
-			donvidia "${nv_libdir}"/${NV_LIB}
-		done
-	fi
-}
-
-pkg_preinst() {
-	if use driver && use kernel_linux; then
-		linux-mod_pkg_preinst
-
-		local videogroup="$(egetent group video | cut -d ':' -f 3)"
-		if [ -z "${videogroup}" ]; then
-			eerror "Failed to determine the video group gid"
-			die "Failed to determine the video group gid"
-		else
-			sed -i \
-				-e "s:PACKAGE:${PF}:g" \
-				-e "s:VIDEOGID:${videogroup}:" \
-				"${D}"/etc/modprobe.d/nvidia.conf || die
-		fi
-	fi
-
-	# Clean the dynamic libGL stuff's home to ensure
-	# we dont have stale libs floating around
-	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
-		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
-	fi
-	# Make sure we nuke the old nvidia-glx's env.d file
-	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
-		rm -f "${ROOT}"/etc/env.d/09nvidia
-	fi
-}
-
-pkg_postinst() {
-	use driver && use kernel_linux && linux-mod_pkg_postinst
-
-	# Switch to the nvidia implementation
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
-	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
-
-	readme.gentoo_print_elog
-
-	if ! use X; then
-		elog "You have elected to not install the X.org driver. Along with"
-		elog "this the OpenGL libraries and VDPAU libraries were not"
-		elog "installed. Additionally, once the driver is loaded your card"
-		elog "and fan will run at max speed which may not be desirable."
-		elog "Use the 'nvidia-smi' init script to have your card and fan"
-		elog "speed scale appropriately."
-		elog
-	fi
-	if ! use tools; then
-		elog "USE=tools controls whether the nvidia-settings application"
-		elog "is installed. If you would like to use it, enable that"
-		elog "flag and re-emerge this ebuild. Optionally you can install"
-		elog "media-video/nvidia-settings"
-		elog
-	fi
-}
-
-pkg_prerm() {
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}
-
-pkg_postrm() {
-	use driver && use kernel_linux && linux-mod_pkg_postrm
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-375.66.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-375.66.ebuild
deleted file mode 100644
index 3cf67f83bcf..00000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-375.66.ebuild
+++ /dev/null
@@ -1,564 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
-	portability toolchain-funcs unpacker user udev
-
-NV_URI="http://http.download.nvidia.com/XFree86/"
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
-ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
-X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
-SRC_URI="
-	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
-	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
-	arm? ( ${NV_URI}Linux-32bit-ARM/${PV}/${ARM_NV_PACKAGE}.run )
-	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
-	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
-	tools? (
-		https://github.com/NVIDIA/nvidia-settings/archive/${PV}.tar.gz -> nvidia-settings-${PV}.tar.gz
-	)
-"
-
-LICENSE="GPL-2 NVIDIA-r2"
-SLOT="0/${PV%.*}"
-KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
-RESTRICT="bindist mirror"
-EMULTILIB_PKG="true"
-
-IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
-REQUIRED_USE="
-	tools? ( X )
-	static-libs? ( tools )
-"
-
-COMMON="
-	app-eselect/eselect-opencl
-	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
-	tools? (
-		dev-libs/atk
-		dev-libs/glib:2
-		dev-libs/jansson
-		gtk3? (
-			x11-libs/gtk+:3
-		)
-		x11-libs/cairo
-		x11-libs/gdk-pixbuf[X]
-		x11-libs/gtk+:2
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXrandr
-		x11-libs/libXv
-		x11-libs/libXxf86vm
-		x11-libs/pango[X]
-	)
-	X? (
-		>=app-eselect/eselect-opengl-1.0.9
-		app-misc/pax-utils
-	)
-"
-DEPEND="
-	${COMMON}
-	kernel_linux? ( virtual/linux-sources )
-"
-RDEPEND="
-	${COMMON}
-	acpi? ( sys-power/acpid )
-	tools? ( !media-video/nvidia-settings )
-	wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
-	X? (
-		<x11-base/xorg-server-1.19.99:=
-		>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
-		sys-libs/zlib[${MULTILIB_USEDEP}]
-	)
-"
-
-QA_PREBUILT="opt/* usr/lib*"
-
-S=${WORKDIR}/
-
-nvidia_drivers_versions_check() {
-	if use amd64 && has_multilib_profile && \
-		[ "${DEFAULT_ABI}" != "amd64" ]; then
-		eerror "This ebuild doesn't currently support changing your default ABI"
-		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
-	fi
-
-	if use kernel_linux && kernel_is ge 4 12; then
-		ewarn "Gentoo supports kernels which are supported by NVIDIA"
-		ewarn "which are limited to the following kernels:"
-		ewarn "<sys-kernel/gentoo-sources-4.12"
-		ewarn "<sys-kernel/vanilla-sources-4.12"
-		ewarn ""
-		ewarn "You are free to utilize epatch_user to provide whatever"
-		ewarn "support you feel is appropriate, but will not receive"
-		ewarn "support as a result of those changes."
-		ewarn ""
-		ewarn "Do not file a bug report about this."
-		ewarn ""
-	fi
-
-	# Since Nvidia ships many different series of drivers, we need to give the user
-	# some kind of guidance as to what version they should install. This tries
-	# to point the user in the right direction but can't be perfect. check
-	# nvidia-driver.eclass
-	nvidia-driver-check-warning
-
-	# Kernel features/options to check for
-	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
-	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
-
-	# Now do the above checks
-	use kernel_linux && check_extra_config
-}
-
-pkg_pretend() {
-	nvidia_drivers_versions_check
-}
-
-pkg_setup() {
-	nvidia_drivers_versions_check
-
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	if use driver && use kernel_linux; then
-		MODULE_NAMES="nvidia(video:${S}/kernel)"
-		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
-		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
-
-		# This needs to run after MODULE_NAMES (so that the eclass checks
-		# whether the kernel supports loadable modules) but before BUILD_PARAMS
-		# is set (so that KV_DIR is populated).
-		linux-mod_pkg_setup
-
-		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
-
-		# linux-mod_src_compile calls set_arch_to_kernel, which
-		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
-		# expects x86_64 or i386 and then converts it to x86
-		# later on in the build process
-		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
-	fi
-
-	if use kernel_linux && kernel_is lt 2 6 9; then
-		eerror "You must build this against 2.6.9 or higher kernels."
-	fi
-
-	# set variables to where files are in the package structure
-	if use kernel_FreeBSD; then
-		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
-		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
-		NV_DOC="${S}/doc"
-		NV_OBJ="${S}/obj"
-		NV_SRC="${S}/src"
-		NV_MAN="${S}/x11/man"
-		NV_X11="${S}/obj"
-		NV_SOVER=1
-	elif use kernel_linux; then
-		NV_DOC="${S}"
-		NV_OBJ="${S}"
-		NV_SRC="${S}/kernel"
-		NV_MAN="${S}"
-		NV_X11="${S}"
-		NV_SOVER=${PV}
-	else
-		die "Could not determine proper NVIDIA package"
-	fi
-}
-
-src_prepare() {
-	eapply "${FILESDIR}"/${P}-profiles-rc.patch
-
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-375.20-pax.patch
-	fi
-
-	# Allow user patches so they can support RC kernels and whatever else
-	eapply_user
-}
-
-src_compile() {
-	# This is already the default on Linux, as there's no toplevel Makefile, but
-	# on FreeBSD there's one and triggers the kernel module build, as we install
-	# it by itself, pass this.
-
-	cd "${NV_SRC}"
-	if use kernel_FreeBSD; then
-		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
-			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
-	elif use driver && use kernel_linux; then
-		MAKEOPTS=-j1 linux-mod_src_compile
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			AR="$(tc-getAR)" \
-			CC="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NV_VERBOSE=1 \
-			RANLIB="$(tc-getRANLIB)" \
-			DO_STRIP= \
-			build-xnvctrl
-
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			CC="$(tc-getCC)" \
-			GTK3_AVAILABLE=$(usex gtk3 1 0) \
-			LD="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NVML_ENABLED=0 \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			DO_STRIP=
-	fi
-}
-
-# Install nvidia library:
-# the first parameter is the library to install
-# the second parameter is the provided soversion
-# the third parameter is the target directory if it is not /usr/lib
-donvidia() {
-	# Full path to library
-	nv_LIB="${1}"
-
-	# SOVER to use
-	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
-
-	# Where to install
-	nv_DEST="${2}"
-
-	# Get just the library name
-	nv_LIBNAME=$(basename "${nv_LIB}")
-
-	if [[ "${nv_DEST}" ]]; then
-		exeinto ${nv_DEST}
-		action="doexe"
-	else
-		nv_DEST="/usr/$(get_libdir)"
-		action="dolib.so"
-	fi
-
-	# Install the library
-	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
-
-	# If the library has a SONAME and SONAME does not match the library name,
-	# then we need to create a symlink
-	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
-		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
-			|| die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
-	fi
-
-	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
-		|| die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
-}
-
-src_install() {
-	if use driver && use kernel_linux; then
-		linux-mod_src_install
-
-		# Add the aliases
-		# This file is tweaked with the appropriate video group in
-		# pkg_preinst, see bug #491414
-		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-		doins "${FILESDIR}"/nvidia-rmmod.conf
-
-		# Ensures that our device nodes are created when not using X
-		exeinto "$(get_udevdir)"
-		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
-		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
-	elif use kernel_FreeBSD; then
-		if use x86-fbsd; then
-			insinto /boot/modules
-			doins "${S}/src/nvidia.kld"
-		fi
-
-		exeinto /boot/modules
-		doexe "${S}/src/nvidia.ko"
-	fi
-
-	# NVIDIA kernel <-> userspace driver config lib
-	donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
-
-	# NVIDIA framebuffer capture library
-	donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
-
-	# NVIDIA video encode/decode <-> CUDA
-	if use kernel_linux; then
-		donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
-		donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
-	fi
-
-	if use X; then
-		# Xorg DDX driver
-		insinto /usr/$(get_libdir)/xorg/modules/drivers
-		doins ${NV_X11}/nvidia_drv.so
-
-		# Xorg GLX driver
-		donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
-			/usr/$(get_libdir)/opengl/nvidia/extensions
-
-		# Xorg nvidia.conf
-		if has_version '>=x11-base/xorg-server-1.16'; then
-			insinto /usr/share/X11/xorg.conf.d
-			newins {,50-}nvidia-drm-outputclass.conf
-		fi
-
-		insinto /usr/share/glvnd/egl_vendor.d
-		doins ${NV_X11}/10_nvidia.json
-	fi
-
-	# OpenCL ICD for NVIDIA
-	if use kernel_linux; then
-		insinto /etc/OpenCL/vendors
-		doins ${NV_OBJ}/nvidia.icd
-	fi
-
-	# Documentation
-	if use kernel_FreeBSD; then
-		dodoc "${NV_DOC}/README"
-		use X && doman "${NV_MAN}/nvidia-xconfig.1"
-		use tools && doman "${NV_MAN}/nvidia-settings.1"
-	else
-		# Docs
-		newdoc "${NV_DOC}/README.txt" README
-		dodoc "${NV_DOC}/NVIDIA_Changelog"
-		doman "${NV_MAN}/nvidia-smi.1.gz"
-		use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
-		use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
-		doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
-	fi
-
-	docinto html
-	dodoc -r ${NV_DOC}/html/*
-
-	# Helper Apps
-	exeinto /opt/bin/
-
-	if use X; then
-		doexe ${NV_OBJ}/nvidia-xconfig
-
-		insinto /etc/vulkan/icd.d
-		doins nvidia_icd.json
-	fi
-
-	if use kernel_linux; then
-		doexe ${NV_OBJ}/nvidia-cuda-mps-control
-		doexe ${NV_OBJ}/nvidia-cuda-mps-server
-		doexe ${NV_OBJ}/nvidia-debugdump
-		doexe ${NV_OBJ}/nvidia-persistenced
-		doexe ${NV_OBJ}/nvidia-smi
-
-		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
-		doexe ${NV_OBJ}/nvidia-modprobe
-		fowners root:video /opt/bin/nvidia-modprobe
-		fperms 4710 /opt/bin/nvidia-modprobe
-		dosym /{opt,usr}/bin/nvidia-modprobe
-
-		doman nvidia-cuda-mps-control.1.gz
-		doman nvidia-modprobe.1.gz
-		doman nvidia-persistenced.1.gz
-		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
-		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
-		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src/ \
-			DESTDIR="${D}" \
-			GTK3_AVAILABLE=$(usex gtk3 1 0) \
-			LIBDIR="${D}/usr/$(get_libdir)" \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			PREFIX=/usr \
-			DO_STRIP= \
-			install
-
-		if use static-libs; then
-			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
-
-			insinto /usr/include/NVCtrl
-			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
-		fi
-
-		insinto /usr/share/nvidia/
-		doins nvidia-application-profiles-${PV}-key-documentation
-
-		insinto /etc/nvidia
-		newins \
-			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
-
-		# There is no icon in the FreeBSD tarball.
-		use kernel_FreeBSD || \
-			doicon ${NV_OBJ}/nvidia-settings.png
-
-		domenu "${FILESDIR}"/nvidia-settings.desktop
-
-		exeinto /etc/X11/xinit/xinitrc.d
-		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-	fi
-
-	dobin ${NV_OBJ}/nvidia-bug-report.sh
-
-	if has_multilib_profile && use multilib; then
-		local OABI=${ABI}
-		for ABI in $(get_install_abis); do
-			src_install-libs
-		done
-		ABI=${OABI}
-		unset OABI
-	else
-		src_install-libs
-	fi
-
-	is_final_abi || die "failed to iterate through all ABIs"
-
-	readme.gentoo_create_doc
-}
-
-src_install-libs() {
-	local inslibdir=$(get_libdir)
-	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
-	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
-	local libdir=${NV_OBJ}
-
-	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
-		libdir=${NV_OBJ}/32
-	fi
-
-	if use X; then
-		NV_GLX_LIBRARIES=(
-			"libEGL.so.$(usex compat ${NV_SOVER} 1) ${GL_ROOT}"
-			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
-			"libGLESv1_CM.so.1 ${GL_ROOT}"
-			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLESv2.so.2 ${GL_ROOT}"
-			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLX.so.0 ${GL_ROOT}"
-			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLdispatch.so.0 ${GL_ROOT}"
-			"libOpenCL.so.1.0.0 ${CL_ROOT}"
-			"libOpenGL.so.0 ${GL_ROOT}"
-			"libcuda.so.${NV_SOVER}"
-			"libnvcuvid.so.${NV_SOVER}"
-			"libnvidia-compiler.so.${NV_SOVER}"
-			"libnvidia-eglcore.so.${NV_SOVER}"
-			"libnvidia-encode.so.${NV_SOVER}"
-			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
-			"libnvidia-fbc.so.${NV_SOVER}"
-			"libnvidia-glcore.so.${NV_SOVER}"
-			"libnvidia-glsi.so.${NV_SOVER}"
-			"libnvidia-ifr.so.${NV_SOVER}"
-			"libnvidia-opencl.so.${NV_SOVER}"
-			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
-			"libvdpau_nvidia.so.${NV_SOVER}"
-		)
-
-		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
-		then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-egl-wayland.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
-		then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-wfb.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_FreeBSD; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-tls.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_linux; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-ml.so.${NV_SOVER}"
-				"tls/libnvidia-tls.so.${NV_SOVER}"
-			)
-		fi
-
-		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
-			donvidia ${libdir}/${NV_LIB}
-		done
-	fi
-}
-
-pkg_preinst() {
-	if use driver && use kernel_linux; then
-		linux-mod_pkg_preinst
-
-		local videogroup="$(egetent group video | cut -d ':' -f 3)"
-		if [ -z "${videogroup}" ]; then
-			eerror "Failed to determine the video group gid"
-			die "Failed to determine the video group gid"
-		else
-			sed -i \
-				-e "s:PACKAGE:${PF}:g" \
-				-e "s:VIDEOGID:${videogroup}:" \
-				"${D}"/etc/modprobe.d/nvidia.conf || die
-		fi
-	fi
-
-	# Clean the dynamic libGL stuff's home to ensure
-	# we dont have stale libs floating around
-	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
-		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
-	fi
-	# Make sure we nuke the old nvidia-glx's env.d file
-	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
-		rm -f "${ROOT}"/etc/env.d/09nvidia
-	fi
-}
-
-pkg_postinst() {
-	use driver && use kernel_linux && linux-mod_pkg_postinst
-
-	# Switch to the nvidia implementation
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
-	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
-
-	readme.gentoo_print_elog
-
-	if ! use X; then
-		elog "You have elected to not install the X.org driver. Along with"
-		elog "this the OpenGL libraries and VDPAU libraries were not"
-		elog "installed. Additionally, once the driver is loaded your card"
-		elog "and fan will run at max speed which may not be desirable."
-		elog "Use the 'nvidia-smi' init script to have your card and fan"
-		elog "speed scale appropriately."
-		elog
-	fi
-	if ! use tools; then
-		elog "USE=tools controls whether the nvidia-settings application"
-		elog "is installed. If you would like to use it, enable that"
-		elog "flag and re-emerge this ebuild. Optionally you can install"
-		elog "media-video/nvidia-settings"
-		elog
-	fi
-}
-
-pkg_prerm() {
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}
-
-pkg_postrm() {
-	use driver && use kernel_linux && linux-mod_pkg_postrm
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-384.59-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-384.59-r1.ebuild
deleted file mode 100644
index 0244ed71c40..00000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-384.59-r1.ebuild
+++ /dev/null
@@ -1,578 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
-	portability toolchain-funcs unpacker user udev
-
-NV_URI="http://http.download.nvidia.com/XFree86/"
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
-ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
-X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
-SRC_URI="
-	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
-	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
-	arm? ( ${NV_URI}Linux-32bit-ARM/${PV}/${ARM_NV_PACKAGE}.run )
-	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
-	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
-	tools? (
-		https://github.com/NVIDIA/nvidia-settings/archive/${PV}.tar.gz -> nvidia-settings-${PV}.tar.gz
-	)
-"
-
-LICENSE="GPL-2 NVIDIA-r2"
-SLOT="0/${PV%.*}"
-KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
-RESTRICT="bindist mirror"
-EMULTILIB_PKG="true"
-
-IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
-REQUIRED_USE="
-	tools? ( X )
-	static-libs? ( tools )
-"
-
-COMMON="
-	app-eselect/eselect-opencl
-	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
-	tools? (
-		dev-libs/atk
-		dev-libs/glib:2
-		dev-libs/jansson
-		gtk3? (
-			x11-libs/gtk+:3
-		)
-		x11-libs/cairo
-		x11-libs/gdk-pixbuf[X]
-		x11-libs/gtk+:2
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXrandr
-		x11-libs/libXv
-		x11-libs/libXxf86vm
-		x11-libs/pango[X]
-	)
-	X? (
-		>=app-eselect/eselect-opengl-1.0.9
-		app-misc/pax-utils
-	)
-"
-DEPEND="
-	${COMMON}
-	kernel_linux? ( virtual/linux-sources )
-	tools? ( sys-apps/dbus )
-"
-RDEPEND="
-	${COMMON}
-	acpi? ( sys-power/acpid )
-	tools? ( !media-video/nvidia-settings )
-	wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
-	X? (
-		<x11-base/xorg-server-1.19.99:=
-		>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
-		sys-libs/zlib[${MULTILIB_USEDEP}]
-	)
-"
-
-QA_PREBUILT="opt/* usr/lib*"
-
-S=${WORKDIR}/
-
-nvidia_drivers_versions_check() {
-	if use amd64 && has_multilib_profile && \
-		[ "${DEFAULT_ABI}" != "amd64" ]; then
-		eerror "This ebuild doesn't currently support changing your default ABI"
-		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
-	fi
-
-	if use kernel_linux && kernel_is ge 4 13; then
-		ewarn "Gentoo supports kernels which are supported by NVIDIA"
-		ewarn "which are limited to the following kernels:"
-		ewarn "<sys-kernel/gentoo-sources-4.13"
-		ewarn "<sys-kernel/vanilla-sources-4.13"
-		ewarn ""
-		ewarn "You are free to utilize epatch_user to provide whatever"
-		ewarn "support you feel is appropriate, but will not receive"
-		ewarn "support as a result of those changes."
-		ewarn ""
-		ewarn "Do not file a bug report about this."
-		ewarn ""
-	fi
-
-	# Since Nvidia ships many different series of drivers, we need to give the user
-	# some kind of guidance as to what version they should install. This tries
-	# to point the user in the right direction but can't be perfect. check
-	# nvidia-driver.eclass
-	nvidia-driver-check-warning
-
-	# Kernel features/options to check for
-	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
-	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
-
-	# Now do the above checks
-	use kernel_linux && check_extra_config
-}
-
-pkg_pretend() {
-	nvidia_drivers_versions_check
-}
-
-pkg_setup() {
-	nvidia_drivers_versions_check
-
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	if use driver && use kernel_linux; then
-		MODULE_NAMES="nvidia(video:${S}/kernel)"
-		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
-		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
-
-		# This needs to run after MODULE_NAMES (so that the eclass checks
-		# whether the kernel supports loadable modules) but before BUILD_PARAMS
-		# is set (so that KV_DIR is populated).
-		linux-mod_pkg_setup
-
-		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
-
-		# linux-mod_src_compile calls set_arch_to_kernel, which
-		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
-		# expects x86_64 or i386 and then converts it to x86
-		# later on in the build process
-		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
-	fi
-
-	if use kernel_linux && kernel_is lt 2 6 9; then
-		eerror "You must build this against 2.6.9 or higher kernels."
-	fi
-
-	# set variables to where files are in the package structure
-	if use kernel_FreeBSD; then
-		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
-		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
-		NV_DOC="${S}/doc"
-		NV_OBJ="${S}/obj"
-		NV_SRC="${S}/src"
-		NV_MAN="${S}/x11/man"
-		NV_X11="${S}/obj"
-		NV_SOVER=1
-	elif use kernel_linux; then
-		NV_DOC="${S}"
-		NV_OBJ="${S}"
-		NV_SRC="${S}/kernel"
-		NV_MAN="${S}"
-		NV_X11="${S}"
-		NV_SOVER=${PV}
-	else
-		die "Could not determine proper NVIDIA package"
-	fi
-}
-
-src_prepare() {
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-375.20-pax.patch
-	fi
-
-	local man_file
-	for man_file in "${NV_MAN}"/*1.gz; do
-		gunzip $man_file || die
-	done
-
-	# Allow user patches so they can support RC kernels and whatever else
-	eapply_user
-
-	if ! [ -f nvidia_icd.json ]; then
-		cp nvidia_icd.json.template nvidia_icd.json || die
-		sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
-	fi
-}
-
-src_compile() {
-	# This is already the default on Linux, as there's no toplevel Makefile, but
-	# on FreeBSD there's one and triggers the kernel module build, as we install
-	# it by itself, pass this.
-
-	cd "${NV_SRC}"
-	if use kernel_FreeBSD; then
-		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
-			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
-	elif use driver && use kernel_linux; then
-		MAKEOPTS=-j1 linux-mod_src_compile
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			AR="$(tc-getAR)" \
-			CC="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NV_VERBOSE=1 \
-			RANLIB="$(tc-getRANLIB)" \
-			DO_STRIP= \
-			build-xnvctrl
-
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			CC="$(tc-getCC)" \
-			GTK3_AVAILABLE=$(usex gtk3 1 0) \
-			LD="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NVML_ENABLED=0 \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			DO_STRIP=
-	fi
-}
-
-# Install nvidia library:
-# the first parameter is the library to install
-# the second parameter is the provided soversion
-# the third parameter is the target directory if it is not /usr/lib
-donvidia() {
-	# Full path to library
-	nv_LIB="${1}"
-
-	# SOVER to use
-	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
-
-	# Where to install
-	nv_DEST="${2}"
-
-	# Get just the library name
-	nv_LIBNAME=$(basename "${nv_LIB}")
-
-	if [[ "${nv_DEST}" ]]; then
-		exeinto ${nv_DEST}
-		action="doexe"
-	else
-		nv_DEST="/usr/$(get_libdir)"
-		action="dolib.so"
-	fi
-
-	# Install the library
-	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
-
-	# If the library has a SONAME and SONAME does not match the library name,
-	# then we need to create a symlink
-	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
-		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
-			|| die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
-	fi
-
-	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
-		|| die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
-}
-
-src_install() {
-	if use driver && use kernel_linux; then
-		linux-mod_src_install
-
-		# Add the aliases
-		# This file is tweaked with the appropriate video group in
-		# pkg_preinst, see bug #491414
-		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-		doins "${FILESDIR}"/nvidia-rmmod.conf
-
-		# Ensures that our device nodes are created when not using X
-		exeinto "$(get_udevdir)"
-		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
-		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
-	elif use kernel_FreeBSD; then
-		if use x86-fbsd; then
-			insinto /boot/modules
-			doins "${S}/src/nvidia.kld"
-		fi
-
-		exeinto /boot/modules
-		doexe "${S}/src/nvidia.ko"
-	fi
-
-	# NVIDIA kernel <-> userspace driver config lib
-	donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
-
-	# NVIDIA framebuffer capture library
-	donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
-
-	# NVIDIA video encode/decode <-> CUDA
-	if use kernel_linux; then
-		donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
-		donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
-	fi
-
-	if use X; then
-		# Xorg DDX driver
-		insinto /usr/$(get_libdir)/xorg/modules/drivers
-		doins ${NV_X11}/nvidia_drv.so
-
-		# Xorg GLX driver
-		donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
-			/usr/$(get_libdir)/opengl/nvidia/extensions
-
-		# Xorg nvidia.conf
-		if has_version '>=x11-base/xorg-server-1.16'; then
-			insinto /usr/share/X11/xorg.conf.d
-			newins {,50-}nvidia-drm-outputclass.conf
-		fi
-
-		insinto /usr/share/glvnd/egl_vendor.d
-		doins ${NV_X11}/10_nvidia.json
-	fi
-
-	if use wayland; then
-		insinto /usr/share/egl/egl_external_platform.d
-		doins ${NV_X11}/10_nvidia_wayland.json
-	fi
-
-	# OpenCL ICD for NVIDIA
-	if use kernel_linux; then
-		insinto /etc/OpenCL/vendors
-		doins ${NV_OBJ}/nvidia.icd
-	fi
-
-	# Documentation
-	if use kernel_FreeBSD; then
-		dodoc "${NV_DOC}/README"
-		use X && doman "${NV_MAN}"/nvidia-xconfig.1
-		use tools && doman "${NV_MAN}"/nvidia-settings.1
-	else
-		# Docs
-		newdoc "${NV_DOC}/README.txt" README
-		dodoc "${NV_DOC}/NVIDIA_Changelog"
-		doman "${NV_MAN}"/nvidia-smi.1
-		use X && doman "${NV_MAN}"/nvidia-xconfig.1
-		use tools && doman "${NV_MAN}"/nvidia-settings.1
-		doman "${NV_MAN}"/nvidia-cuda-mps-control.1
-	fi
-
-	docinto html
-	dodoc -r ${NV_DOC}/html/*
-
-	# Helper Apps
-	exeinto /opt/bin/
-
-	if use X; then
-		doexe ${NV_OBJ}/nvidia-xconfig
-
-		insinto /etc/vulkan/icd.d
-		doins nvidia_icd.json
-	fi
-
-	if use kernel_linux; then
-		doexe ${NV_OBJ}/nvidia-cuda-mps-control
-		doexe ${NV_OBJ}/nvidia-cuda-mps-server
-		doexe ${NV_OBJ}/nvidia-debugdump
-		doexe ${NV_OBJ}/nvidia-persistenced
-		doexe ${NV_OBJ}/nvidia-smi
-
-		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
-		doexe ${NV_OBJ}/nvidia-modprobe
-		fowners root:video /opt/bin/nvidia-modprobe
-		fperms 4710 /opt/bin/nvidia-modprobe
-		dosym /{opt,usr}/bin/nvidia-modprobe
-
-		doman nvidia-cuda-mps-control.1
-		doman nvidia-modprobe.1
-		doman nvidia-persistenced.1
-		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
-		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
-		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src/ \
-			DESTDIR="${D}" \
-			GTK3_AVAILABLE=$(usex gtk3 1 0) \
-			LIBDIR="${D}/usr/$(get_libdir)" \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			PREFIX=/usr \
-			DO_STRIP= \
-			install
-
-		if use static-libs; then
-			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
-
-			insinto /usr/include/NVCtrl
-			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
-		fi
-
-		insinto /usr/share/nvidia/
-		doins nvidia-application-profiles-${PV}-key-documentation
-
-		insinto /etc/nvidia
-		newins \
-			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
-
-		# There is no icon in the FreeBSD tarball.
-		use kernel_FreeBSD || \
-			doicon ${NV_OBJ}/nvidia-settings.png
-
-		domenu "${FILESDIR}"/nvidia-settings.desktop
-
-		exeinto /etc/X11/xinit/xinitrc.d
-		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-	fi
-
-	dobin ${NV_OBJ}/nvidia-bug-report.sh
-
-	if has_multilib_profile && use multilib; then
-		local OABI=${ABI}
-		for ABI in $(get_install_abis); do
-			src_install-libs
-		done
-		ABI=${OABI}
-		unset OABI
-	else
-		src_install-libs
-	fi
-
-	is_final_abi || die "failed to iterate through all ABIs"
-
-	readme.gentoo_create_doc
-}
-
-src_install-libs() {
-	local inslibdir=$(get_libdir)
-	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
-	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
-	local nv_libdir="${NV_OBJ}"
-
-	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
-		nv_libdir="${NV_OBJ}"/32
-	fi
-
-	if use X; then
-		NV_GLX_LIBRARIES=(
-			"libEGL.so.$(usex compat ${NV_SOVER} 1) ${GL_ROOT}"
-			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
-			"libGLESv1_CM.so.1 ${GL_ROOT}"
-			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLESv2.so.2 ${GL_ROOT}"
-			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLX.so.0 ${GL_ROOT}"
-			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLdispatch.so.0 ${GL_ROOT}"
-			"libOpenCL.so.1.0.0 ${CL_ROOT}"
-			"libOpenGL.so.0 ${GL_ROOT}"
-			"libcuda.so.${NV_SOVER}"
-			"libnvcuvid.so.${NV_SOVER}"
-			"libnvidia-compiler.so.${NV_SOVER}"
-			"libnvidia-eglcore.so.${NV_SOVER}"
-			"libnvidia-encode.so.${NV_SOVER}"
-			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
-			"libnvidia-fbc.so.${NV_SOVER}"
-			"libnvidia-glcore.so.${NV_SOVER}"
-			"libnvidia-glsi.so.${NV_SOVER}"
-			"libnvidia-ifr.so.${NV_SOVER}"
-			"libnvidia-opencl.so.${NV_SOVER}"
-			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
-			"libvdpau_nvidia.so.${NV_SOVER}"
-		)
-
-		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
-		then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-egl-wayland.so.1.0.1"
-			)
-		fi
-
-		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
-		then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-wfb.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_FreeBSD; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-tls.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_linux; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-ml.so.${NV_SOVER}"
-				"tls/libnvidia-tls.so.${NV_SOVER}"
-			)
-		fi
-
-		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
-			donvidia "${nv_libdir}"/${NV_LIB}
-		done
-	fi
-}
-
-pkg_preinst() {
-	if use driver && use kernel_linux; then
-		linux-mod_pkg_preinst
-
-		local videogroup="$(egetent group video | cut -d ':' -f 3)"
-		if [ -z "${videogroup}" ]; then
-			eerror "Failed to determine the video group gid"
-			die "Failed to determine the video group gid"
-		else
-			sed -i \
-				-e "s:PACKAGE:${PF}:g" \
-				-e "s:VIDEOGID:${videogroup}:" \
-				"${D}"/etc/modprobe.d/nvidia.conf || die
-		fi
-	fi
-
-	# Clean the dynamic libGL stuff's home to ensure
-	# we dont have stale libs floating around
-	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
-		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
-	fi
-	# Make sure we nuke the old nvidia-glx's env.d file
-	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
-		rm -f "${ROOT}"/etc/env.d/09nvidia
-	fi
-}
-
-pkg_postinst() {
-	use driver && use kernel_linux && linux-mod_pkg_postinst
-
-	# Switch to the nvidia implementation
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
-	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
-
-	readme.gentoo_print_elog
-
-	if ! use X; then
-		elog "You have elected to not install the X.org driver. Along with"
-		elog "this the OpenGL libraries and VDPAU libraries were not"
-		elog "installed. Additionally, once the driver is loaded your card"
-		elog "and fan will run at max speed which may not be desirable."
-		elog "Use the 'nvidia-smi' init script to have your card and fan"
-		elog "speed scale appropriately."
-		elog
-	fi
-	if ! use tools; then
-		elog "USE=tools controls whether the nvidia-settings application"
-		elog "is installed. If you would like to use it, enable that"
-		elog "flag and re-emerge this ebuild. Optionally you can install"
-		elog "media-video/nvidia-settings"
-		elog
-	fi
-}
-
-pkg_prerm() {
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}
-
-pkg_postrm() {
-	use driver && use kernel_linux && linux-mod_pkg_postrm
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-384.69.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-384.69.ebuild
deleted file mode 100644
index fd2e8713d11..00000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-384.69.ebuild
+++ /dev/null
@@ -1,578 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
-	portability toolchain-funcs unpacker user udev
-
-NV_URI="http://http.download.nvidia.com/XFree86/"
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
-ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
-X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
-SRC_URI="
-	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
-	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
-	arm? ( ${NV_URI}Linux-32bit-ARM/${PV}/${ARM_NV_PACKAGE}.run )
-	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
-	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
-	tools? (
-		https://github.com/NVIDIA/nvidia-settings/archive/${PV}.tar.gz -> nvidia-settings-${PV}.tar.gz
-	)
-"
-
-LICENSE="GPL-2 NVIDIA-r2"
-SLOT="0/${PV%.*}"
-KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
-RESTRICT="bindist mirror"
-EMULTILIB_PKG="true"
-
-IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
-REQUIRED_USE="
-	tools? ( X )
-	static-libs? ( tools )
-"
-
-COMMON="
-	app-eselect/eselect-opencl
-	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
-	tools? (
-		dev-libs/atk
-		dev-libs/glib:2
-		dev-libs/jansson
-		gtk3? (
-			x11-libs/gtk+:3
-		)
-		x11-libs/cairo
-		x11-libs/gdk-pixbuf[X]
-		x11-libs/gtk+:2
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXrandr
-		x11-libs/libXv
-		x11-libs/libXxf86vm
-		x11-libs/pango[X]
-	)
-	X? (
-		>=app-eselect/eselect-opengl-1.0.9
-		app-misc/pax-utils
-	)
-"
-DEPEND="
-	${COMMON}
-	kernel_linux? ( virtual/linux-sources )
-	tools? ( sys-apps/dbus )
-"
-RDEPEND="
-	${COMMON}
-	acpi? ( sys-power/acpid )
-	tools? ( !media-video/nvidia-settings )
-	wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
-	X? (
-		<x11-base/xorg-server-1.19.99:=
-		>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
-		sys-libs/zlib[${MULTILIB_USEDEP}]
-	)
-"
-
-QA_PREBUILT="opt/* usr/lib*"
-
-S=${WORKDIR}/
-
-nvidia_drivers_versions_check() {
-	if use amd64 && has_multilib_profile && \
-		[ "${DEFAULT_ABI}" != "amd64" ]; then
-		eerror "This ebuild doesn't currently support changing your default ABI"
-		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
-	fi
-
-	if use kernel_linux && kernel_is ge 4 13; then
-		ewarn "Gentoo supports kernels which are supported by NVIDIA"
-		ewarn "which are limited to the following kernels:"
-		ewarn "<sys-kernel/gentoo-sources-4.13"
-		ewarn "<sys-kernel/vanilla-sources-4.13"
-		ewarn ""
-		ewarn "You are free to utilize epatch_user to provide whatever"
-		ewarn "support you feel is appropriate, but will not receive"
-		ewarn "support as a result of those changes."
-		ewarn ""
-		ewarn "Do not file a bug report about this."
-		ewarn ""
-	fi
-
-	# Since Nvidia ships many different series of drivers, we need to give the user
-	# some kind of guidance as to what version they should install. This tries
-	# to point the user in the right direction but can't be perfect. check
-	# nvidia-driver.eclass
-	nvidia-driver-check-warning
-
-	# Kernel features/options to check for
-	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
-	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
-
-	# Now do the above checks
-	use kernel_linux && check_extra_config
-}
-
-pkg_pretend() {
-	nvidia_drivers_versions_check
-}
-
-pkg_setup() {
-	nvidia_drivers_versions_check
-
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	if use driver && use kernel_linux; then
-		MODULE_NAMES="nvidia(video:${S}/kernel)"
-		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
-		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
-
-		# This needs to run after MODULE_NAMES (so that the eclass checks
-		# whether the kernel supports loadable modules) but before BUILD_PARAMS
-		# is set (so that KV_DIR is populated).
-		linux-mod_pkg_setup
-
-		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
-
-		# linux-mod_src_compile calls set_arch_to_kernel, which
-		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
-		# expects x86_64 or i386 and then converts it to x86
-		# later on in the build process
-		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
-	fi
-
-	if use kernel_linux && kernel_is lt 2 6 9; then
-		eerror "You must build this against 2.6.9 or higher kernels."
-	fi
-
-	# set variables to where files are in the package structure
-	if use kernel_FreeBSD; then
-		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
-		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
-		NV_DOC="${S}/doc"
-		NV_OBJ="${S}/obj"
-		NV_SRC="${S}/src"
-		NV_MAN="${S}/x11/man"
-		NV_X11="${S}/obj"
-		NV_SOVER=1
-	elif use kernel_linux; then
-		NV_DOC="${S}"
-		NV_OBJ="${S}"
-		NV_SRC="${S}/kernel"
-		NV_MAN="${S}"
-		NV_X11="${S}"
-		NV_SOVER=${PV}
-	else
-		die "Could not determine proper NVIDIA package"
-	fi
-}
-
-src_prepare() {
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-375.20-pax.patch
-	fi
-
-	local man_file
-	for man_file in "${NV_MAN}"/*1.gz; do
-		gunzip $man_file || die
-	done
-
-	# Allow user patches so they can support RC kernels and whatever else
-	eapply_user
-
-	if ! [ -f nvidia_icd.json ]; then
-		cp nvidia_icd.json.template nvidia_icd.json || die
-		sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
-	fi
-}
-
-src_compile() {
-	# This is already the default on Linux, as there's no toplevel Makefile, but
-	# on FreeBSD there's one and triggers the kernel module build, as we install
-	# it by itself, pass this.
-
-	cd "${NV_SRC}"
-	if use kernel_FreeBSD; then
-		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
-			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
-	elif use driver && use kernel_linux; then
-		MAKEOPTS=-j1 linux-mod_src_compile
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			AR="$(tc-getAR)" \
-			CC="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NV_VERBOSE=1 \
-			RANLIB="$(tc-getRANLIB)" \
-			DO_STRIP= \
-			build-xnvctrl
-
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			CC="$(tc-getCC)" \
-			GTK3_AVAILABLE=$(usex gtk3 1 0) \
-			LD="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NVML_ENABLED=0 \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			DO_STRIP=
-	fi
-}
-
-# Install nvidia library:
-# the first parameter is the library to install
-# the second parameter is the provided soversion
-# the third parameter is the target directory if it is not /usr/lib
-donvidia() {
-	# Full path to library
-	nv_LIB="${1}"
-
-	# SOVER to use
-	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
-
-	# Where to install
-	nv_DEST="${2}"
-
-	# Get just the library name
-	nv_LIBNAME=$(basename "${nv_LIB}")
-
-	if [[ "${nv_DEST}" ]]; then
-		exeinto ${nv_DEST}
-		action="doexe"
-	else
-		nv_DEST="/usr/$(get_libdir)"
-		action="dolib.so"
-	fi
-
-	# Install the library
-	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
-
-	# If the library has a SONAME and SONAME does not match the library name,
-	# then we need to create a symlink
-	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
-		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
-			|| die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
-	fi
-
-	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
-		|| die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
-}
-
-src_install() {
-	if use driver && use kernel_linux; then
-		linux-mod_src_install
-
-		# Add the aliases
-		# This file is tweaked with the appropriate video group in
-		# pkg_preinst, see bug #491414
-		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-		doins "${FILESDIR}"/nvidia-rmmod.conf
-
-		# Ensures that our device nodes are created when not using X
-		exeinto "$(get_udevdir)"
-		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
-		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
-	elif use kernel_FreeBSD; then
-		if use x86-fbsd; then
-			insinto /boot/modules
-			doins "${S}/src/nvidia.kld"
-		fi
-
-		exeinto /boot/modules
-		doexe "${S}/src/nvidia.ko"
-	fi
-
-	# NVIDIA kernel <-> userspace driver config lib
-	donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
-
-	# NVIDIA framebuffer capture library
-	donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
-
-	# NVIDIA video encode/decode <-> CUDA
-	if use kernel_linux; then
-		donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
-		donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
-	fi
-
-	if use X; then
-		# Xorg DDX driver
-		insinto /usr/$(get_libdir)/xorg/modules/drivers
-		doins ${NV_X11}/nvidia_drv.so
-
-		# Xorg GLX driver
-		donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
-			/usr/$(get_libdir)/opengl/nvidia/extensions
-
-		# Xorg nvidia.conf
-		if has_version '>=x11-base/xorg-server-1.16'; then
-			insinto /usr/share/X11/xorg.conf.d
-			newins {,50-}nvidia-drm-outputclass.conf
-		fi
-
-		insinto /usr/share/glvnd/egl_vendor.d
-		doins ${NV_X11}/10_nvidia.json
-	fi
-
-	if use wayland; then
-		insinto /usr/share/egl/egl_external_platform.d
-		doins ${NV_X11}/10_nvidia_wayland.json
-	fi
-
-	# OpenCL ICD for NVIDIA
-	if use kernel_linux; then
-		insinto /etc/OpenCL/vendors
-		doins ${NV_OBJ}/nvidia.icd
-	fi
-
-	# Documentation
-	if use kernel_FreeBSD; then
-		dodoc "${NV_DOC}/README"
-		use X && doman "${NV_MAN}"/nvidia-xconfig.1
-		use tools && doman "${NV_MAN}"/nvidia-settings.1
-	else
-		# Docs
-		newdoc "${NV_DOC}/README.txt" README
-		dodoc "${NV_DOC}/NVIDIA_Changelog"
-		doman "${NV_MAN}"/nvidia-smi.1
-		use X && doman "${NV_MAN}"/nvidia-xconfig.1
-		use tools && doman "${NV_MAN}"/nvidia-settings.1
-		doman "${NV_MAN}"/nvidia-cuda-mps-control.1
-	fi
-
-	docinto html
-	dodoc -r ${NV_DOC}/html/*
-
-	# Helper Apps
-	exeinto /opt/bin/
-
-	if use X; then
-		doexe ${NV_OBJ}/nvidia-xconfig
-
-		insinto /etc/vulkan/icd.d
-		doins nvidia_icd.json
-	fi
-
-	if use kernel_linux; then
-		doexe ${NV_OBJ}/nvidia-cuda-mps-control
-		doexe ${NV_OBJ}/nvidia-cuda-mps-server
-		doexe ${NV_OBJ}/nvidia-debugdump
-		doexe ${NV_OBJ}/nvidia-persistenced
-		doexe ${NV_OBJ}/nvidia-smi
-
-		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
-		doexe ${NV_OBJ}/nvidia-modprobe
-		fowners root:video /opt/bin/nvidia-modprobe
-		fperms 4710 /opt/bin/nvidia-modprobe
-		dosym /{opt,usr}/bin/nvidia-modprobe
-
-		doman nvidia-cuda-mps-control.1
-		doman nvidia-modprobe.1
-		doman nvidia-persistenced.1
-		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
-		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
-		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src/ \
-			DESTDIR="${D}" \
-			GTK3_AVAILABLE=$(usex gtk3 1 0) \
-			LIBDIR="${D}/usr/$(get_libdir)" \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			PREFIX=/usr \
-			DO_STRIP= \
-			install
-
-		if use static-libs; then
-			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
-
-			insinto /usr/include/NVCtrl
-			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
-		fi
-
-		insinto /usr/share/nvidia/
-		doins nvidia-application-profiles-${PV}-key-documentation
-
-		insinto /etc/nvidia
-		newins \
-			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
-
-		# There is no icon in the FreeBSD tarball.
-		use kernel_FreeBSD || \
-			doicon ${NV_OBJ}/nvidia-settings.png
-
-		domenu "${FILESDIR}"/nvidia-settings.desktop
-
-		exeinto /etc/X11/xinit/xinitrc.d
-		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-	fi
-
-	dobin ${NV_OBJ}/nvidia-bug-report.sh
-
-	if has_multilib_profile && use multilib; then
-		local OABI=${ABI}
-		for ABI in $(get_install_abis); do
-			src_install-libs
-		done
-		ABI=${OABI}
-		unset OABI
-	else
-		src_install-libs
-	fi
-
-	is_final_abi || die "failed to iterate through all ABIs"
-
-	readme.gentoo_create_doc
-}
-
-src_install-libs() {
-	local inslibdir=$(get_libdir)
-	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
-	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
-	local nv_libdir="${NV_OBJ}"
-
-	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
-		nv_libdir="${NV_OBJ}"/32
-	fi
-
-	if use X; then
-		NV_GLX_LIBRARIES=(
-			"libEGL.so.$(usex compat ${NV_SOVER} 1) ${GL_ROOT}"
-			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
-			"libGLESv1_CM.so.1 ${GL_ROOT}"
-			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLESv2.so.2 ${GL_ROOT}"
-			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLX.so.0 ${GL_ROOT}"
-			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLdispatch.so.0 ${GL_ROOT}"
-			"libOpenCL.so.1.0.0 ${CL_ROOT}"
-			"libOpenGL.so.0 ${GL_ROOT}"
-			"libcuda.so.${NV_SOVER}"
-			"libnvcuvid.so.${NV_SOVER}"
-			"libnvidia-compiler.so.${NV_SOVER}"
-			"libnvidia-eglcore.so.${NV_SOVER}"
-			"libnvidia-encode.so.${NV_SOVER}"
-			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
-			"libnvidia-fbc.so.${NV_SOVER}"
-			"libnvidia-glcore.so.${NV_SOVER}"
-			"libnvidia-glsi.so.${NV_SOVER}"
-			"libnvidia-ifr.so.${NV_SOVER}"
-			"libnvidia-opencl.so.${NV_SOVER}"
-			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
-			"libvdpau_nvidia.so.${NV_SOVER}"
-		)
-
-		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
-		then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-egl-wayland.so.1.0.1"
-			)
-		fi
-
-		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
-		then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-wfb.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_FreeBSD; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-tls.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_linux; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-ml.so.${NV_SOVER}"
-				"tls/libnvidia-tls.so.${NV_SOVER}"
-			)
-		fi
-
-		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
-			donvidia "${nv_libdir}"/${NV_LIB}
-		done
-	fi
-}
-
-pkg_preinst() {
-	if use driver && use kernel_linux; then
-		linux-mod_pkg_preinst
-
-		local videogroup="$(egetent group video | cut -d ':' -f 3)"
-		if [ -z "${videogroup}" ]; then
-			eerror "Failed to determine the video group gid"
-			die "Failed to determine the video group gid"
-		else
-			sed -i \
-				-e "s:PACKAGE:${PF}:g" \
-				-e "s:VIDEOGID:${videogroup}:" \
-				"${D}"/etc/modprobe.d/nvidia.conf || die
-		fi
-	fi
-
-	# Clean the dynamic libGL stuff's home to ensure
-	# we dont have stale libs floating around
-	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
-		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
-	fi
-	# Make sure we nuke the old nvidia-glx's env.d file
-	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
-		rm -f "${ROOT}"/etc/env.d/09nvidia
-	fi
-}
-
-pkg_postinst() {
-	use driver && use kernel_linux && linux-mod_pkg_postinst
-
-	# Switch to the nvidia implementation
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
-	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
-
-	readme.gentoo_print_elog
-
-	if ! use X; then
-		elog "You have elected to not install the X.org driver. Along with"
-		elog "this the OpenGL libraries and VDPAU libraries were not"
-		elog "installed. Additionally, once the driver is loaded your card"
-		elog "and fan will run at max speed which may not be desirable."
-		elog "Use the 'nvidia-smi' init script to have your card and fan"
-		elog "speed scale appropriately."
-		elog
-	fi
-	if ! use tools; then
-		elog "USE=tools controls whether the nvidia-settings application"
-		elog "is installed. If you would like to use it, enable that"
-		elog "flag and re-emerge this ebuild. Optionally you can install"
-		elog "media-video/nvidia-settings"
-		elog
-	fi
-}
-
-pkg_prerm() {
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}
-
-pkg_postrm() {
-	use driver && use kernel_linux && linux-mod_pkg_postrm
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2017-11-22  9:55 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2017-11-22  9:55 UTC (permalink / raw
  To: gentoo-commits

commit:     075b72245180b91c9c61b36ffa44bed5c6503f48
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 22 09:53:03 2017 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Wed Nov 22 09:53:03 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=075b7224

x11-drivers/nvidia-drivers: Old.

Package-Manager: Portage-2.3.16, Repoman-2.3.6

 x11-drivers/nvidia-drivers/Manifest                |   6 -
 .../nvidia-drivers/files/NVIDIA_glx-defines.patch  |  11 -
 .../nvidia-drivers/files/NVIDIA_glx-glheader.patch |  13 -
 .../nvidia-drivers-173.14.39-r1.ebuild             | 545 ---------------------
 .../nvidia-drivers-173.14.39-r2.ebuild             | 544 --------------------
 .../nvidia-drivers-96.43.23-r1.ebuild              | 518 --------------------
 6 files changed, 1637 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index 8b979573852..3cd716009f3 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -1,4 +1,3 @@
-DIST NVIDIA-FreeBSD-x86-173.14.39.tar.gz 20038266 BLAKE2B 0d6526cea918ea1b883425db33d0d935a447936ed88449da8624da20dca00ef2c550d7559980afa54f3b206f71a12327b66b6a6c9a1b2970dd33907ca512449e SHA512 96982fe7e0751c52fbef534193de09d187b99c1984c05e791223eb804719d8b3ba72efd983f227661ded4b71569bdbb914f1f629ab73a8bc9b8172832ccf3ec6
 DIST NVIDIA-FreeBSD-x86-304.137.tar.gz 35399011 BLAKE2B 823726e4a54f029a47b4c473718099b97d0364b19ac73d36111c0e3552af9a896f60c2aef0eac05d84eb7386fd32ff0a33b2b26d572b6803fddf3c9df0443caa SHA512 9bab183289461d915371b7b5b34e66fdfe8ffff945806dbdf00e0e1cc7242f7b74a0acfc6ed24c3643a6d51edc837cd905ba3b224c30040b0f40d662dc6e7a6d
 DIST NVIDIA-FreeBSD-x86-340.104.tar.gz 60305172 BLAKE2B e67564d7cc8e247f1f026fb288b0d1647550ca8ff3b95302a98081ede22b8db16a8fd7dd4c994427996144df34122e506d53284eefc28d393881078c2752f988 SHA512 051bb0e0be3a70f3d3265c493c96a1ac249730ce2c1b4a97f7fb4797daa92af066f2bb88b922a80e4a7f5d3e5d37e0ec8ac3f9fdda77e68c905ef55f47ccbc8e
 DIST NVIDIA-FreeBSD-x86-375.82.tar.gz 59566154 BLAKE2B b888b08cd434899ff73f04a855b47f9416ab247f63023f742dff55e9249d20b8da07bc5cd42e6d555cd9a8ecc62c97821ae09dce1986f0ac2384a16a70c7f181 SHA512 6747bf6d6278c6ed0828c6fdcad5353e516f28384609a3f0a885966707eebb096926a876c17843bfa7626a01a6d4e0ab12c781faf9ac0291771b195c9eb13d85
@@ -8,7 +7,6 @@ DIST NVIDIA-FreeBSD-x86-384.90.tar.gz 63539967 BLAKE2B 7f9d14de9e79c59aaf27bc088
 DIST NVIDIA-FreeBSD-x86-384.98.tar.gz 63653102 BLAKE2B 003f293136a5a37a381ebe573ddcf05613f93f774f962d6aefc60f785f63030f1eb71dd96c4fc3507c6e9f9508a09dca297dab8939517abcf630706722cea8a7 SHA512 95b6709f994a3b8e5984d8b0eb745016c6769b2c41072672318b9e0643d1f7d64eff376e702e1768013dfae5e8976475b13573b258e13236d991e9514e58a7f5
 DIST NVIDIA-FreeBSD-x86-387.12.tar.gz 64054985 BLAKE2B c804bad5757a80ce443a2e3ab8d6316908a5287b7daf1cb0f50a379e7fa8e4efedd2af00f2c2617072e758f24e0f1dbc68cc92992b3424d6178149d14c98bb9e SHA512 fa92275e4e1795fd91515ca4cd20cb21dfcb273043f115795fdf82f6c39d2ead80848e8b44b711be6a769de2b93bc91f857084dab8f1d1f4cad5245c9bf84913
 DIST NVIDIA-FreeBSD-x86-387.22.tar.gz 64162390 BLAKE2B 6d78c7d03a8e9b489f166f1a2216a5fc1afccd5bd96808c27c64b4155316de6e3f88258f720eb2dbf9218ca4027d5a3f3c6a5d959ac7f5f9d5c8522263f5620d SHA512 3fb704aaa4080072e920dd19cd3492eb30e31ea2426e7f73939fd53072a92ace3dfbdbf582ca5c19bc27d1a52fbd6f9ab918c7f265e3c0a9c5e0905ad156548b
-DIST NVIDIA-FreeBSD-x86-96.43.23.tar.gz 15463464 BLAKE2B 9ac17b88f2fc6d25d5426b1866b7f7a0c647129352bb653f3564091a7159f2508a03db64263e7f62a1f27daa030bf5c14257908e62e9b512d6f0e438afc0beb7 SHA512 42d7b1b76cdb3b23680363e565614a22112162a5dd3639cb804fe670c0c3f3f23595bbefa3f78afdc6a8ca848446dee853c7a355f2c96a0d01b354753ba2785c
 DIST NVIDIA-FreeBSD-x86_64-304.137.tar.gz 36474676 BLAKE2B bd75e2916d34f76566d838406419991a860118830366f0297fa63baade3a99f637dae601d6bc6a051596222f2715297dffbf9b81ff5478b030741e6c8a09bc13 SHA512 f0ae7ccea417aceedf34bfb9c96fd79b31cbf74a8fa59d5199b0ad7b81b8a4aeb66cd4801a45cc37f836979cb4267aa69e08517beaa9b8cb9c66a477d02ef8de
 DIST NVIDIA-FreeBSD-x86_64-340.104.tar.gz 61176133 BLAKE2B 1fa2e1a7018b3d24b2a6b2be016aaa4c86196fba679d7032c9d0884900b4734ea1b6d54398bb7c792d5010496c86438eed134b8ac8c1aa235b336211fdc207e7 SHA512 d7535527fb9ffc820509da8d0b159c70627c72a7182c354448851a334fcd5b8835046d0e9812079af2fa92de0f3fce299a67e70ef50697a2a1f33b8d995e7f73
 DIST NVIDIA-FreeBSD-x86_64-375.82.tar.gz 58748290 BLAKE2B 629d65b71270d1c0d94c71e4215a72f0e49bb82e68ebb93fd4b14cd56a2031674458764f4c3e2e3dec7379ec0d5ed9212c8d09a64e4361f40352e52aa9b57de5 SHA512 5e2b42ff63e06219764db8187203ce1a2c3c8b478be31fc713ef396e8f8d46def9b2631d7989866740bd0c6a81bbf5d2ed083c14cfa7171c0d993553ca6f431c
@@ -25,7 +23,6 @@ DIST NVIDIA-Linux-armv7l-gnueabihf-384.90.run 29044581 BLAKE2B 5c0e864d31bbdac40
 DIST NVIDIA-Linux-armv7l-gnueabihf-384.98.run 28845054 BLAKE2B 1c99d63598d8cf94683389d2337ed34e6aabe145e178d0ed0708553d75524ed4a101eea8e580c1fa26d957cb7024a68df0915cb0863fd7b3172da3ae399ab902 SHA512 c9446ec5eba9fa00e63f4952944041d280eb7095c8afd466b4cd1fe33b5e17341c574a86a2adab0dccc2fd3bf79ae32c5d72bf892e9d558dc56fb5cb80ec9c3c
 DIST NVIDIA-Linux-armv7l-gnueabihf-387.12.run 29236798 BLAKE2B 9fdd1aa6e290403017898a8ec8c1e982880ced248a3c5f1ff0a9bd467c73ac9aea8233b63a9de590e67cfa1e6e68ee79b2066266c7b65169c46a03b3f1c87f4b SHA512 819d2be341f6615d8ef3b3568a978f9e636723b319a7349f606aa8ca24021dc01d470a314a69efcde328d2f2b5546d35f2d7c633d216bb9137d8820e5f26c9dc
 DIST NVIDIA-Linux-armv7l-gnueabihf-387.22.run 29112014 BLAKE2B 6b03e0bdc5f40434e852eadeeb0a6e6afc5de35c3e7bb5c75f0f8d4449a9b0d25ff97ada36320d814d84c4cf2f724f5b3704c29caf3217728d4ed001e507a4c3 SHA512 e304105f90d9957589598eb8ee5abe9783c7e5c58f9c66aa8378047852b2a129f0ea8fab2ed319cfcfaade8ced87b02f02080b42d4089bbc41b5877763ab9b8f
-DIST NVIDIA-Linux-x86-173.14.39-pkg0.run 15134997 BLAKE2B e164bb7f660202311ec9e60e452a870babce8a24bbdc9aa598a5920a0fb6614b7d9ef5d71af2458abda74a70976bf1b66112a77eefcc3252f6c4975acbb14c4a SHA512 e24e15ccec725d3cbca502c2b77061776a81ef92917a950adec4ff6bdc34f10903aa654433177ea74be0dade4af81c5380d5710d375a5ea445940d06154bde93
 DIST NVIDIA-Linux-x86-304.137.run 41504115 BLAKE2B 5938d4df818947e5576172c0ee9bfa42a2fc49a7a7a2b14128cf3b967dfea6d4523901b33283284d450cfadc2c6d72a82a1533b27ebb4b542b6b1454fe8ae960 SHA512 021c5a88d50489aa0a1c7eac14259e23542b93578ae339995a2e38b786d06d239968c07933cab3fb78a922cffc7e213d6fa3fe07e34065a9c7f03e24f8729370
 DIST NVIDIA-Linux-x86-340.104.run 38823602 BLAKE2B 9cab2d224a289839148558e2bd8d4711c0925dfff8b7897be9f7fbd3eaae5549571fa01d265d7a0f8ed6dbc600e2a815d9dd622fd56528c04d80e7ec664cd551 SHA512 8dacd5345a5794e862f4106ab9e8e402defa7883dd176c243d019209b560fe955d7576a13936364c01c5a249f15df58208308c9378c12c3438784376e5fb806c
 DIST NVIDIA-Linux-x86-375.82.run 44633335 BLAKE2B 55392ba748108b47994bf272829a6476dfc23f7756e0c18d56c8e4d827968196ee70e521c2e6307c134ca0c85d59715db777583fb07c8e06ae7325d586a8117b SHA512 cbd6edd7490e0e5ef9dd2020c18eb5f75412993e06b9c4f1919f49a8ffdc36131a96d868ab51691fb5c4a661e826b000ec93363c9b168304f6498014e300bf24
@@ -35,8 +32,6 @@ DIST NVIDIA-Linux-x86-384.90.run 46518269 BLAKE2B 98f579483ae107f5b09b6c7e01a0d2
 DIST NVIDIA-Linux-x86-384.98.run 46588805 BLAKE2B bf49efd77e016b5a747a6de9f6462683f641e12102e86109179e4d6a04f2c56bcdc5693b971ea00a08cce43444bdbe9405aa70ed1b665f59bb8a5c3aa74d1a23 SHA512 e670ab9165d4f81a64c41cdcf0fb79ab7a73d97f4d566ca22ebe0959d8d088837fd767eb59d34b9359cf81e155486ab8d6ad8f09d5d93b3d5225a2ecd5558417
 DIST NVIDIA-Linux-x86-387.12.run 46889733 BLAKE2B e49306f7ea1ad1477eaed669261cc0bf1a7651093d9a9a88e94a28c2688ebd9e93498c6a6190606580a974ce0a2dc8fec7411766556c504c4b992186bd1364dc SHA512 aa88bed1bbde790779b270b331b6a5f6008259f46291076c67cb22bc79c23dc1bf29177a7ce040784d986988b768c0574cd2ad28d71a0759873b13a68fcaa7f8
 DIST NVIDIA-Linux-x86-387.22.run 47013877 BLAKE2B d4e12c9bb669880a86784d1b2339e497d405c0642d77d8ace346f867a51a920a89c1d611aacaab1e844c2bc1b3a734455e728b5bc450e7f977a7c20f478ccc0b SHA512 865c5024957ade2c8361b198cbc6600f469612fe0336e3a0bfaf56e4240999367f2066837c0b354af4821ab2531d05eddf3f2a0957eacc2eca0dd7cada4929b4
-DIST NVIDIA-Linux-x86-96.43.23-pkg0.run 11504817 BLAKE2B e19a03525f6c589c3265bf2c28a290a1a0d59c10e044a1936fe97c1843161f7be0109c402042b1bf648bdbf0a19595c687e1110575f0adff4f5977d2d91a79a3 SHA512 bed5726e57637481fe4e3c03a65ec14fe949f00860e729ebde408f4fd861d7bfdc296a78bc2f5d42e8b282db09f4bbde1e0545df7228fa20227080dc4b868ba7
-DIST NVIDIA-Linux-x86_64-173.14.39-pkg2.run 21100833 BLAKE2B 7749acede149f86af7dcc1301a356d2744e8ad0fc045a5cc3fa312dc4612eb6b49d8ab37c048f4668d221e9cbaeae8f6f6b2d724d4c079a8a29f4693e95f5c93 SHA512 a65cd496e6ed57f771c3d99f37f616a1242d97844f6faef7a807825ad899c0e536a99fde397020839f0857883b934032f9491024f3047a6b06d3eea1f5d77713
 DIST NVIDIA-Linux-x86_64-304.137.run 70087133 BLAKE2B 8db0ade7cf64231ae11e6fc55a16a68a2f7b11a8bb7debb49799fee96eba06a3062b97fe539b093727623a1ed1067282813de047c2aeb89d93bf35a97c71aac5 SHA512 d7fae1e486005ffa2f2bf7f14f901bf5156fc784407a9acfea584f49bdab92ff5f4d0fb66c4c5b2800a461fc06aebb7d760bcb59f69ce4f2cb4e03e11816b3e9
 DIST NVIDIA-Linux-x86_64-340.104.run 70085947 BLAKE2B 3bf77983f0b14770fead042c09771650045c2d5238b68ec06f3c70e1598727b6f75fb1e492e6ed147f9323bce58d6d8f5a840de0a30938d46b53bd571202edff SHA512 3f7609e7a736ba7d77f96ea5561789113878c5cb85b2970ad5ae63acdd09c0f5bc6449a5ed7d948f85d684870dcc2b479c4e0d7d750a47dfd716940de72dba3f
 DIST NVIDIA-Linux-x86_64-375.82.run 77461911 BLAKE2B e7f32bdf1672d98a1fe98c82d80a08dd6f63b3c859df4c60124977dae19520a21e4239ff7be6c272243d4af9416320b5e166d8f100979daa0d005ea2a44fc16d SHA512 6da63b807d6dd7cc8ac2b794d5c9ab8383e3c0ce6a47adc600941545509fb40b5f06344781afc895bd83f2780b2bce187994df5684db2890f50b41adfee8f910
@@ -46,7 +41,6 @@ DIST NVIDIA-Linux-x86_64-384.90.run 80833580 BLAKE2B 72e66a9ddbf35bb4dbdd42f0aae
 DIST NVIDIA-Linux-x86_64-384.98.run 80981256 BLAKE2B 8b38c661246f5e8e751dceb3d479aa3b6e807e9992adc9a0ba64a10914b8a932647d1b8eefa8da2578acd37cdd39f2979ca903db4663c371ddb56f794987cd77 SHA512 cd337d538d5a35f52b90a4437f44146f4982484c68171ee3570c2ff44b4bd96e0a65223a141770fbe3a7794e68832386a1d2bbaf66cff7f4cafba8462ef402b5
 DIST NVIDIA-Linux-x86_64-387.12.run 81766492 BLAKE2B ae7aa447ab52140defeeb4ee46f7a59fc0b0f8786f3a2a196e0e8b0d9bdc671c46032dfb1e334d1555e1e968b2122158f7fdc8e946aa7a085fee13c2c3524a72 SHA512 42cfc64529b84515140128a65439a4cbcf1912e9fd1fb2eaecb6e480a83b94f1123d14c41e439463b04babffe4010468aaa0d7511cc9c82ba23143356b1a51c3
 DIST NVIDIA-Linux-x86_64-387.22.run 81850060 BLAKE2B 960412c08322f8af6395147f506c0c1174f9b542e8cb08f15074fe524a47bb72967e8e61d358d1c486e7440320bfa375165c241a6d96d59248062c6de2e7cea4 SHA512 f695b8d3cb0707afd078f88aa5a211230cdceb4603571371d9c4322d540e43875a9c22e000d2734c9094f32752f71464b790c3c7e79778529d737487dc387f65
-DIST NVIDIA-Linux-x86_64-96.43.23-pkg2.run 15962375 BLAKE2B 6dfe1dc84d23b3f754c1f310219881ac1283303f495ebb8b081cabd15750a16f635b8a542b59d75dbc28b51bdd6bb353258fa3ab14cd3f8b992ca536dd51bd94 SHA512 04bec1187a6024a2b9839f008ec829281f1f2602dae2e639030bc385943186506bcaa2b46a230b2ab87f9217190841abc62f9e2d6395ab5559623389c31c6563
 DIST nvidia-settings-304.137.tar.bz2 1481361 BLAKE2B cf52a55a34eeb03a685a683487af6a198ba467dd8ba9983cc75624a37a226373cd931d98e8448b7b8ed430c54be2118c7b240ed2a9100b19bec5e832e2f6cdad SHA512 676d1f70c9a78ee234f5f1a283412430a386fa604de211afba02806a45906c5e246a002989b724d74752178d28c92a268de1c98d4c87876797d991253f16b0cc
 DIST nvidia-settings-340.104.tar.bz2 1549760 BLAKE2B 131532e16fac8c026e0c6030c12e42fcf7598b5e3d7b9286532387d90ad51eec666efd281b20c04abd08c8280c65dd907ee397c0acb4cf9c74e9d6c7be4dcdd6 SHA512 d4277ef0ce87ee7baf2c5155ca8d93e8db2483329053c541b6a605653f4a6883aad81ebdc45b4c60aa78b72bd4c6c88e5b1327cc4cd2f540fcee8dbd7edc3e53
 DIST nvidia-settings-375.82.tar.gz 2114647 BLAKE2B 26413fde8397e748fae362984039286c53a7fe104228452f3188b5e77b084ff4bf00131e77359ff5e92dfc325680c1f662950175cf806403d2a524ba86158f51 SHA512 7a374be56c8be52767d73a048029d9e55dc2abcf2f6a97eb4931544c927c85a1103a206be9e8d1ffcef36fec2caf2416f33699ad4d51e7dca17e4e844c37a595

diff --git a/x11-drivers/nvidia-drivers/files/NVIDIA_glx-defines.patch b/x11-drivers/nvidia-drivers/files/NVIDIA_glx-defines.patch
deleted file mode 100644
index da9933f6337..00000000000
--- a/x11-drivers/nvidia-drivers/files/NVIDIA_glx-defines.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ur NVIDIA_GLX-1.0-4191/usr/include/GL/glx.h NVIDIA_GLX-1.0-4191.new/usr/include/GL/glx.h
---- NVIDIA_GLX-1.0-4191/usr/include/GL/glx.h	2002-12-09 21:26:55.000000000 +0100
-+++ NVIDIA_GLX-1.0-4191.new/usr/include/GL/glx.h	2003-01-30 18:20:23.000000000 +0100
-@@ -39,6 +39,7 @@
- typedef XID GLXPixmap;
- typedef XID GLXDrawable;
- typedef XID GLXPbuffer;
-+typedef XID GLXPbufferSGIX;
- typedef XID GLXWindow;
- typedef XID GLXFBConfigID;
- 

diff --git a/x11-drivers/nvidia-drivers/files/NVIDIA_glx-glheader.patch b/x11-drivers/nvidia-drivers/files/NVIDIA_glx-glheader.patch
deleted file mode 100644
index e0393e1b9ab..00000000000
--- a/x11-drivers/nvidia-drivers/files/NVIDIA_glx-glheader.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- usr/include/GL/gl.g.orig	2004-07-17 19:56:59.789410584 +1000
-+++ usr/include/GL/gl.h	2004-07-17 19:59:08.844791184 +1000
-@@ -66,6 +66,10 @@
- typedef double GLclampd;
- typedef void GLvoid;
- 
-+/* Patching for some better defines in the global system */
-+#ifndef GL_GLEXT_LEGACY
-+#include <GL/glext.h>
-+#endif
- 
- /*************************************************************/
- 

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-173.14.39-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-173.14.39-r1.ebuild
deleted file mode 100644
index 952e69460e0..00000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-173.14.39-r1.ebuild
+++ /dev/null
@@ -1,545 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit eutils flag-o-matic linux-mod multilib nvidia-driver portability \
-	unpacker user versionator
-
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
-X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
-SRC_URI="x86? ( http://http.download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}-pkg0.run )
-	 amd64? ( http://http.download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}-pkg2.run )
-	 x86-fbsd? ( http://http.download.nvidia.com/freebsd/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )"
-
-LICENSE="GPL-2 NVIDIA-r1"
-SLOT="0/173"
-KEYWORDS="-* amd64 x86 ~x86-fbsd"
-IUSE="acpi multilib kernel_linux tools"
-RESTRICT="bindist mirror strip"
-EMULTILIB_PKG="true"
-
-COMMON="
-	>=app-eselect/eselect-opengl-1.0.9
-	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
-"
-DEPEND="
-	${COMMON}
-	kernel_linux? ( virtual/linux-sources )
-"
-RDEPEND="
-	${COMMON}
-	<x11-base/xorg-server-1.15.99:=
-	acpi? ( sys-power/acpid )
-	multilib? (
-		>=x11-libs/libX11-1.6.2[abi_x86_32]
-		>=x11-libs/libXext-1.3.2[abi_x86_32]
-	)
-	tools? (
-		dev-libs/atk
-		dev-libs/glib:2
-		x11-libs/gdk-pixbuf
-		x11-libs/gtk+:2
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/pango[X]
-	)
-"
-
-QA_TEXTRELS_x86="usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib/xorg/modules/drivers/nvidia_drv.so
-	usr/lib/libcuda.so.${PV}
-	usr/lib/libnvidia-cfg.so.${PV}
-	usr/lib/libvdpau_nvidia.so.${PV}
-	usr/lib/libXvMCNVIDIA.so.${PV}"
-
-QA_TEXTRELS_x86_fbsd="boot/modules/nvidia.ko
-	usr/lib/opengl/nvidia/lib/libGL.so.1
-	usr/lib/opengl/nvidia/lib/libGLcore.so.1
-	usr/lib/libnvidia-cfg.so.1
-	usr/lib/opengl/nvidia/extensions/libglx.so.1
-	usr/lib/xorg/modules/drivers/nvidia_drv.so"
-
-QA_TEXTRELS_amd64="usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib32/libcuda.so.${PV}
-	usr/lib32/libvdpau_nvidia.so.${PV}"
-
-QA_EXECSTACK_x86="usr/lib/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib/xorg/modules/drivers/nvidia_drv.so
-	usr/lib/libXvMCNVIDIA.a:NVXVMC.o"
-
-QA_EXECSTACK_amd64="usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib64/libnvcompiler.so.${PV}
-	usr/lib64/libXvMCNVIDIA.so.${PV}
-	usr/lib64/libXvMCNVIDIA.a:NVXVMC.o
-	usr/lib64/libnvidia-cfg.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib64/xorg/modules/drivers/nvidia_drv.so
-	opt/bin/nvidia-settings
-	opt/bin/nvidia-smi
-	opt/bin/nvidia-xconfig"
-
-QA_WX_LOAD_x86="usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib/libXvMCNVIDIA.a"
-
-QA_WX_LOAD_amd64="usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}"
-
-QA_SONAME_amd64="usr/lib64/libnvcompiler.so.${PV}"
-
-QA_FLAGS_IGNORED_amd64="usr/lib32/libcuda.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib32/libvdpau_nvidia.so.${PV}
-	usr/lib64/libXvMCNVIDIA.so.${PV}
-	usr/lib64/libcuda.so.${PV}
-	usr/lib64/libnvidia-cfg.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib64/xorg/modules/drivers/nvidia_drv.so
-	usr/lib64/libvdpau_nvidia.so.${PV}
-	opt/bin/nvidia-settings
-	opt/bin/nvidia-smi
-	opt/bin/nvidia-xconfig"
-
-QA_FLAGS_IGNORED_x86="usr/lib/libcuda.so.${PV}
-	usr/lib/libnvidia-cfg.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib/xorg/modules/drivers/nvidia_drv.so
-	usr/lib/libXvMCNVIDIA.so.${PV}
-	usr/lib/libvdpau_nvidia.so.${PV}
-	opt/bin/nvidia-settings
-	opt/bin/nvidia-smi
-	opt/bin/nvidia-xconfig"
-
-S="${WORKDIR}/"
-
-mtrr_check() {
-	ebegin "Checking for MTRR support"
-	linux_chkconfig_present MTRR
-	eend $?
-
-	if [[ $? -ne 0 ]] ; then
-		eerror "Please enable MTRR support in your kernel config, found at:"
-		eerror
-		eerror "  Processor type and features"
-		eerror "    [*] MTRR (Memory Type Range Register) support"
-		eerror
-		eerror "and recompile your kernel ..."
-		die "MTRR support not detected!"
-	fi
-}
-
-lockdep_check() {
-	if linux_chkconfig_present LOCKDEP; then
-		eerror "You've enabled LOCKDEP -- lock tracking -- in the kernel."
-		eerror "Unfortunately, this option exports the symbol 'lockdep_init_map' as GPL-only"
-		eerror "which will prevent ${P} from compiling."
-		eerror "Please make sure the following options have been unset:"
-		eerror "    Kernel hacking  --->"
-		eerror "        [ ] Lock debugging: detect incorrect freeing of live locks"
-		eerror "        [ ] Lock debugging: prove locking correctness"
-		eerror "        [ ] Lock usage statistics"
-		eerror "in 'menuconfig'"
-		die "LOCKDEP enabled"
-	fi
-}
-
-pkg_setup() {
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	if use amd64 && has_multilib_profile && [ "${DEFAULT_ABI}" != "amd64" ]; then
-		eerror "This ebuild doesn't currently support changing your default abi."
-		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
-	fi
-
-	if use kernel_linux; then
-		linux-mod_pkg_setup
-		MODULE_NAMES="nvidia(video:${S}/usr/src/nv)"
-		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
-		# linux-mod_src_compile calls set_arch_to_kernel, which
-		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
-		# expects x86_64 or i386 and then converts it to x86
-		# later on in the build process
-		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
-		mtrr_check
-		lockdep_check
-	fi
-
-	# On BSD userland it wants real make command
-	use userland_BSD && MAKE="$(get_bmake)"
-
-	export _POSIX2_VERSION="199209"
-
-	if use kernel_linux && kernel_is ge 3 13 ; then
-		ewarn "Gentoo supports kernels which are supported by NVIDIA"
-		ewarn "which are limited to the following kernels:"
-		ewarn "<sys-kernel/gentoo-sources-3.13"
-		ewarn "<sys-kernel/vanilla-sources-3.13"
-		ewarn ""
-		ewarn "You are free to utilize epatch_user to provide whatever"
-		ewarn "support you feel is appropriate, but will not receive"
-		ewarn "support as a result of those changes."
-		ewarn ""
-		ewarn "Do not file a bug report about this."
-	fi
-
-	# Since Nvidia ships many different series of drivers, we need to give the user
-	# some kind of guidance as to what version they should install. This tries
-	# to point the user in the right direction but can't be perfect. check
-	# nvidia-driver.eclass
-	nvidia-driver-check-warning
-
-	# set variables to where files are in the package structure
-	if use kernel_FreeBSD; then
-		use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
-		NV_DOC="${S}/doc"
-		NV_EXEC="${S}/obj"
-		NV_LIB="${S}/obj"
-		NV_SRC="${S}/src"
-		NV_MAN="${S}/x11/man"
-		NV_X11="${S}/obj"
-		NV_X11_DRV="${NV_X11}"
-		NV_X11_EXT="${NV_X11}"
-		NV_SOVER=1
-	elif use kernel_linux; then
-		NV_DOC="${S}/usr/share/doc"
-		NV_EXEC="${S}/usr/bin"
-		NV_LIB="${S}/usr/lib"
-		NV_SRC="${S}/usr/src/nv"
-		NV_MAN="${S}/usr/share/man/man1"
-		NV_X11="${S}/usr/X11R6/lib"
-		NV_X11_DRV="${NV_X11}/modules/drivers"
-		NV_X11_EXT="${NV_X11}/modules/extensions"
-		NV_SOVER=${PV}
-	else
-		die "Could not determine proper NVIDIA package"
-	fi
-}
-
-src_unpack() {
-	if use kernel_linux && kernel_is lt 2 6 7; then
-		echo
-		ewarn "Your kernel version is ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
-		ewarn "This is not officially supported for ${P}. It is likely you"
-		ewarn "will not be able to compile or use the kernel module."
-		ewarn "It is recommended that you upgrade your kernel to a version >= 2.6.7"
-		echo
-		ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored."
-	fi
-
-	if ! use x86-fbsd; then
-		mkdir "${S}"
-		cd "${S}"
-		unpack_makeself
-	else
-		unpack ${A}
-	fi
-}
-
-src_prepare() {
-	# Please add a brief description for every added patch
-	use x86-fbsd && cd doc
-
-	# Use the correct defines to make gtkglext build work
-	epatch "${FILESDIR}"/NVIDIA_glx-defines.patch
-	# Use some more sensible gl headers and make way for new glext.h
-	epatch "${FILESDIR}"/NVIDIA_glx-glheader.patch
-
-	if use kernel_linux; then
-		# Quiet down warnings the user does not need to see
-		sed -i \
-			-e 's:-Wpointer-arith::g' \
-			-e 's:-Wsign-compare::g' \
-			"${NV_SRC}"/Makefile.kbuild
-
-		# If greater than 2.6.5 use M= instead of SUBDIR=
-		convert_to_m "${NV_SRC}"/Makefile.kbuild
-	fi
-
-	epatch_user
-}
-
-src_compile() {
-	# This is already the default on Linux, as there's no toplevel Makefile, but
-	# on FreeBSD there's one and triggers the kernel module build, as we install
-	# it by itself, pass this.
-
-	cd "${NV_SRC}"
-	if use x86-fbsd; then
-		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
-			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)"
-	elif use kernel_linux; then
-		linux-mod_src_compile
-	fi
-}
-
-src_install() {
-	if use kernel_linux; then
-		linux-mod_src_install
-
-		# Add the aliases
-		# This file is tweaked with the appropriate video group in
-		# pkg_preinst, see bug #491414
-		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-	elif use kernel_FreeBSD; then
-		insinto /boot/modules
-		doins "${WORKDIR}/${NV_PACKAGE}/src/nvidia.kld"
-
-		exeinto /boot/modules
-		doexe "${WORKDIR}/${NV_PACKAGE}/src/nvidia.ko"
-	fi
-
-	# NVIDIA kernel <-> userspace driver config lib
-	dolib.so ${NV_LIB}/libnvidia-cfg.so.${NV_SOVER} || \
-		die "failed to install libnvidia-cfg"
-	dosym libnvidia-cfg.so.${NV_SOVER} \
-		/usr/$(get_libdir)/libnvidia-cfg.so.1 || \
-		die "failed to create libnvidia-cfg.so.1 symlink"
-	dosym libnvidia-cfg.so.1 \
-		/usr/$(get_libdir)/libnvidia-cfg.so || \
-		die "failed to create libnvidia-cfg.so symlink"
-
-	# Xorg DDX driver
-	insinto /usr/$(get_libdir)/xorg/modules/drivers
-	doins ${NV_X11_DRV}/nvidia_drv.so
-
-	# Xorg GLX driver
-	insinto /usr/$(get_libdir)/opengl/nvidia/extensions
-	doins ${NV_X11_EXT}/libglx.so.${NV_SOVER} || \
-		die "failed to install libglx.so"
-	dosym /usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so.${NV_SOVER} \
-		/usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so || \
-		die "failed to create libglx.so symlink"
-
-	# XvMC driver
-	dolib.a ${NV_X11}/libXvMCNVIDIA.a || \
-		die "failed to install libXvMCNVIDIA.so"
-	dolib.so ${NV_X11}/libXvMCNVIDIA.so.${NV_SOVER} || \
-		die "failed to install libXvMCNVIDIA.so"
-	dosym libXvMCNVIDIA.so.${NV_SOVER} \
-		/usr/$(get_libdir)/libXvMCNVIDIA.so.1 || \
-		die "failed to create libXvMCNVIDIA.so.1 symlink"
-	dosym libXvMCNVIDIA.so.1 \
-		/usr/$(get_libdir)/libXvMCNVIDIA.so || \
-		die "failed to create libXvMCNVIDIA.so symlink"
-	dosym libXvMCNVIDIA.so.${NV_SOVER} \
-		/usr/$(get_libdir)/libXvMCNVIDIA_dynamic.so.1 || \
-		die "failed to create libXvMCNVIDIA_dynamic.so.1 symlink"
-
-	# CUDA headers (driver to come)
-	if use kernel_linux && [[ -d ${S}/usr/include/cuda ]]; then
-		dodir /usr/include/cuda
-		insinto /usr/include/cuda
-		doins usr/include/cuda/*.h
-	fi
-
-	# OpenCL headers (driver to come)
-	if [[ -d ${S}/usr/include/CL ]]; then
-		dodir /usr/include/CL
-		insinto /usr/include/CL
-		doins usr/include/CL/*.h
-	fi
-
-	# Documentation
-	dodoc ${NV_DOC}/XF86Config.sample
-	dohtml ${NV_DOC}/html/*
-	if use x86-fbsd; then
-		dodoc "${NV_DOC}/README"
-		doman "${NV_MAN}/nvidia-xconfig.1"
-		doman "${NV_MAN}/nvidia-settings.1"
-	else
-		# Docs
-		newdoc "${NV_DOC}/README.txt" README
-		dodoc "${NV_DOC}/NVIDIA_Changelog"
-		doman "${NV_MAN}/nvidia-xconfig.1.gz"
-		doman "${NV_MAN}/nvidia-settings.1.gz"
-	fi
-
-	# Helper Apps
-	exeinto /opt/bin/
-	doexe ${NV_EXEC}/nvidia-xconfig
-	doexe ${NV_EXEC}/nvidia-bug-report.sh
-	if use tools; then
-		doexe usr/bin/nvidia-settings
-	fi
-	if use kernel_linux; then
-		doexe ${NV_EXEC}/nvidia-smi
-	fi
-
-	# Desktop entry for nvidia-settings
-	if use tools && use kernel_linux; then
-		sed -e 's:__UTILS_PATH__:/opt/bin:' \
-			-e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' \
-			-e '/^Categories/s|Application;||g' \
-			-i "${S}"/usr/share/applications//nvidia-settings.desktop
-		newmenu "${S}"/usr/share/applications/nvidia-settings.desktop \
-			nvidia-settings-opt.desktop
-	fi
-
-	if has_multilib_profile ; then
-		local OABI=${ABI}
-		for ABI in $(get_install_abis) ; do
-			src_install-libs
-		done
-		ABI=${OABI}
-		unset OABI
-	else
-		src_install-libs
-	fi
-
-	is_final_abi || die "failed to iterate through all ABIs"
-
-	readme.gentoo_create_doc
-}
-
-# Install nvidia library:
-# the first parameter is the place where to install it
-# the second parameter is the base name of the library
-# the third parameter is the provided soversion
-donvidia() {
-	dodir $1
-	exeinto $1
-
-	libname=$(basename $2)
-
-	doexe $2.$3
-	dosym ${libname}.$3 $1/${libname}
-	[[ $3 != "1" ]] && dosym ${libname}.$3 $1/${libname}.1
-}
-
-src_install-libs() {
-	local inslibdir=$(get_libdir)
-	local NV_ROOT="/usr/${inslibdir}/opengl/nvidia"
-	local libdir= sover=
-
-	if use kernel_linux; then
-		if has_multilib_profile && [[ ${ABI} == "x86" ]] ; then
-			libdir=usr/lib32
-		else
-			libdir=usr/lib
-		fi
-		sover=${PV}
-	else
-		libdir=obj
-		# on FreeBSD it has just .1 suffix
-		sover=1
-	fi
-
-	# The GLX libraries
-	donvidia ${NV_ROOT}/lib ${libdir}/libGL.so ${sover}
-	donvidia ${NV_ROOT}/lib ${libdir}/libGLcore.so ${sover}
-	if use x86-fbsd; then
-		donvidia ${NV_ROOT}/lib ${libdir}/libnvidia-tls.so ${sover}
-	else
-		donvidia ${NV_ROOT}/lib ${libdir}/tls/libnvidia-tls.so ${sover}
-	fi
-
-	#cuda
-	if [[ -f ${libdir}/libcuda.so.${sover} ]]; then
-		dolib.so ${libdir}/libcuda.so.${sover}
-		[[ "${sover}" != "1" ]] && dosym libcuda.so.${sover} /usr/${inslibdir}/libcuda.so.1
-		dosym libcuda.so.1 /usr/${inslibdir}/libcuda.so
-	fi
-
-	#vdpau
-	if [[ -f ${libdir}/libvdpau_nvidia.so.${sover} ]]; then
-		dolib.so ${libdir}/libvdpau_nvidia.so.${sover}
-		dosym libvdpau_nvidia.so.${sover} /usr/${inslibdir}/libvdpau_nvidia.so
-	fi
-
-	# OpenCL
-	# NOTE: This isn't currently available in the publicly released drivers.
-	if [[ -f ${libdir}/libOpenCL.so.1.0.0 ]]; then
-
-		dolib.so ${libdir}/libnvcompiler.so.${sover}
-		[[ "${sover}" != "1" ]] && dosym libnvcompiler.so.${sover} /usr/${inslibdir}/libnvcompiler.so.1
-		dosym libnvcompiler.so.1 /usr/${inslibdir}/libnvcompiler.so
-
-		dolib.so ${libdir}/libOpenCL.so.1.0.0
-		dosym libOpenCL.so.1.0.0 /usr/${inslibdir}/libOpenCL.so.1
-		dosym libOpenCL.so.1 /usr/${inslibdir}/libOpenCL.so
-	fi
-}
-
-pkg_preinst() {
-	if use kernel_linux; then
-		linux-mod_pkg_preinst
-
-		local videogroup="$(egetent group video | cut -d ':' -f 3)"
-		if [ -z "${videogroup}" ]; then
-			eerror "Failed to determine the video group gid"
-			die "Failed to determine the video group gid"
-		else
-			sed -i \
-				-e "s:PACKAGE:${PF}:g" \
-				-e "s:VIDEOGID:${videogroup}:" \
-				"${D}"/etc/modprobe.d/nvidia.conf || die
-		fi
-	fi
-
-	# Clean the dynamic libGL stuff's home to ensure
-	# we dont have stale libs floating around
-	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
-		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
-	fi
-	# Make sure we nuke the old nvidia-glx's env.d file
-	if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
-		rm -f "${ROOT}"/etc/env.d/09nvidia
-	fi
-}
-
-pkg_postinst() {
-	use kernel_linux && linux-mod_pkg_postinst
-
-	# Switch to the nvidia implementation
-	"${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
-
-	readme.gentoo_print_elog
-
-	if ! use tools; then
-		elog "USE=tools controls whether the nvidia-settings application"
-		elog "is installed. If you would like to use it, enable that"
-		elog "flag and re-emerge this ebuild. Optionally you can install"
-		elog "media-video/nvidia-settings"
-	fi
-}
-
-pkg_prerm() {
-	"${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}
-
-pkg_postrm() {
-	use kernel_linux && linux-mod_pkg_postrm
-	"${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-173.14.39-r2.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-173.14.39-r2.ebuild
deleted file mode 100644
index 4680caf3d7e..00000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-173.14.39-r2.ebuild
+++ /dev/null
@@ -1,544 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit eutils flag-o-matic linux-mod multilib-minimal nvidia-driver portability \
-	unpacker user versionator
-
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
-X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
-SRC_URI="x86? ( http://http.download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}-pkg0.run )
-	 amd64? ( http://http.download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}-pkg2.run )
-	 x86-fbsd? ( http://http.download.nvidia.com/freebsd/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )"
-
-LICENSE="GPL-2 NVIDIA-r1"
-SLOT="0/173"
-KEYWORDS="-* amd64 x86 ~x86-fbsd"
-IUSE="acpi multilib kernel_linux tools"
-RESTRICT="bindist mirror strip"
-EMULTILIB_PKG="true"
-
-COMMON="
-	>=app-eselect/eselect-opengl-1.0.9
-	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
-"
-DEPEND="
-	${COMMON}
-	kernel_linux? ( virtual/linux-sources )
-"
-RDEPEND="
-	${COMMON}
-	<x11-base/xorg-server-1.15.99:=
-	sys-libs/zlib
-	>=x11-libs/libX11-1.6.2
-	>=x11-libs/libXext-1.3.2
-	acpi? ( sys-power/acpid )
-	tools? (
-		dev-libs/atk
-		dev-libs/glib:2
-		x11-libs/gdk-pixbuf[X]
-		x11-libs/gtk+:2
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/pango[X]
-	)
-"
-
-QA_TEXTRELS_x86="usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib/xorg/modules/drivers/nvidia_drv.so
-	usr/lib/libcuda.so.${PV}
-	usr/lib/libnvidia-cfg.so.${PV}
-	usr/lib/libvdpau_nvidia.so.${PV}
-	usr/lib/libXvMCNVIDIA.so.${PV}"
-
-QA_TEXTRELS_x86_fbsd="boot/modules/nvidia.ko
-	usr/lib/opengl/nvidia/lib/libGL.so.1
-	usr/lib/opengl/nvidia/lib/libGLcore.so.1
-	usr/lib/libnvidia-cfg.so.1
-	usr/lib/opengl/nvidia/extensions/libglx.so.1
-	usr/lib/xorg/modules/drivers/nvidia_drv.so"
-
-QA_TEXTRELS_amd64="usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib32/libcuda.so.${PV}
-	usr/lib32/libvdpau_nvidia.so.${PV}"
-
-QA_EXECSTACK_x86="usr/lib/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib/xorg/modules/drivers/nvidia_drv.so
-	usr/lib/libXvMCNVIDIA.a:NVXVMC.o"
-
-QA_EXECSTACK_amd64="usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib64/libnvcompiler.so.${PV}
-	usr/lib64/libXvMCNVIDIA.so.${PV}
-	usr/lib64/libXvMCNVIDIA.a:NVXVMC.o
-	usr/lib64/libnvidia-cfg.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib64/xorg/modules/drivers/nvidia_drv.so
-	opt/bin/nvidia-settings
-	opt/bin/nvidia-smi
-	opt/bin/nvidia-xconfig"
-
-QA_WX_LOAD_x86="usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib/libXvMCNVIDIA.a"
-
-QA_WX_LOAD_amd64="usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}"
-
-QA_SONAME_amd64="usr/lib64/libnvcompiler.so.${PV}"
-
-QA_FLAGS_IGNORED_amd64="usr/lib32/libcuda.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib32/libvdpau_nvidia.so.${PV}
-	usr/lib64/libXvMCNVIDIA.so.${PV}
-	usr/lib64/libcuda.so.${PV}
-	usr/lib64/libnvidia-cfg.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib64/xorg/modules/drivers/nvidia_drv.so
-	usr/lib64/libvdpau_nvidia.so.${PV}
-	opt/bin/nvidia-settings
-	opt/bin/nvidia-smi
-	opt/bin/nvidia-xconfig"
-
-QA_FLAGS_IGNORED_x86="usr/lib/libcuda.so.${PV}
-	usr/lib/libnvidia-cfg.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib/xorg/modules/drivers/nvidia_drv.so
-	usr/lib/libXvMCNVIDIA.so.${PV}
-	usr/lib/libvdpau_nvidia.so.${PV}
-	opt/bin/nvidia-settings
-	opt/bin/nvidia-smi
-	opt/bin/nvidia-xconfig"
-
-S="${WORKDIR}/"
-
-mtrr_check() {
-	ebegin "Checking for MTRR support"
-	linux_chkconfig_present MTRR
-	eend $?
-
-	if [[ $? -ne 0 ]] ; then
-		eerror "Please enable MTRR support in your kernel config, found at:"
-		eerror
-		eerror "  Processor type and features"
-		eerror "    [*] MTRR (Memory Type Range Register) support"
-		eerror
-		eerror "and recompile your kernel ..."
-		die "MTRR support not detected!"
-	fi
-}
-
-lockdep_check() {
-	if linux_chkconfig_present LOCKDEP; then
-		eerror "You've enabled LOCKDEP -- lock tracking -- in the kernel."
-		eerror "Unfortunately, this option exports the symbol 'lockdep_init_map' as GPL-only"
-		eerror "which will prevent ${P} from compiling."
-		eerror "Please make sure the following options have been unset:"
-		eerror "    Kernel hacking  --->"
-		eerror "        [ ] Lock debugging: detect incorrect freeing of live locks"
-		eerror "        [ ] Lock debugging: prove locking correctness"
-		eerror "        [ ] Lock usage statistics"
-		eerror "in 'menuconfig'"
-		die "LOCKDEP enabled"
-	fi
-}
-
-pkg_setup() {
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	if use amd64 && has_multilib_profile && [ "${DEFAULT_ABI}" != "amd64" ]; then
-		eerror "This ebuild doesn't currently support changing your default abi."
-		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
-	fi
-
-	if use kernel_linux; then
-		linux-mod_pkg_setup
-		MODULE_NAMES="nvidia(video:${S}/usr/src/nv)"
-		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
-		# linux-mod_src_compile calls set_arch_to_kernel, which
-		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
-		# expects x86_64 or i386 and then converts it to x86
-		# later on in the build process
-		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
-		mtrr_check
-		lockdep_check
-	fi
-
-	# On BSD userland it wants real make command
-	use userland_BSD && MAKE="$(get_bmake)"
-
-	export _POSIX2_VERSION="199209"
-
-	if use kernel_linux && kernel_is ge 3 13 ; then
-		ewarn "Gentoo supports kernels which are supported by NVIDIA"
-		ewarn "which are limited to the following kernels:"
-		ewarn "<sys-kernel/gentoo-sources-3.13"
-		ewarn "<sys-kernel/vanilla-sources-3.13"
-		ewarn ""
-		ewarn "You are free to utilize epatch_user to provide whatever"
-		ewarn "support you feel is appropriate, but will not receive"
-		ewarn "support as a result of those changes."
-		ewarn ""
-		ewarn "Do not file a bug report about this."
-	fi
-
-	# Since Nvidia ships many different series of drivers, we need to give the user
-	# some kind of guidance as to what version they should install. This tries
-	# to point the user in the right direction but can't be perfect. check
-	# nvidia-driver.eclass
-	nvidia-driver-check-warning
-
-	# set variables to where files are in the package structure
-	if use kernel_FreeBSD; then
-		use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
-		NV_DOC="${S}/doc"
-		NV_EXEC="${S}/obj"
-		NV_LIB="${S}/obj"
-		NV_SRC="${S}/src"
-		NV_MAN="${S}/x11/man"
-		NV_X11="${S}/obj"
-		NV_X11_DRV="${NV_X11}"
-		NV_X11_EXT="${NV_X11}"
-		NV_SOVER=1
-	elif use kernel_linux; then
-		NV_DOC="${S}/usr/share/doc"
-		NV_EXEC="${S}/usr/bin"
-		NV_LIB="${S}/usr/lib"
-		NV_SRC="${S}/usr/src/nv"
-		NV_MAN="${S}/usr/share/man/man1"
-		NV_X11="${S}/usr/X11R6/lib"
-		NV_X11_DRV="${NV_X11}/modules/drivers"
-		NV_X11_EXT="${NV_X11}/modules/extensions"
-		NV_SOVER=${PV}
-	else
-		die "Could not determine proper NVIDIA package"
-	fi
-}
-
-src_unpack() {
-	if use kernel_linux && kernel_is lt 2 6 7; then
-		echo
-		ewarn "Your kernel version is ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
-		ewarn "This is not officially supported for ${P}. It is likely you"
-		ewarn "will not be able to compile or use the kernel module."
-		ewarn "It is recommended that you upgrade your kernel to a version >= 2.6.7"
-		echo
-		ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored."
-	fi
-
-	if ! use x86-fbsd; then
-		mkdir "${S}"
-		cd "${S}"
-		unpack_makeself
-	else
-		unpack ${A}
-	fi
-}
-
-src_prepare() {
-	# Please add a brief description for every added patch
-	use x86-fbsd && cd doc
-
-	# Use the correct defines to make gtkglext build work
-	epatch "${FILESDIR}"/NVIDIA_glx-defines.patch
-	# Use some more sensible gl headers and make way for new glext.h
-	epatch "${FILESDIR}"/NVIDIA_glx-glheader.patch
-
-	if use kernel_linux; then
-		# Quiet down warnings the user does not need to see
-		sed -i \
-			-e 's:-Wpointer-arith::g' \
-			-e 's:-Wsign-compare::g' \
-			"${NV_SRC}"/Makefile.kbuild
-
-		# If greater than 2.6.5 use M= instead of SUBDIR=
-		convert_to_m "${NV_SRC}"/Makefile.kbuild
-	fi
-
-	epatch_user
-}
-
-src_compile() {
-	# This is already the default on Linux, as there's no toplevel Makefile, but
-	# on FreeBSD there's one and triggers the kernel module build, as we install
-	# it by itself, pass this.
-
-	cd "${NV_SRC}"
-	if use x86-fbsd; then
-		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
-			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)"
-	elif use kernel_linux; then
-		linux-mod_src_compile
-	fi
-}
-
-src_install() {
-	if use kernel_linux; then
-		linux-mod_src_install
-
-		# Add the aliases
-		# This file is tweaked with the appropriate video group in
-		# pkg_preinst, see bug #491414
-		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-	elif use kernel_FreeBSD; then
-		insinto /boot/modules
-		doins "${WORKDIR}/${NV_PACKAGE}/src/nvidia.kld"
-
-		exeinto /boot/modules
-		doexe "${WORKDIR}/${NV_PACKAGE}/src/nvidia.ko"
-	fi
-
-	# NVIDIA kernel <-> userspace driver config lib
-	dolib.so ${NV_LIB}/libnvidia-cfg.so.${NV_SOVER} || \
-		die "failed to install libnvidia-cfg"
-	dosym libnvidia-cfg.so.${NV_SOVER} \
-		/usr/$(get_libdir)/libnvidia-cfg.so.1 || \
-		die "failed to create libnvidia-cfg.so.1 symlink"
-	dosym libnvidia-cfg.so.1 \
-		/usr/$(get_libdir)/libnvidia-cfg.so || \
-		die "failed to create libnvidia-cfg.so symlink"
-
-	# Xorg DDX driver
-	insinto /usr/$(get_libdir)/xorg/modules/drivers
-	doins ${NV_X11_DRV}/nvidia_drv.so
-
-	# Xorg GLX driver
-	insinto /usr/$(get_libdir)/opengl/nvidia/extensions
-	doins ${NV_X11_EXT}/libglx.so.${NV_SOVER} || \
-		die "failed to install libglx.so"
-	dosym /usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so.${NV_SOVER} \
-		/usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so || \
-		die "failed to create libglx.so symlink"
-
-	# XvMC driver
-	dolib.a ${NV_X11}/libXvMCNVIDIA.a || \
-		die "failed to install libXvMCNVIDIA.so"
-	dolib.so ${NV_X11}/libXvMCNVIDIA.so.${NV_SOVER} || \
-		die "failed to install libXvMCNVIDIA.so"
-	dosym libXvMCNVIDIA.so.${NV_SOVER} \
-		/usr/$(get_libdir)/libXvMCNVIDIA.so.1 || \
-		die "failed to create libXvMCNVIDIA.so.1 symlink"
-	dosym libXvMCNVIDIA.so.1 \
-		/usr/$(get_libdir)/libXvMCNVIDIA.so || \
-		die "failed to create libXvMCNVIDIA.so symlink"
-	dosym libXvMCNVIDIA.so.${NV_SOVER} \
-		/usr/$(get_libdir)/libXvMCNVIDIA_dynamic.so.1 || \
-		die "failed to create libXvMCNVIDIA_dynamic.so.1 symlink"
-
-	# CUDA headers (driver to come)
-	if use kernel_linux && [[ -d ${S}/usr/include/cuda ]]; then
-		dodir /usr/include/cuda
-		insinto /usr/include/cuda
-		doins usr/include/cuda/*.h
-	fi
-
-	# OpenCL headers (driver to come)
-	if [[ -d ${S}/usr/include/CL ]]; then
-		dodir /usr/include/CL
-		insinto /usr/include/CL
-		doins usr/include/CL/*.h
-	fi
-
-	# Documentation
-	dodoc ${NV_DOC}/XF86Config.sample
-	dohtml ${NV_DOC}/html/*
-	if use x86-fbsd; then
-		dodoc "${NV_DOC}/README"
-		doman "${NV_MAN}/nvidia-xconfig.1"
-		doman "${NV_MAN}/nvidia-settings.1"
-	else
-		# Docs
-		newdoc "${NV_DOC}/README.txt" README
-		dodoc "${NV_DOC}/NVIDIA_Changelog"
-		doman "${NV_MAN}/nvidia-xconfig.1.gz"
-		doman "${NV_MAN}/nvidia-settings.1.gz"
-	fi
-
-	# Helper Apps
-	exeinto /opt/bin/
-	doexe ${NV_EXEC}/nvidia-xconfig
-	doexe ${NV_EXEC}/nvidia-bug-report.sh
-	if use tools; then
-		doexe usr/bin/nvidia-settings
-	fi
-	if use kernel_linux; then
-		doexe ${NV_EXEC}/nvidia-smi
-	fi
-
-	# Desktop entry for nvidia-settings
-	if use tools && use kernel_linux; then
-		sed -e 's:__UTILS_PATH__:/opt/bin:' \
-			-e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' \
-			-e '/^Categories/s|Application;||g' \
-			-i "${S}"/usr/share/applications//nvidia-settings.desktop
-		newmenu "${S}"/usr/share/applications/nvidia-settings.desktop \
-			nvidia-settings-opt.desktop
-	fi
-
-	if has_multilib_profile ; then
-		local OABI=${ABI}
-		for ABI in $(get_install_abis) ; do
-			src_install-libs
-		done
-		ABI=${OABI}
-		unset OABI
-	else
-		src_install-libs
-	fi
-
-	is_final_abi || die "failed to iterate through all ABIs"
-
-	readme.gentoo_create_doc
-}
-
-# Install nvidia library:
-# the first parameter is the place where to install it
-# the second parameter is the base name of the library
-# the third parameter is the provided soversion
-donvidia() {
-	dodir $1
-	exeinto $1
-
-	libname=$(basename $2)
-
-	doexe $2.$3
-	dosym ${libname}.$3 $1/${libname}
-	[[ $3 != "1" ]] && dosym ${libname}.$3 $1/${libname}.1
-}
-
-src_install-libs() {
-	local inslibdir=$(get_libdir)
-	local NV_ROOT="/usr/${inslibdir}/opengl/nvidia"
-	local libdir= sover=
-
-	if use kernel_linux; then
-		if has_multilib_profile && [[ ${ABI} == "x86" ]] ; then
-			libdir=usr/lib32
-		else
-			libdir=usr/lib
-		fi
-		sover=${PV}
-	else
-		libdir=obj
-		# on FreeBSD it has just .1 suffix
-		sover=1
-	fi
-
-	# The GLX libraries
-	donvidia ${NV_ROOT}/lib ${libdir}/libGL.so ${sover}
-	donvidia ${NV_ROOT}/lib ${libdir}/libGLcore.so ${sover}
-	if use x86-fbsd; then
-		donvidia ${NV_ROOT}/lib ${libdir}/libnvidia-tls.so ${sover}
-	else
-		donvidia ${NV_ROOT}/lib ${libdir}/tls/libnvidia-tls.so ${sover}
-	fi
-
-	#cuda
-	if [[ -f ${libdir}/libcuda.so.${sover} ]]; then
-		dolib.so ${libdir}/libcuda.so.${sover}
-		[[ "${sover}" != "1" ]] && dosym libcuda.so.${sover} /usr/${inslibdir}/libcuda.so.1
-		dosym libcuda.so.1 /usr/${inslibdir}/libcuda.so
-	fi
-
-	#vdpau
-	if [[ -f ${libdir}/libvdpau_nvidia.so.${sover} ]]; then
-		dolib.so ${libdir}/libvdpau_nvidia.so.${sover}
-		dosym libvdpau_nvidia.so.${sover} /usr/${inslibdir}/libvdpau_nvidia.so
-	fi
-
-	# OpenCL
-	# NOTE: This isn't currently available in the publicly released drivers.
-	if [[ -f ${libdir}/libOpenCL.so.1.0.0 ]]; then
-
-		dolib.so ${libdir}/libnvcompiler.so.${sover}
-		[[ "${sover}" != "1" ]] && dosym libnvcompiler.so.${sover} /usr/${inslibdir}/libnvcompiler.so.1
-		dosym libnvcompiler.so.1 /usr/${inslibdir}/libnvcompiler.so
-
-		dolib.so ${libdir}/libOpenCL.so.1.0.0
-		dosym libOpenCL.so.1.0.0 /usr/${inslibdir}/libOpenCL.so.1
-		dosym libOpenCL.so.1 /usr/${inslibdir}/libOpenCL.so
-	fi
-}
-
-pkg_preinst() {
-	if use kernel_linux; then
-		linux-mod_pkg_preinst
-
-		local videogroup="$(egetent group video | cut -d ':' -f 3)"
-		if [ -z "${videogroup}" ]; then
-			eerror "Failed to determine the video group gid"
-			die "Failed to determine the video group gid"
-		else
-			sed -i \
-				-e "s:PACKAGE:${PF}:g" \
-				-e "s:VIDEOGID:${videogroup}:" \
-				"${D}"/etc/modprobe.d/nvidia.conf || die
-		fi
-	fi
-
-	# Clean the dynamic libGL stuff's home to ensure
-	# we dont have stale libs floating around
-	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
-		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
-	fi
-	# Make sure we nuke the old nvidia-glx's env.d file
-	if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
-		rm -f "${ROOT}"/etc/env.d/09nvidia
-	fi
-}
-
-pkg_postinst() {
-	use kernel_linux && linux-mod_pkg_postinst
-
-	# Switch to the nvidia implementation
-	"${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
-
-	readme.gentoo_print_elog
-
-	if ! use tools; then
-		elog "USE=tools controls whether the nvidia-settings application"
-		elog "is installed. If you would like to use it, enable that"
-		elog "flag and re-emerge this ebuild. Optionally you can install"
-		elog "media-video/nvidia-settings"
-	fi
-}
-
-pkg_prerm() {
-	"${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}
-
-pkg_postrm() {
-	use kernel_linux && linux-mod_pkg_postrm
-	"${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-96.43.23-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-96.43.23-r1.ebuild
deleted file mode 100644
index 375cbbfcbd3..00000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-96.43.23-r1.ebuild
+++ /dev/null
@@ -1,518 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-inherit eutils flag-o-matic linux-mod multilib nvidia-driver portability unpacker user versionator
-
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
-X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
-SRC_URI="x86? ( http://http.download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}-pkg0.run )
-	 amd64? ( http://http.download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}-pkg2.run )
-	 x86-fbsd? ( http://http.download.nvidia.com/freebsd/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )"
-
-LICENSE="GPL-2 NVIDIA-r1"
-SLOT="0/96"
-KEYWORDS="-* amd64 x86 ~x86-fbsd"
-IUSE="acpi custom-cflags gtk multilib kernel_linux"
-RESTRICT="bindist mirror strip"
-EMULTILIB_PKG="true"
-
-COMMON="
-	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
-	>=app-eselect/eselect-opengl-1.0.9
-"
-DEPEND="${COMMON}
-	kernel_linux? ( virtual/linux-sources )
-"
-RDEPEND="${COMMON}
-	<x11-base/xorg-server-1.12.99:=
-	acpi? ( sys-power/acpid )
-	gtk? (
-		!media-video/nvidia-settings
-		dev-libs/atk
-		dev-libs/glib:2
-		x11-libs/gdk-pixbuf
-		x11-libs/gtk+:2
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/pango[X]
-		x11-libs/pangox-compat
-	)
-	multilib? (
-		>=x11-libs/libX11-1.6.2[abi_x86_32]
-		>=x11-libs/libXext-1.3.2[abi_x86_32]
-	)
-"
-
-QA_TEXTRELS_x86="
-	usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib/xorg/modules/drivers/nvidia_drv.so
-	usr/lib/libcuda.so.${PV}
-	usr/lib/libnvidia-cfg.so.${PV}
-	usr/lib/libvdpau_nvidia.so.${PV}
-	usr/lib/libXvMCNVIDIA.so.${PV}
-"
-
-QA_TEXTRELS_x86_fbsd="
-	boot/modules/nvidia.ko
-	usr/lib/opengl/nvidia/lib/libGL.so.1
-	usr/lib/opengl/nvidia/lib/libGLcore.so.1
-	usr/lib/libnvidia-cfg.so.1
-	usr/lib/opengl/nvidia/extensions/libglx.so.1
-	usr/lib/xorg/modules/drivers/nvidia_drv.so
-"
-
-QA_TEXTRELS_amd64="
-	usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib32/libcuda.so.${PV}
-	usr/lib32/libvdpau_nvidia.so.${PV}
-"
-
-QA_EXECSTACK_x86="
-	usr/lib/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib/xorg/modules/drivers/nvidia_drv.so
-	usr/lib/libXvMCNVIDIA.a:NVXVMC.o
-"
-
-QA_EXECSTACK_amd64="
-	usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib64/libnvcompiler.so.${PV}
-	usr/lib64/libXvMCNVIDIA.so.${PV}
-	usr/lib64/libXvMCNVIDIA.a:NVXVMC.o
-	usr/lib64/libnvidia-cfg.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib64/xorg/modules/drivers/nvidia_drv.so
-	usr/bin/nvidia-settings
-	usr/bin/nvidia-smi
-	usr/bin/nvidia-xconfig
-"
-
-QA_WX_LOAD_x86="
-	usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib/libXvMCNVIDIA.a
-"
-
-QA_WX_LOAD_amd64="
-	usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
-"
-
-QA_SONAME_amd64="
-	usr/lib64/libnvcompiler.so.${PV}
-"
-
-QA_FLAGS_IGNORED_amd64="
-	usr/lib32/libcuda.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib32/libvdpau_nvidia.so.${PV}
-	usr/lib64/libXvMCNVIDIA.so.${PV}
-	usr/lib64/libcuda.so.${PV}
-	usr/lib64/libnvidia-cfg.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib64/xorg/modules/drivers/nvidia_drv.so
-	usr/lib64/libvdpau_nvidia.so.${PV}
-	usr/bin/nvidia-settings
-	usr/bin/nvidia-smi
-	usr/bin/nvidia-xconfig
-"
-
-QA_FLAGS_IGNORED_x86="
-	usr/lib/libcuda.so.${PV}
-	usr/lib/libnvidia-cfg.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}
-	usr/lib/opengl/nvidia/lib/libGL.so.${PV}
-	usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV}
-	usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
-	usr/lib/xorg/modules/drivers/nvidia_drv.so
-	usr/lib/libXvMCNVIDIA.so.${PV}
-	usr/lib/libvdpau_nvidia.so.${PV}
-	usr/bin/nvidia-settings
-	usr/bin/nvidia-smi
-	usr/bin/nvidia-xconfig
-"
-
-S="${WORKDIR}/"
-
-mtrr_check() {
-	ebegin "Checking for MTRR support"
-	linux_chkconfig_present MTRR
-	eend $?
-
-	if [[ $? -ne 0 ]] ; then
-		eerror "Please enable MTRR support in your kernel config, found at:"
-		eerror
-		eerror "  Processor type and features"
-		eerror "    [*] MTRR (Memory Type Range Register) support"
-		eerror
-		eerror "and recompile your kernel ..."
-		die "MTRR support not detected!"
-	fi
-}
-
-lockdep_check() {
-	if linux_chkconfig_present LOCKDEP; then
-		eerror "You've enabled LOCKDEP -- lock tracking -- in the kernel."
-		eerror "Unfortunately, this option exports the symbol 'lockdep_init_map' as GPL-only"
-		eerror "which will prevent ${P} from compiling."
-		eerror "Please make sure the following options have been unset:"
-		eerror "    Kernel hacking  --->"
-		eerror "        [ ] Lock debugging: detect incorrect freeing of live locks"
-		eerror "        [ ] Lock debugging: prove locking correctness"
-		eerror "        [ ] Lock usage statistics"
-		eerror "in 'menuconfig'"
-		die "LOCKDEP enabled"
-	fi
-}
-
-pkg_setup() {
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	if use amd64 && has_multilib_profile && [ "${DEFAULT_ABI}" != "amd64" ]; then
-		eerror "This ebuild doesn't currently support changing your default abi."
-		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
-	fi
-
-	if use kernel_linux; then
-		linux-mod_pkg_setup
-		MODULE_NAMES="nvidia(video:${S}/usr/src/nv)"
-		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
-		mtrr_check
-		lockdep_check
-	fi
-
-	# On BSD userland it wants real make command
-	use userland_BSD && MAKE="$(get_bmake)"
-
-	export _POSIX2_VERSION="199209"
-
-	if use kernel_linux && kernel_is ge 3 7 ; then
-		ewarn "Gentoo supports kernels which are supported by NVIDIA"
-		ewarn "which are limited to the following kernels:"
-		ewarn "<sys-kernel/gentoo-sources-3.7"
-		ewarn "<sys-kernel/vanilla-sources-3.7"
-		ewarn ""
-		ewarn "You are free to utilize epatch_user to provide whatever"
-		ewarn "support you feel is appropriate, but will not receive"
-		ewarn "support as a result of those changes."
-		ewarn ""
-		ewarn "Do not file a bug report about this."
-	fi
-
-	# Since Nvidia ships many different series of drivers, we need to give the user
-	# some kind of guidance as to what version they should install. This tries
-	# to point the user in the right direction but can't be perfect. check
-	# nvidia-driver.eclass
-	nvidia-driver-check-warning
-
-	# set variables to where files are in the package structure
-	if use kernel_FreeBSD; then
-		use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
-		NV_DOC="${S}/doc"
-		NV_EXEC="${S}/obj"
-		NV_LIB="${S}/obj"
-		NV_SRC="${S}/src"
-		NV_MAN="${S}/x11/man"
-		NV_X11="${S}/obj"
-		NV_X11_DRV="${NV_X11}"
-		NV_X11_EXT="${NV_X11}"
-		NV_SOVER=1
-	elif use kernel_linux; then
-		NV_DOC="${S}/usr/share/doc"
-		NV_EXEC="${S}/usr/bin"
-		NV_LIB="${S}/usr/lib"
-		NV_SRC="${S}/usr/src/nv"
-		NV_MAN="${S}/usr/share/man/man1"
-		NV_X11="${S}/usr/X11R6/lib"
-		NV_X11_DRV="${NV_X11}/modules/drivers"
-		NV_X11_EXT="${NV_X11}/modules/extensions"
-		NV_SOVER=${PV}
-	else
-		die "Could not determine proper NVIDIA package"
-	fi
-}
-
-src_unpack() {
-	if use kernel_linux && kernel_is lt 2 6 7; then
-		echo
-		ewarn "Your kernel version is ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
-		ewarn "This is not officially supported for ${P}. It is likely you"
-		ewarn "will not be able to compile or use the kernel module."
-		ewarn "It is recommended that you upgrade your kernel to a version >= 2.6.7"
-		echo
-		ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored."
-	fi
-
-	if ! use x86-fbsd; then
-		mkdir "${S}"
-		cd "${S}"
-		unpack_makeself
-	else
-		unpack ${A}
-	fi
-}
-
-src_prepare() {
-	# Please add a brief description for every added patch
-	use x86-fbsd && cd doc
-
-	# Use the correct defines to make gtkglext build work
-	epatch "${FILESDIR}"/NVIDIA_glx-defines.patch
-	# Use some more sensible gl headers and make way for new glext.h
-	epatch "${FILESDIR}"/NVIDIA_glx-glheader.patch
-
-	if use kernel_linux; then
-		# Quiet down warnings the user does not need to see
-		sed -i \
-			-e 's:-Wpointer-arith::g' \
-			-e 's:-Wsign-compare::g' \
-			"${NV_SRC}"/Makefile.kbuild
-
-		# If you set this then it's your own fault when stuff breaks :)
-		use custom-cflags && sed -i "s:-O:${CFLAGS}:" "${NV_SRC}"/Makefile.*
-
-		# If greater than 2.6.5 use M= instead of SUBDIR=
-		convert_to_m "${NV_SRC}"/Makefile.kbuild
-	fi
-}
-
-src_compile() {
-	# This is already the default on Linux, as there's no toplevel Makefile, but
-	# on FreeBSD there's one and triggers the kernel module build, as we install
-	# it by itself, pass this.
-
-	cd "${NV_SRC}"
-	if use x86-fbsd; then
-		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
-			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
-	elif use kernel_linux; then
-		BUILD_PARAMS+=" PATCHLEVEL=not4"
-		linux-mod_src_compile
-	fi
-}
-
-src_install() {
-	if use kernel_linux; then
-		linux-mod_src_install
-
-		VIDEOGROUP="$(egetent group video | cut -d ':' -f 3)"
-		if [ -z "$VIDEOGROUP" ]; then
-			eerror "Failed to determine the video group gid."
-			die "Failed to determine the video group gid."
-		fi
-
-		# Add the aliases
-		sed -e 's:PACKAGE:'${PF}':g' \
-			-e 's:VIDEOGID:'${VIDEOGROUP}':' "${FILESDIR}"/nvidia-169.07 > \
-			"${WORKDIR}"/nvidia || die
-		insinto /etc/modprobe.d
-		newins "${WORKDIR}"/nvidia nvidia.conf
-	elif use x86-fbsd; then
-		insinto /boot/modules
-		doins "${WORKDIR}/${NV_PACKAGE}/src/nvidia.kld"
-
-		exeinto /boot/modules
-		doexe "${WORKDIR}/${NV_PACKAGE}/src/nvidia.ko"
-	fi
-
-	# NVIDIA kernel <-> userspace driver config lib
-	dolib.so ${NV_LIB}/libnvidia-cfg.so.${NV_SOVER}
-
-	# Xorg DDX driver
-	insinto /usr/$(get_libdir)/xorg/modules/drivers
-	doins ${NV_X11_DRV}/nvidia_drv.so
-
-	# Xorg GLX driver
-	insinto /usr/$(get_libdir)/opengl/nvidia/extensions
-	doins ${NV_X11_EXT}/libglx.so.${NV_SOVER}
-	dosym /usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so.${NV_SOVER} \
-		/usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so
-
-	# XvMC driver
-	dolib.a ${NV_X11}/libXvMCNVIDIA.a
-	dolib.so ${NV_X11}/libXvMCNVIDIA.so.${NV_SOVER}
-	dosym libXvMCNVIDIA.so.${NV_SOVER} /usr/$(get_libdir)/libXvMCNVIDIA.so
-
-	# CUDA headers (driver to come)
-	if [[ -d ${S}/usr/include/cuda ]]; then
-		dodir /usr/include/cuda
-		insinto /usr/include/cuda
-		doins usr/include/cuda/*.h
-	fi
-
-	# OpenCL headers (driver to come)
-	if [[ -d ${S}/usr/include/CL ]]; then
-		dodir /usr/include/CL
-		insinto /usr/include/CL
-		doins usr/include/CL/*.h
-	fi
-
-	# Documentation
-	dodoc ${NV_DOC}/XF86Config.sample
-	dohtml ${NV_DOC}/html/*
-	if use x86-fbsd; then
-		dodoc "${NV_DOC}/README"
-		doman "${NV_MAN}/nvidia-xconfig.1"
-	else
-		# Docs
-		newdoc "${NV_DOC}/README.txt" README
-		dodoc "${NV_DOC}/NVIDIA_Changelog"
-#		doman "${NV_MAN}/nvidia-smi.1.gz"
-		doman "${NV_MAN}/nvidia-xconfig.1.gz"
-	fi
-
-	# Helper Apps
-	dobin ${NV_EXEC}/nvidia-xconfig
-	dobin ${NV_EXEC}/nvidia-bug-report.sh
-	if use gtk; then
-		dobin usr/bin/nvidia-settings
-	fi
-#	if use kernel_linux; then
-#		dobin ${NV_EXEC}/nvidia-smi || die
-#	fi
-
-	if has_multilib_profile ; then
-		local OABI=${ABI}
-		for ABI in $(get_install_abis) ; do
-			src_install-libs
-		done
-		ABI=${OABI}
-		unset OABI
-	else
-		src_install-libs
-	fi
-
-	is_final_abi || die "failed to iterate through all ABIs"
-
-	readme.gentoo_create_doc
-}
-
-# Install nvidia library:
-# the first parameter is the place where to install it
-# the second parameter is the base name of the library
-# the third parameter is the provided soversion
-donvidia() {
-	dodir $1
-	exeinto $1
-
-	libname=$(basename $2)
-
-	doexe $2.$3
-	dosym ${libname}.$3 $1/${libname}
-	[[ $3 != "1" ]] && dosym ${libname}.$3 $1/${libname}.1
-}
-
-src_install-libs() {
-	local inslibdir=$(get_libdir)
-	local NV_ROOT="/usr/${inslibdir}/opengl/nvidia"
-	local libdir= sover=
-
-	if use kernel_linux; then
-		if has_multilib_profile && [[ ${ABI} == "x86" ]] ; then
-			libdir=usr/lib32
-		else
-			libdir=usr/lib
-		fi
-		sover=${PV}
-	else
-		libdir=obj
-		# on FreeBSD it has just .1 suffix
-		sover=1
-	fi
-
-	# The GLX libraries
-	donvidia ${NV_ROOT}/lib ${libdir}/libGL.so ${sover}
-	donvidia ${NV_ROOT}/lib ${libdir}/libGLcore.so ${sover}
-	if use x86-fbsd; then
-		donvidia ${NV_ROOT}/lib ${libdir}/libnvidia-tls.so ${sover}
-	else
-		donvidia ${NV_ROOT}/lib ${libdir}/tls/libnvidia-tls.so ${sover}
-	fi
-
-	#cuda
-	if [[ -f ${libdir}/libcuda.so.${sover} ]]; then
-		dolib.so ${libdir}/libcuda.so.${sover}
-		[[ "${sover}" != "1" ]] && dosym libcuda.so.${sover} /usr/${inslibdir}/libcuda.so.1
-		dosym libcuda.so.1 /usr/${inslibdir}/libcuda.so
-	fi
-
-	#vdpau
-	if [[ -f ${libdir}/libvdpau_nvidia.so.${sover} ]]; then
-		dolib.so ${libdir}/libvdpau_nvidia.so.${sover}
-		dosym libvdpau_nvidia.so.${sover} /usr/${inslibdir}/libvdpau_nvidia.so
-	fi
-
-	# OpenCL
-	# NOTE: This isn't currently available in the publicly released drivers.
-	if [[ -f ${libdir}/libOpenCL.so.1.0.0 ]]; then
-
-		dolib.so ${libdir}/libnvcompiler.so.${sover}
-		[[ "${sover}" != "1" ]] && dosym libnvcompiler.so.${sover} /usr/${inslibdir}/libnvcompiler.so.1
-		dosym libnvcompiler.so.1 /usr/${inslibdir}/libnvcompiler.so
-
-		dolib.so ${libdir}/libOpenCL.so.1.0.0
-		dosym libOpenCL.so.1.0.0 /usr/${inslibdir}/libOpenCL.so.1
-		dosym libOpenCL.so.1 /usr/${inslibdir}/libOpenCL.so
-	fi
-}
-
-pkg_preinst() {
-	if use kernel_linux; then
-		linux-mod_pkg_postinst
-	fi
-
-	# Clean the dynamic libGL stuff's home to ensure
-	# we dont have stale libs floating around
-	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
-		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
-	fi
-	# Make sure we nuke the old nvidia-glx's env.d file
-	if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
-		rm -f "${ROOT}"/etc/env.d/09nvidia
-	fi
-}
-
-pkg_postinst() {
-	if use kernel_linux; then
-		linux-mod_pkg_postinst
-	fi
-
-	# Switch to the nvidia implementation
-	eselect opengl set --use-old nvidia
-
-	readme.gentoo_print_elog
-}
-
-pkg_postrm() {
-	if use kernel_linux; then
-		linux-mod_pkg_postrm
-	fi
-	eselect opengl set --use-old xorg-x11
-}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2017-11-27 23:31 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2017-11-27 23:31 UTC (permalink / raw
  To: gentoo-commits

commit:     5a612b5aa026158d1c8a951b4355a7d7f9700962
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 27 23:30:50 2017 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Mon Nov 27 23:30:50 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5a612b5a

x11-drivers/nvidia-drivers: Version bump (bug #638864).

Package-Manager: Portage-2.3.16, Repoman-2.3.6

 x11-drivers/nvidia-drivers/Manifest                |   6 +
 .../files/nvidia-drivers-387.34-linker.patch       |  22 +
 .../nvidia-drivers/nvidia-drivers-387.34.ebuild    | 580 +++++++++++++++++++++
 3 files changed, 608 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index 3cd716009f3..cb5c848ccec 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -7,6 +7,7 @@ DIST NVIDIA-FreeBSD-x86-384.90.tar.gz 63539967 BLAKE2B 7f9d14de9e79c59aaf27bc088
 DIST NVIDIA-FreeBSD-x86-384.98.tar.gz 63653102 BLAKE2B 003f293136a5a37a381ebe573ddcf05613f93f774f962d6aefc60f785f63030f1eb71dd96c4fc3507c6e9f9508a09dca297dab8939517abcf630706722cea8a7 SHA512 95b6709f994a3b8e5984d8b0eb745016c6769b2c41072672318b9e0643d1f7d64eff376e702e1768013dfae5e8976475b13573b258e13236d991e9514e58a7f5
 DIST NVIDIA-FreeBSD-x86-387.12.tar.gz 64054985 BLAKE2B c804bad5757a80ce443a2e3ab8d6316908a5287b7daf1cb0f50a379e7fa8e4efedd2af00f2c2617072e758f24e0f1dbc68cc92992b3424d6178149d14c98bb9e SHA512 fa92275e4e1795fd91515ca4cd20cb21dfcb273043f115795fdf82f6c39d2ead80848e8b44b711be6a769de2b93bc91f857084dab8f1d1f4cad5245c9bf84913
 DIST NVIDIA-FreeBSD-x86-387.22.tar.gz 64162390 BLAKE2B 6d78c7d03a8e9b489f166f1a2216a5fc1afccd5bd96808c27c64b4155316de6e3f88258f720eb2dbf9218ca4027d5a3f3c6a5d959ac7f5f9d5c8522263f5620d SHA512 3fb704aaa4080072e920dd19cd3492eb30e31ea2426e7f73939fd53072a92ace3dfbdbf582ca5c19bc27d1a52fbd6f9ab918c7f265e3c0a9c5e0905ad156548b
+DIST NVIDIA-FreeBSD-x86-387.34.tar.gz 64228643 BLAKE2B 80011df5d037cd0a2a6faccf6c990e6019cb85c906c1410d4dde033a8a945ecd46e80a1315e46dc05fa47003eb328c6b8e8e41e18dce60942e645c0e6b813717 SHA512 875648459a149d506b20eb7105e73086e1fb51dddfbd8b484b8cc4793682c088ba16b3d374b0e807738f7aa7489dd9eab2449f70bc9feefeec0bf3a88025b9ef
 DIST NVIDIA-FreeBSD-x86_64-304.137.tar.gz 36474676 BLAKE2B bd75e2916d34f76566d838406419991a860118830366f0297fa63baade3a99f637dae601d6bc6a051596222f2715297dffbf9b81ff5478b030741e6c8a09bc13 SHA512 f0ae7ccea417aceedf34bfb9c96fd79b31cbf74a8fa59d5199b0ad7b81b8a4aeb66cd4801a45cc37f836979cb4267aa69e08517beaa9b8cb9c66a477d02ef8de
 DIST NVIDIA-FreeBSD-x86_64-340.104.tar.gz 61176133 BLAKE2B 1fa2e1a7018b3d24b2a6b2be016aaa4c86196fba679d7032c9d0884900b4734ea1b6d54398bb7c792d5010496c86438eed134b8ac8c1aa235b336211fdc207e7 SHA512 d7535527fb9ffc820509da8d0b159c70627c72a7182c354448851a334fcd5b8835046d0e9812079af2fa92de0f3fce299a67e70ef50697a2a1f33b8d995e7f73
 DIST NVIDIA-FreeBSD-x86_64-375.82.tar.gz 58748290 BLAKE2B 629d65b71270d1c0d94c71e4215a72f0e49bb82e68ebb93fd4b14cd56a2031674458764f4c3e2e3dec7379ec0d5ed9212c8d09a64e4361f40352e52aa9b57de5 SHA512 5e2b42ff63e06219764db8187203ce1a2c3c8b478be31fc713ef396e8f8d46def9b2631d7989866740bd0c6a81bbf5d2ed083c14cfa7171c0d993553ca6f431c
@@ -16,6 +17,7 @@ DIST NVIDIA-FreeBSD-x86_64-384.90.tar.gz 62724143 BLAKE2B 738310e8571408c3dac327
 DIST NVIDIA-FreeBSD-x86_64-384.98.tar.gz 62848100 BLAKE2B fa0ec45007ea4609280638c44057b53646b5b0844ce339ba90745e2123ef1ae81252212fa7abe35a4a0454416b0b65a517057afa06ed4a1511e7452366dce8e9 SHA512 8a13fa29e2a56dd2583acb040e1063ae2a7286c53d55aad0ef723cac56d52a8cd28278cd94069c17e6fc37322bf684d1f90ac9e7b178dcaa8442cc985ab0b784
 DIST NVIDIA-FreeBSD-x86_64-387.12.tar.gz 63216500 BLAKE2B fbd0a79faea341c96e7dd84f122af5d9b54aeb26495ef39be59403ad47d79f07d55ee873b939d410f458d73f3ffe64e1586074dcc0f816e0ff0ccfa1fe5c0bc7 SHA512 d2bed412f8db842671d4092b8adc62cfbf2fc5f90560ece109a14965e2e09b73edb3bb06069a779de7988b038697655b9ede7cc4072bcdd3b35a34cf6bb145d5
 DIST NVIDIA-FreeBSD-x86_64-387.22.tar.gz 63326641 BLAKE2B 2d031738926a3f8691ae75b83d04e7965615c4de58736a0db2ee9c372b667cf8f841122bd37b48e6a64aa67b3892bf1f595267b1cb38019ce77ff4a2fe8d2f93 SHA512 ba4fe402f4dc7a5760af2f753cfcb7bf383d78df07c8ab7e53f22b6515c089f493abb4885adb23c119b4a8a9d5f83cbe248ef5877033a9a0c09c3ba59874f777
+DIST NVIDIA-FreeBSD-x86_64-387.34.tar.gz 63387097 BLAKE2B 53689ba098b4a4de08dca056618ea533c92d17137ec954dea0ae71e1b2c825c021979871e4ff82c820be0a78d3c365f282b760940ebe2caa1ca5bfd2453e178e SHA512 0a905ee72ee6f4e9c941e5dd1f7cddf96bfb20c6da32fd05599258e1bb154f68463d775ba8ff4f67f0d4b8e637e9ed9624fc9a4873a1f2621dc86732f0d6d70d
 DIST NVIDIA-Linux-armv7l-gnueabihf-375.82.run 26650801 BLAKE2B 31446667065c56b48f6a3e737afe29a4517459d3462138136bffe383bc6fe514d6e80b49c391c27edc96b8abc3da3dd4d6ee3f3dca17f3c9a0f1cdf0e72cf099 SHA512 28554f1c24fe63c9257c0de3e84e4e739a45bf1c20ec7a53bc2c1b69b4e2355675061491ef5b03f3ae489cf623e553cfa68442f5536f137837327036d1c53d63
 DIST NVIDIA-Linux-armv7l-gnueabihf-378.13.run 26514235 BLAKE2B 2b3c540704496a290be7ae3f1ff378487c75af2298c12488da8b3a1814446e5df02a1ed99afd8ee7fc459d950aab472155359eae0bf56ac83389711d70638152 SHA512 253786a821df85fa926ae842114321b3c70502f887ea7c2b6790dfe3836039ee5d390e6722ca8785904ec6487e465916923d3042dc6191b3b4522c3161b80cb0
 DIST NVIDIA-Linux-armv7l-gnueabihf-381.22.run 26815484 BLAKE2B e5f0241b07d1e54edea2025dd30061d1018c68cc2c7136c507eb894bbad5be3d0724494e2b9f33d1f8f60da4904999bbb964e6f2e78d045d7cd86bcd46b7f6d0 SHA512 934cda37c7aed26243b5b661122e1c060de5b4df890aaf2295b6650dddea37cb4f0e3f0bebddb00b5d687b66ab5e028a203195c4d4ad3379593babda42febe77
@@ -23,6 +25,7 @@ DIST NVIDIA-Linux-armv7l-gnueabihf-384.90.run 29044581 BLAKE2B 5c0e864d31bbdac40
 DIST NVIDIA-Linux-armv7l-gnueabihf-384.98.run 28845054 BLAKE2B 1c99d63598d8cf94683389d2337ed34e6aabe145e178d0ed0708553d75524ed4a101eea8e580c1fa26d957cb7024a68df0915cb0863fd7b3172da3ae399ab902 SHA512 c9446ec5eba9fa00e63f4952944041d280eb7095c8afd466b4cd1fe33b5e17341c574a86a2adab0dccc2fd3bf79ae32c5d72bf892e9d558dc56fb5cb80ec9c3c
 DIST NVIDIA-Linux-armv7l-gnueabihf-387.12.run 29236798 BLAKE2B 9fdd1aa6e290403017898a8ec8c1e982880ced248a3c5f1ff0a9bd467c73ac9aea8233b63a9de590e67cfa1e6e68ee79b2066266c7b65169c46a03b3f1c87f4b SHA512 819d2be341f6615d8ef3b3568a978f9e636723b319a7349f606aa8ca24021dc01d470a314a69efcde328d2f2b5546d35f2d7c633d216bb9137d8820e5f26c9dc
 DIST NVIDIA-Linux-armv7l-gnueabihf-387.22.run 29112014 BLAKE2B 6b03e0bdc5f40434e852eadeeb0a6e6afc5de35c3e7bb5c75f0f8d4449a9b0d25ff97ada36320d814d84c4cf2f724f5b3704c29caf3217728d4ed001e507a4c3 SHA512 e304105f90d9957589598eb8ee5abe9783c7e5c58f9c66aa8378047852b2a129f0ea8fab2ed319cfcfaade8ced87b02f02080b42d4089bbc41b5877763ab9b8f
+DIST NVIDIA-Linux-armv7l-gnueabihf-387.34.run 29406773 BLAKE2B af27fb1bfa8e432c83220f88c57219d572dfab2d3624c8702759a747f25ff962dba7c39028af5746e04c913c9a53dfbec8a46801bfa7e38df65a8823c4858cca SHA512 cb631dc3b851d84881dfcabee776c68a935853d03f21595acfea84a3efbc85276070f9d0958c0bcced1e66f42f25ecf3fd7d615c715274130ca24426da678c2e
 DIST NVIDIA-Linux-x86-304.137.run 41504115 BLAKE2B 5938d4df818947e5576172c0ee9bfa42a2fc49a7a7a2b14128cf3b967dfea6d4523901b33283284d450cfadc2c6d72a82a1533b27ebb4b542b6b1454fe8ae960 SHA512 021c5a88d50489aa0a1c7eac14259e23542b93578ae339995a2e38b786d06d239968c07933cab3fb78a922cffc7e213d6fa3fe07e34065a9c7f03e24f8729370
 DIST NVIDIA-Linux-x86-340.104.run 38823602 BLAKE2B 9cab2d224a289839148558e2bd8d4711c0925dfff8b7897be9f7fbd3eaae5549571fa01d265d7a0f8ed6dbc600e2a815d9dd622fd56528c04d80e7ec664cd551 SHA512 8dacd5345a5794e862f4106ab9e8e402defa7883dd176c243d019209b560fe955d7576a13936364c01c5a249f15df58208308c9378c12c3438784376e5fb806c
 DIST NVIDIA-Linux-x86-375.82.run 44633335 BLAKE2B 55392ba748108b47994bf272829a6476dfc23f7756e0c18d56c8e4d827968196ee70e521c2e6307c134ca0c85d59715db777583fb07c8e06ae7325d586a8117b SHA512 cbd6edd7490e0e5ef9dd2020c18eb5f75412993e06b9c4f1919f49a8ffdc36131a96d868ab51691fb5c4a661e826b000ec93363c9b168304f6498014e300bf24
@@ -32,6 +35,7 @@ DIST NVIDIA-Linux-x86-384.90.run 46518269 BLAKE2B 98f579483ae107f5b09b6c7e01a0d2
 DIST NVIDIA-Linux-x86-384.98.run 46588805 BLAKE2B bf49efd77e016b5a747a6de9f6462683f641e12102e86109179e4d6a04f2c56bcdc5693b971ea00a08cce43444bdbe9405aa70ed1b665f59bb8a5c3aa74d1a23 SHA512 e670ab9165d4f81a64c41cdcf0fb79ab7a73d97f4d566ca22ebe0959d8d088837fd767eb59d34b9359cf81e155486ab8d6ad8f09d5d93b3d5225a2ecd5558417
 DIST NVIDIA-Linux-x86-387.12.run 46889733 BLAKE2B e49306f7ea1ad1477eaed669261cc0bf1a7651093d9a9a88e94a28c2688ebd9e93498c6a6190606580a974ce0a2dc8fec7411766556c504c4b992186bd1364dc SHA512 aa88bed1bbde790779b270b331b6a5f6008259f46291076c67cb22bc79c23dc1bf29177a7ce040784d986988b768c0574cd2ad28d71a0759873b13a68fcaa7f8
 DIST NVIDIA-Linux-x86-387.22.run 47013877 BLAKE2B d4e12c9bb669880a86784d1b2339e497d405c0642d77d8ace346f867a51a920a89c1d611aacaab1e844c2bc1b3a734455e728b5bc450e7f977a7c20f478ccc0b SHA512 865c5024957ade2c8361b198cbc6600f469612fe0336e3a0bfaf56e4240999367f2066837c0b354af4821ab2531d05eddf3f2a0957eacc2eca0dd7cada4929b4
+DIST NVIDIA-Linux-x86-387.34.run 47797853 BLAKE2B 4ae211ee00e09fe385f24e05cfac3af28447ec18e7a7f53e7f310c210ec22f60094be087aae45d0ea99c90214a07d3c46ce6867984ac0ff6e56559693fcdf148 SHA512 ba9362123a75f85a0a5a9dcc95c06bcb350a8dff2db864db30a73172db44006fa39eee8e23cf959ab2012b61b922d1f0d7ab225329815737819f27d1be300b95
 DIST NVIDIA-Linux-x86_64-304.137.run 70087133 BLAKE2B 8db0ade7cf64231ae11e6fc55a16a68a2f7b11a8bb7debb49799fee96eba06a3062b97fe539b093727623a1ed1067282813de047c2aeb89d93bf35a97c71aac5 SHA512 d7fae1e486005ffa2f2bf7f14f901bf5156fc784407a9acfea584f49bdab92ff5f4d0fb66c4c5b2800a461fc06aebb7d760bcb59f69ce4f2cb4e03e11816b3e9
 DIST NVIDIA-Linux-x86_64-340.104.run 70085947 BLAKE2B 3bf77983f0b14770fead042c09771650045c2d5238b68ec06f3c70e1598727b6f75fb1e492e6ed147f9323bce58d6d8f5a840de0a30938d46b53bd571202edff SHA512 3f7609e7a736ba7d77f96ea5561789113878c5cb85b2970ad5ae63acdd09c0f5bc6449a5ed7d948f85d684870dcc2b479c4e0d7d750a47dfd716940de72dba3f
 DIST NVIDIA-Linux-x86_64-375.82.run 77461911 BLAKE2B e7f32bdf1672d98a1fe98c82d80a08dd6f63b3c859df4c60124977dae19520a21e4239ff7be6c272243d4af9416320b5e166d8f100979daa0d005ea2a44fc16d SHA512 6da63b807d6dd7cc8ac2b794d5c9ab8383e3c0ce6a47adc600941545509fb40b5f06344781afc895bd83f2780b2bce187994df5684db2890f50b41adfee8f910
@@ -41,6 +45,7 @@ DIST NVIDIA-Linux-x86_64-384.90.run 80833580 BLAKE2B 72e66a9ddbf35bb4dbdd42f0aae
 DIST NVIDIA-Linux-x86_64-384.98.run 80981256 BLAKE2B 8b38c661246f5e8e751dceb3d479aa3b6e807e9992adc9a0ba64a10914b8a932647d1b8eefa8da2578acd37cdd39f2979ca903db4663c371ddb56f794987cd77 SHA512 cd337d538d5a35f52b90a4437f44146f4982484c68171ee3570c2ff44b4bd96e0a65223a141770fbe3a7794e68832386a1d2bbaf66cff7f4cafba8462ef402b5
 DIST NVIDIA-Linux-x86_64-387.12.run 81766492 BLAKE2B ae7aa447ab52140defeeb4ee46f7a59fc0b0f8786f3a2a196e0e8b0d9bdc671c46032dfb1e334d1555e1e968b2122158f7fdc8e946aa7a085fee13c2c3524a72 SHA512 42cfc64529b84515140128a65439a4cbcf1912e9fd1fb2eaecb6e480a83b94f1123d14c41e439463b04babffe4010468aaa0d7511cc9c82ba23143356b1a51c3
 DIST NVIDIA-Linux-x86_64-387.22.run 81850060 BLAKE2B 960412c08322f8af6395147f506c0c1174f9b542e8cb08f15074fe524a47bb72967e8e61d358d1c486e7440320bfa375165c241a6d96d59248062c6de2e7cea4 SHA512 f695b8d3cb0707afd078f88aa5a211230cdceb4603571371d9c4322d540e43875a9c22e000d2734c9094f32752f71464b790c3c7e79778529d737487dc387f65
+DIST NVIDIA-Linux-x86_64-387.34.run 82784271 BLAKE2B b7140d5d6a693892df50b3ad2e20387673dec6b5ac609cc0300bdc4b4a93ca94849255699126e4d55e67f10e488bfe6008e987197ea239b1a1b643b4ae5c7808 SHA512 6742768f1258a028c9ba56ad1d72f27d7eea4b6bfd324ba29c7f057ab5819816bd728aeaf2a8058031dadcd4c51bc6d08f0e0e0e26c68ed57955e90d68ac5a4b
 DIST nvidia-settings-304.137.tar.bz2 1481361 BLAKE2B cf52a55a34eeb03a685a683487af6a198ba467dd8ba9983cc75624a37a226373cd931d98e8448b7b8ed430c54be2118c7b240ed2a9100b19bec5e832e2f6cdad SHA512 676d1f70c9a78ee234f5f1a283412430a386fa604de211afba02806a45906c5e246a002989b724d74752178d28c92a268de1c98d4c87876797d991253f16b0cc
 DIST nvidia-settings-340.104.tar.bz2 1549760 BLAKE2B 131532e16fac8c026e0c6030c12e42fcf7598b5e3d7b9286532387d90ad51eec666efd281b20c04abd08c8280c65dd907ee397c0acb4cf9c74e9d6c7be4dcdd6 SHA512 d4277ef0ce87ee7baf2c5155ca8d93e8db2483329053c541b6a605653f4a6883aad81ebdc45b4c60aa78b72bd4c6c88e5b1327cc4cd2f540fcee8dbd7edc3e53
 DIST nvidia-settings-375.82.tar.gz 2114647 BLAKE2B 26413fde8397e748fae362984039286c53a7fe104228452f3188b5e77b084ff4bf00131e77359ff5e92dfc325680c1f662950175cf806403d2a524ba86158f51 SHA512 7a374be56c8be52767d73a048029d9e55dc2abcf2f6a97eb4931544c927c85a1103a206be9e8d1ffcef36fec2caf2416f33699ad4d51e7dca17e4e844c37a595
@@ -50,3 +55,4 @@ DIST nvidia-settings-384.90.tar.gz 2137511 BLAKE2B ec1cb67cf4f1ce2e8129bfd482444
 DIST nvidia-settings-384.98.tar.gz 2136346 BLAKE2B 446944f619a832583d0db61b0d738d562c41d505f1a9025de381f88fa24b8104fc4b2b1d225ceda4b7b3c25e9d6fb4c8c14b6d896ad4ad59c02802b4df2c97ee SHA512 c4427241b15ffe5ecb0355d3e512c517d5ad1a5f5335c187dcde379074021a4990db9c048502e62a7ce9dda651b017e06d8117fb7c724bd3a08f6fbd10b49e26
 DIST nvidia-settings-387.12.tar.gz 1265918 BLAKE2B cdcd9b888496b570fdf1f8ea76c3541d48977db1eb8baca9b557842b4bd1c35dd011643cad3906f2ef3b4ad018e2f31bad2f6fcc284101eae30925a35736c561 SHA512 d21b93758300080c1c9de945b138402ac0e5a914a05d8691f8aa8bdce47d15b06b623ffdf1edd6794fa2698f56d4c02d049638d4de213c43fab4e91b26fc4de7
 DIST nvidia-settings-387.22.tar.gz 1267587 BLAKE2B 67eac64d4e4a489f9e513d92e780ca5eed53fea93d866b4d159ad0c3bd5a3a267925dfe3563d6e1ef3b41a948ac79c4271c469a7b9e869b3aaa98f5f8f9ab205 SHA512 dae157a54d0e48e94776db95927d27fca0370c7ffa67d79ce6fa372ce40bd766c081a65cd090a532c311a8f727beca6d0d9fcd526dc7791b2c73d4193854439b
+DIST nvidia-settings-387.34.tar.gz 1267616 BLAKE2B 62d2fd329417f54bf384918889603921065e0ef6d4fb691e914534a75ab0062a17d8f886c593cf772d29bb6b56ce30aaf7b1548191b2f9ad5fbee71770ed5308 SHA512 559c859c0740575ab93edce013587250b98d7d2cd55198b5103fe97423d31ed9f113d83c240c402404de88074c285a07e46342538610d3d5dade7bed59d60090

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-387.34-linker.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-387.34-linker.patch
new file mode 100644
index 00000000000..dbe1be431e3
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-387.34-linker.patch
@@ -0,0 +1,22 @@
+--- a/nvidia-settings-387.34/utils.mk
++++ b/nvidia-settings-387.34/utils.mk
+@@ -475,7 +475,7 @@
+ define READ_ONLY_OBJECT_FROM_FILE_RULE
+   $$(OUTPUTDIR)/$$(notdir $(1)).o: $(1)
+ 	$(at_if_quiet)cd $$(dir $(1)); \
+-	$$(call quiet_cmd_no_at,LD) -r -z noexecstack --format=binary \
++	$$(call quiet_cmd_no_at,NVLD) -r -z noexecstack --format=binary \
+ 	    $$(notdir $(1)) -o $$(OUTPUTDIR_ABSOLUTE)/$$(notdir $$@)
+ 	$$(call quiet_cmd,OBJCOPY) \
+ 	    --rename-section .data=.rodata,contents,alloc,load,data,readonly \
+--- a/nvidia-settings-387.34/src/libXNVCtrl/utils.mk
++++ b/nvidia-settings-387.34/src/libXNVCtrl/utils.mk
+@@ -475,7 +475,7 @@
+ define READ_ONLY_OBJECT_FROM_FILE_RULE
+   $$(OUTPUTDIR)/$$(notdir $(1)).o: $(1)
+ 	$(at_if_quiet)cd $$(dir $(1)); \
+-	$$(call quiet_cmd_no_at,LD) -r -z noexecstack --format=binary \
++	$$(call quiet_cmd_no_at,NVLD) -r -z noexecstack --format=binary \
+ 	    $$(notdir $(1)) -o $$(OUTPUTDIR_ABSOLUTE)/$$(notdir $$@)
+ 	$$(call quiet_cmd,OBJCOPY) \
+ 	    --rename-section .data=.rodata,contents,alloc,load,data,readonly \

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-387.34.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-387.34.ebuild
new file mode 100644
index 00000000000..5974954b8d6
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-387.34.ebuild
@@ -0,0 +1,580 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
+	portability toolchain-funcs unpacker user udev
+
+NV_URI="http://http.download.nvidia.com/XFree86/"
+X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
+ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
+X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
+AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
+SRC_URI="
+	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
+	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
+	arm? ( ${NV_URI}Linux-32bit-ARM/${PV}/${ARM_NV_PACKAGE}.run )
+	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
+	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
+	tools? (
+		https://github.com/NVIDIA/nvidia-settings/archive/${PV}.tar.gz -> nvidia-settings-${PV}.tar.gz
+	)
+"
+
+LICENSE="GPL-2 NVIDIA-r2"
+SLOT="0/${PV%.*}"
+KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
+RESTRICT="bindist mirror"
+EMULTILIB_PKG="true"
+
+IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
+REQUIRED_USE="
+	tools? ( X )
+	static-libs? ( tools )
+"
+
+COMMON="
+	app-eselect/eselect-opencl
+	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		dev-libs/jansson
+		gtk3? (
+			x11-libs/gtk+:3
+		)
+		x11-libs/cairo
+		x11-libs/gdk-pixbuf[X]
+		x11-libs/gtk+:2
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXrandr
+		x11-libs/libXv
+		x11-libs/libXxf86vm
+		x11-libs/pango[X]
+	)
+	X? (
+		>=app-eselect/eselect-opengl-1.0.9
+		app-misc/pax-utils
+	)
+"
+DEPEND="
+	${COMMON}
+	kernel_linux? ( virtual/linux-sources )
+	tools? ( sys-apps/dbus )
+"
+RDEPEND="
+	${COMMON}
+	acpi? ( sys-power/acpid )
+	tools? ( !media-video/nvidia-settings )
+	wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
+	X? (
+		<x11-base/xorg-server-1.19.99:=
+		>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
+		>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
+		>=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
+		sys-libs/zlib[${MULTILIB_USEDEP}]
+	)
+"
+QA_PREBUILT="opt/* usr/lib*"
+S=${WORKDIR}/
+
+nvidia_drivers_versions_check() {
+	if use amd64 && has_multilib_profile && \
+		[ "${DEFAULT_ABI}" != "amd64" ]; then
+		eerror "This ebuild doesn't currently support changing your default ABI"
+		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
+	fi
+
+	if use kernel_linux && kernel_is ge 4 14; then
+		ewarn "Gentoo supports kernels which are supported by NVIDIA"
+		ewarn "which are limited to the following kernels:"
+		ewarn "<sys-kernel/gentoo-sources-4.14"
+		ewarn "<sys-kernel/vanilla-sources-4.14"
+		ewarn ""
+		ewarn "You are free to utilize epatch_user to provide whatever"
+		ewarn "support you feel is appropriate, but will not receive"
+		ewarn "support as a result of those changes."
+		ewarn ""
+		ewarn "Do not file a bug report about this."
+		ewarn ""
+	fi
+
+	# Since Nvidia ships many different series of drivers, we need to give the user
+	# some kind of guidance as to what version they should install. This tries
+	# to point the user in the right direction but can't be perfect. check
+	# nvidia-driver.eclass
+	nvidia-driver-check-warning
+
+	# Kernel features/options to check for
+	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
+	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
+
+	# Now do the above checks
+	use kernel_linux && check_extra_config
+}
+
+pkg_pretend() {
+	nvidia_drivers_versions_check
+}
+
+pkg_setup() {
+	nvidia_drivers_versions_check
+
+	# try to turn off distcc and ccache for people that have a problem with it
+	export DISTCC_DISABLE=1
+	export CCACHE_DISABLE=1
+
+	if use driver && use kernel_linux; then
+		MODULE_NAMES="nvidia(video:${S}/kernel)"
+		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
+		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
+
+		# This needs to run after MODULE_NAMES (so that the eclass checks
+		# whether the kernel supports loadable modules) but before BUILD_PARAMS
+		# is set (so that KV_DIR is populated).
+		linux-mod_pkg_setup
+
+		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
+		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
+
+		# linux-mod_src_compile calls set_arch_to_kernel, which
+		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
+		# expects x86_64 or i386 and then converts it to x86
+		# later on in the build process
+		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
+	fi
+
+	if use kernel_linux && kernel_is lt 2 6 9; then
+		eerror "You must build this against 2.6.9 or higher kernels."
+	fi
+
+	# set variables to where files are in the package structure
+	if use kernel_FreeBSD; then
+		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
+		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
+		NV_DOC="${S}/doc"
+		NV_OBJ="${S}/obj"
+		NV_SRC="${S}/src"
+		NV_MAN="${S}/x11/man"
+		NV_X11="${S}/obj"
+		NV_SOVER=1
+	elif use kernel_linux; then
+		NV_DOC="${S}"
+		NV_OBJ="${S}"
+		NV_SRC="${S}/kernel"
+		NV_MAN="${S}"
+		NV_X11="${S}"
+		NV_SOVER=${PV}
+	else
+		die "Could not determine proper NVIDIA package"
+	fi
+}
+
+src_prepare() {
+	if use pax_kernel; then
+		ewarn "Using PAX patches is not supported. You will be asked to"
+		ewarn "use a standard kernel should you have issues. Should you"
+		ewarn "need support with these patches, contact the PaX team."
+		eapply "${FILESDIR}"/${PN}-375.20-pax.patch
+	fi
+
+	local man_file
+	for man_file in "${NV_MAN}"/*1.gz; do
+		gunzip $man_file || die
+	done
+
+	use tools && eapply "${FILESDIR}"/${P}-linker.patch
+
+	default
+
+	if ! [ -f nvidia_icd.json ]; then
+		cp nvidia_icd.json.template nvidia_icd.json || die
+		sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
+	fi
+}
+
+src_compile() {
+	# This is already the default on Linux, as there's no toplevel Makefile, but
+	# on FreeBSD there's one and triggers the kernel module build, as we install
+	# it by itself, pass this.
+
+	cd "${NV_SRC}"
+	if use kernel_FreeBSD; then
+		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
+			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
+	elif use driver && use kernel_linux; then
+		MAKEOPTS=-j1 linux-mod_src_compile
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			AR="$(tc-getAR)" \
+			CC="$(tc-getCC)" \
+			DO_STRIP= \
+			LD="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NVLD="$(tc-getLD)" \
+			NV_VERBOSE=1 \
+			RANLIB="$(tc-getRANLIB)" \
+			build-xnvctrl
+
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			CC="$(tc-getCC)" \
+			DO_STRIP= \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LD="$(tc-getCC)" \
+			LIBDIR="$(get_libdir)" \
+			NVLD="$(tc-getLD)" \
+			NVML_ENABLED=0 \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1
+	fi
+}
+
+# Install nvidia library:
+# the first parameter is the library to install
+# the second parameter is the provided soversion
+# the third parameter is the target directory if it is not /usr/lib
+donvidia() {
+	# Full path to library
+	nv_LIB="${1}"
+
+	# SOVER to use
+	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
+
+	# Where to install
+	nv_DEST="${2}"
+
+	# Get just the library name
+	nv_LIBNAME=$(basename "${nv_LIB}")
+
+	if [[ "${nv_DEST}" ]]; then
+		exeinto ${nv_DEST}
+		action="doexe"
+	else
+		nv_DEST="/usr/$(get_libdir)"
+		action="dolib.so"
+	fi
+
+	# Install the library
+	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
+
+	# If the library has a SONAME and SONAME does not match the library name,
+	# then we need to create a symlink
+	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
+		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
+			|| die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
+	fi
+
+	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
+		|| die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
+}
+
+src_install() {
+	if use driver && use kernel_linux; then
+		linux-mod_src_install
+
+		# Add the aliases
+		# This file is tweaked with the appropriate video group in
+		# pkg_preinst, see bug #491414
+		insinto /etc/modprobe.d
+		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
+		doins "${FILESDIR}"/nvidia-rmmod.conf
+
+		# Ensures that our device nodes are created when not using X
+		exeinto "$(get_udevdir)"
+		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
+		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
+	elif use kernel_FreeBSD; then
+		if use x86-fbsd; then
+			insinto /boot/modules
+			doins "${S}/src/nvidia.kld"
+		fi
+
+		exeinto /boot/modules
+		doexe "${S}/src/nvidia.ko"
+	fi
+
+	# NVIDIA kernel <-> userspace driver config lib
+	donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
+
+	# NVIDIA framebuffer capture library
+	donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
+
+	# NVIDIA video encode/decode <-> CUDA
+	if use kernel_linux; then
+		donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
+		donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
+	fi
+
+	if use X; then
+		# Xorg DDX driver
+		insinto /usr/$(get_libdir)/xorg/modules/drivers
+		doins ${NV_X11}/nvidia_drv.so
+
+		# Xorg GLX driver
+		donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
+			/usr/$(get_libdir)/opengl/nvidia/extensions
+
+		# Xorg nvidia.conf
+		if has_version '>=x11-base/xorg-server-1.16'; then
+			insinto /usr/share/X11/xorg.conf.d
+			newins {,50-}nvidia-drm-outputclass.conf
+		fi
+
+		insinto /usr/share/glvnd/egl_vendor.d
+		doins ${NV_X11}/10_nvidia.json
+	fi
+
+	if use wayland; then
+		insinto /usr/share/egl/egl_external_platform.d
+		doins ${NV_X11}/10_nvidia_wayland.json
+	fi
+
+	# OpenCL ICD for NVIDIA
+	if use kernel_linux; then
+		insinto /etc/OpenCL/vendors
+		doins ${NV_OBJ}/nvidia.icd
+	fi
+
+	# Documentation
+	if use kernel_FreeBSD; then
+		dodoc "${NV_DOC}/README"
+		use X && doman "${NV_MAN}"/nvidia-xconfig.1
+		use tools && doman "${NV_MAN}"/nvidia-settings.1
+	else
+		# Docs
+		newdoc "${NV_DOC}/README.txt" README
+		dodoc "${NV_DOC}/NVIDIA_Changelog"
+		doman "${NV_MAN}"/nvidia-smi.1
+		use X && doman "${NV_MAN}"/nvidia-xconfig.1
+		use tools && doman "${NV_MAN}"/nvidia-settings.1
+		doman "${NV_MAN}"/nvidia-cuda-mps-control.1
+	fi
+
+	docinto html
+	dodoc -r ${NV_DOC}/html/*
+
+	# Helper Apps
+	exeinto /opt/bin/
+
+	if use X; then
+		doexe ${NV_OBJ}/nvidia-xconfig
+
+		insinto /etc/vulkan/icd.d
+		doins nvidia_icd.json
+	fi
+
+	if use kernel_linux; then
+		doexe ${NV_OBJ}/nvidia-cuda-mps-control
+		doexe ${NV_OBJ}/nvidia-cuda-mps-server
+		doexe ${NV_OBJ}/nvidia-debugdump
+		doexe ${NV_OBJ}/nvidia-persistenced
+		doexe ${NV_OBJ}/nvidia-smi
+
+		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
+		doexe ${NV_OBJ}/nvidia-modprobe
+		fowners root:video /opt/bin/nvidia-modprobe
+		fperms 4710 /opt/bin/nvidia-modprobe
+		dosym /{opt,usr}/bin/nvidia-modprobe
+
+		doman nvidia-cuda-mps-control.1
+		doman nvidia-modprobe.1
+		doman nvidia-persistenced.1
+		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
+		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
+		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/ \
+			DESTDIR="${D}" \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LIBDIR="${D}/usr/$(get_libdir)" \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			PREFIX=/usr \
+			DO_STRIP= \
+			install
+
+		if use static-libs; then
+			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
+
+			insinto /usr/include/NVCtrl
+			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
+		fi
+
+		insinto /usr/share/nvidia/
+		doins nvidia-application-profiles-${PV}-key-documentation
+
+		insinto /etc/nvidia
+		newins \
+			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
+
+		# There is no icon in the FreeBSD tarball.
+		use kernel_FreeBSD || \
+			doicon ${NV_OBJ}/nvidia-settings.png
+
+		domenu "${FILESDIR}"/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+	fi
+
+	dobin ${NV_OBJ}/nvidia-bug-report.sh
+
+	if has_multilib_profile && use multilib; then
+		local OABI=${ABI}
+		for ABI in $(get_install_abis); do
+			src_install-libs
+		done
+		ABI=${OABI}
+		unset OABI
+	else
+		src_install-libs
+	fi
+
+	is_final_abi || die "failed to iterate through all ABIs"
+
+	readme.gentoo_create_doc
+}
+
+src_install-libs() {
+	local inslibdir=$(get_libdir)
+	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
+	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
+	local nv_libdir="${NV_OBJ}"
+
+	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
+		nv_libdir="${NV_OBJ}"/32
+	fi
+
+	if use X; then
+		NV_GLX_LIBRARIES=(
+			"libEGL.so.$(usex compat ${NV_SOVER} 1) ${GL_ROOT}"
+			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
+			"libGLESv1_CM.so.1 ${GL_ROOT}"
+			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLESv2.so.2 ${GL_ROOT}"
+			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLX.so.0 ${GL_ROOT}"
+			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLdispatch.so.0 ${GL_ROOT}"
+			"libOpenCL.so.1.0.0 ${CL_ROOT}"
+			"libOpenGL.so.0 ${GL_ROOT}"
+			"libcuda.so.${NV_SOVER}"
+			"libnvcuvid.so.${NV_SOVER}"
+			"libnvidia-compiler.so.${NV_SOVER}"
+			"libnvidia-eglcore.so.${NV_SOVER}"
+			"libnvidia-encode.so.${NV_SOVER}"
+			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
+			"libnvidia-fbc.so.${NV_SOVER}"
+			"libnvidia-glcore.so.${NV_SOVER}"
+			"libnvidia-glsi.so.${NV_SOVER}"
+			"libnvidia-ifr.so.${NV_SOVER}"
+			"libnvidia-opencl.so.${NV_SOVER}"
+			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
+			"libvdpau_nvidia.so.${NV_SOVER}"
+		)
+
+		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-egl-wayland.so.1.0.2"
+			)
+		fi
+
+		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-wfb.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_FreeBSD; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-ml.so.${NV_SOVER}"
+				"tls/libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
+			donvidia "${nv_libdir}"/${NV_LIB}
+		done
+	fi
+}
+
+pkg_preinst() {
+	if use driver && use kernel_linux; then
+		linux-mod_pkg_preinst
+
+		local videogroup="$(egetent group video | cut -d ':' -f 3)"
+		if [ -z "${videogroup}" ]; then
+			eerror "Failed to determine the video group gid"
+			die "Failed to determine the video group gid"
+		else
+			sed -i \
+				-e "s:PACKAGE:${PF}:g" \
+				-e "s:VIDEOGID:${videogroup}:" \
+				"${D}"/etc/modprobe.d/nvidia.conf || die
+		fi
+	fi
+
+	# Clean the dynamic libGL stuff's home to ensure
+	# we dont have stale libs floating around
+	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
+		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
+	fi
+	# Make sure we nuke the old nvidia-glx's env.d file
+	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
+		rm -f "${ROOT}"/etc/env.d/09nvidia
+	fi
+}
+
+pkg_postinst() {
+	use driver && use kernel_linux && linux-mod_pkg_postinst
+
+	# Switch to the nvidia implementation
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
+	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
+
+	readme.gentoo_print_elog
+
+	if ! use X; then
+		elog "You have elected to not install the X.org driver. Along with"
+		elog "this the OpenGL libraries and VDPAU libraries were not"
+		elog "installed. Additionally, once the driver is loaded your card"
+		elog "and fan will run at max speed which may not be desirable."
+		elog "Use the 'nvidia-smi' init script to have your card and fan"
+		elog "speed scale appropriately."
+		elog
+	fi
+	if ! use tools; then
+		elog "USE=tools controls whether the nvidia-settings application"
+		elog "is installed. If you would like to use it, enable that"
+		elog "flag and re-emerge this ebuild. Optionally you can install"
+		elog "media-video/nvidia-settings"
+		elog
+	fi
+}
+
+pkg_prerm() {
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}
+
+pkg_postrm() {
+	use driver && use kernel_linux && linux-mod_pkg_postrm
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2017-11-27 23:31 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2017-11-27 23:31 UTC (permalink / raw
  To: gentoo-commits

commit:     35e46711029df79e58aeb4a8dafc264ebb0e0385
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 27 23:31:45 2017 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Mon Nov 27 23:31:45 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=35e46711

x11-drivers/nvidia-drivers: Old.

Package-Manager: Portage-2.3.16, Repoman-2.3.6

 x11-drivers/nvidia-drivers/Manifest                |   6 -
 .../files/nvidia-drivers-387.12-linker.patch       |  22 -
 .../nvidia-drivers/nvidia-drivers-387.12.ebuild    | 580 ---------------------
 3 files changed, 608 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index cb5c848ccec..0f512d575ea 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -5,7 +5,6 @@ DIST NVIDIA-FreeBSD-x86-378.13.tar.gz 59610253 BLAKE2B 723b392b869dd5cc9244cfe9d
 DIST NVIDIA-FreeBSD-x86-381.22.tar.gz 60112159 BLAKE2B 4a61e9a09218eb7d259f82d0a43fee313754004c8716e921b9a83a3e87fff9a291450bef5d7304b2a7ddf5750a830fb7c5cc9dab890dac4a714354265ca25034 SHA512 ffe5882051fad081854e7b7fefe86a4da55b263b2ca217664991a7e0d84ff2f22d62a37c89afd578f3c99c12be897e5db7a3d1c71c747df655af8e220eb983fa
 DIST NVIDIA-FreeBSD-x86-384.90.tar.gz 63539967 BLAKE2B 7f9d14de9e79c59aaf27bc0889094493610f49cd8934b0605e7cd350ebe097eb92d841e19f78dafac73739812b83e29d0bb2b0178dc8d0300c79bb592bf70262 SHA512 16e333a846f47618f6e732d89bd92fda628c02b28784226a879f23147df764c540c96d2fe517dea465a7d07022df676a009aec22bb09c4439b9ea8b0351c6996
 DIST NVIDIA-FreeBSD-x86-384.98.tar.gz 63653102 BLAKE2B 003f293136a5a37a381ebe573ddcf05613f93f774f962d6aefc60f785f63030f1eb71dd96c4fc3507c6e9f9508a09dca297dab8939517abcf630706722cea8a7 SHA512 95b6709f994a3b8e5984d8b0eb745016c6769b2c41072672318b9e0643d1f7d64eff376e702e1768013dfae5e8976475b13573b258e13236d991e9514e58a7f5
-DIST NVIDIA-FreeBSD-x86-387.12.tar.gz 64054985 BLAKE2B c804bad5757a80ce443a2e3ab8d6316908a5287b7daf1cb0f50a379e7fa8e4efedd2af00f2c2617072e758f24e0f1dbc68cc92992b3424d6178149d14c98bb9e SHA512 fa92275e4e1795fd91515ca4cd20cb21dfcb273043f115795fdf82f6c39d2ead80848e8b44b711be6a769de2b93bc91f857084dab8f1d1f4cad5245c9bf84913
 DIST NVIDIA-FreeBSD-x86-387.22.tar.gz 64162390 BLAKE2B 6d78c7d03a8e9b489f166f1a2216a5fc1afccd5bd96808c27c64b4155316de6e3f88258f720eb2dbf9218ca4027d5a3f3c6a5d959ac7f5f9d5c8522263f5620d SHA512 3fb704aaa4080072e920dd19cd3492eb30e31ea2426e7f73939fd53072a92ace3dfbdbf582ca5c19bc27d1a52fbd6f9ab918c7f265e3c0a9c5e0905ad156548b
 DIST NVIDIA-FreeBSD-x86-387.34.tar.gz 64228643 BLAKE2B 80011df5d037cd0a2a6faccf6c990e6019cb85c906c1410d4dde033a8a945ecd46e80a1315e46dc05fa47003eb328c6b8e8e41e18dce60942e645c0e6b813717 SHA512 875648459a149d506b20eb7105e73086e1fb51dddfbd8b484b8cc4793682c088ba16b3d374b0e807738f7aa7489dd9eab2449f70bc9feefeec0bf3a88025b9ef
 DIST NVIDIA-FreeBSD-x86_64-304.137.tar.gz 36474676 BLAKE2B bd75e2916d34f76566d838406419991a860118830366f0297fa63baade3a99f637dae601d6bc6a051596222f2715297dffbf9b81ff5478b030741e6c8a09bc13 SHA512 f0ae7ccea417aceedf34bfb9c96fd79b31cbf74a8fa59d5199b0ad7b81b8a4aeb66cd4801a45cc37f836979cb4267aa69e08517beaa9b8cb9c66a477d02ef8de
@@ -15,7 +14,6 @@ DIST NVIDIA-FreeBSD-x86_64-378.13.tar.gz 58779963 BLAKE2B d0a165dab740b25e1d9705
 DIST NVIDIA-FreeBSD-x86_64-381.22.tar.gz 59284579 BLAKE2B 45703b5658c586fe2fbfaf84a54a591a7d25e836195c47c43375b74a730c1a7aa4dd7bd17d13e7194b37d51da0f11540da1bee564e1c27351ecc6915e65012d5 SHA512 51c5a87fabe87ec7f2589ed97d97447b127ecb5fe501c60bc7c9fce74141c127f4f9bb820d2a9b34fb56db436476d0cb18a73845ab4e7ec2315d4975c8ce4e32
 DIST NVIDIA-FreeBSD-x86_64-384.90.tar.gz 62724143 BLAKE2B 738310e8571408c3dac327650eaa756499ae5e501fb3691a8dd8bea38587cc786eff3afa6b465dc23074f26d05a4bb2c6f50f69cb3f87eb44dd9cd4319aa43b0 SHA512 0077ba72301b65fb898fa180d77ff6abcb2a78e62c3528e3afbdfb679248f34e6a00faefeec713e7cc4a7daa7c15e6039090e5dbb047d6a9f2cff38c2e8afdb9
 DIST NVIDIA-FreeBSD-x86_64-384.98.tar.gz 62848100 BLAKE2B fa0ec45007ea4609280638c44057b53646b5b0844ce339ba90745e2123ef1ae81252212fa7abe35a4a0454416b0b65a517057afa06ed4a1511e7452366dce8e9 SHA512 8a13fa29e2a56dd2583acb040e1063ae2a7286c53d55aad0ef723cac56d52a8cd28278cd94069c17e6fc37322bf684d1f90ac9e7b178dcaa8442cc985ab0b784
-DIST NVIDIA-FreeBSD-x86_64-387.12.tar.gz 63216500 BLAKE2B fbd0a79faea341c96e7dd84f122af5d9b54aeb26495ef39be59403ad47d79f07d55ee873b939d410f458d73f3ffe64e1586074dcc0f816e0ff0ccfa1fe5c0bc7 SHA512 d2bed412f8db842671d4092b8adc62cfbf2fc5f90560ece109a14965e2e09b73edb3bb06069a779de7988b038697655b9ede7cc4072bcdd3b35a34cf6bb145d5
 DIST NVIDIA-FreeBSD-x86_64-387.22.tar.gz 63326641 BLAKE2B 2d031738926a3f8691ae75b83d04e7965615c4de58736a0db2ee9c372b667cf8f841122bd37b48e6a64aa67b3892bf1f595267b1cb38019ce77ff4a2fe8d2f93 SHA512 ba4fe402f4dc7a5760af2f753cfcb7bf383d78df07c8ab7e53f22b6515c089f493abb4885adb23c119b4a8a9d5f83cbe248ef5877033a9a0c09c3ba59874f777
 DIST NVIDIA-FreeBSD-x86_64-387.34.tar.gz 63387097 BLAKE2B 53689ba098b4a4de08dca056618ea533c92d17137ec954dea0ae71e1b2c825c021979871e4ff82c820be0a78d3c365f282b760940ebe2caa1ca5bfd2453e178e SHA512 0a905ee72ee6f4e9c941e5dd1f7cddf96bfb20c6da32fd05599258e1bb154f68463d775ba8ff4f67f0d4b8e637e9ed9624fc9a4873a1f2621dc86732f0d6d70d
 DIST NVIDIA-Linux-armv7l-gnueabihf-375.82.run 26650801 BLAKE2B 31446667065c56b48f6a3e737afe29a4517459d3462138136bffe383bc6fe514d6e80b49c391c27edc96b8abc3da3dd4d6ee3f3dca17f3c9a0f1cdf0e72cf099 SHA512 28554f1c24fe63c9257c0de3e84e4e739a45bf1c20ec7a53bc2c1b69b4e2355675061491ef5b03f3ae489cf623e553cfa68442f5536f137837327036d1c53d63
@@ -23,7 +21,6 @@ DIST NVIDIA-Linux-armv7l-gnueabihf-378.13.run 26514235 BLAKE2B 2b3c540704496a290
 DIST NVIDIA-Linux-armv7l-gnueabihf-381.22.run 26815484 BLAKE2B e5f0241b07d1e54edea2025dd30061d1018c68cc2c7136c507eb894bbad5be3d0724494e2b9f33d1f8f60da4904999bbb964e6f2e78d045d7cd86bcd46b7f6d0 SHA512 934cda37c7aed26243b5b661122e1c060de5b4df890aaf2295b6650dddea37cb4f0e3f0bebddb00b5d687b66ab5e028a203195c4d4ad3379593babda42febe77
 DIST NVIDIA-Linux-armv7l-gnueabihf-384.90.run 29044581 BLAKE2B 5c0e864d31bbdac404b1a2fdd159d38f5b1e6c22b4b2cd0e6d722562815c557e88cd562713448af200b49d40214b041ead6d77dd7e229f068029add97f2f949c SHA512 4d6f23c1ce4ce26520aa49955959833d630a398df0826cf9b0c1109103fc3c4da1d7c19d1cc826116562bcbfca933f291b300bea377e91f72f15c97e0c6d68f0
 DIST NVIDIA-Linux-armv7l-gnueabihf-384.98.run 28845054 BLAKE2B 1c99d63598d8cf94683389d2337ed34e6aabe145e178d0ed0708553d75524ed4a101eea8e580c1fa26d957cb7024a68df0915cb0863fd7b3172da3ae399ab902 SHA512 c9446ec5eba9fa00e63f4952944041d280eb7095c8afd466b4cd1fe33b5e17341c574a86a2adab0dccc2fd3bf79ae32c5d72bf892e9d558dc56fb5cb80ec9c3c
-DIST NVIDIA-Linux-armv7l-gnueabihf-387.12.run 29236798 BLAKE2B 9fdd1aa6e290403017898a8ec8c1e982880ced248a3c5f1ff0a9bd467c73ac9aea8233b63a9de590e67cfa1e6e68ee79b2066266c7b65169c46a03b3f1c87f4b SHA512 819d2be341f6615d8ef3b3568a978f9e636723b319a7349f606aa8ca24021dc01d470a314a69efcde328d2f2b5546d35f2d7c633d216bb9137d8820e5f26c9dc
 DIST NVIDIA-Linux-armv7l-gnueabihf-387.22.run 29112014 BLAKE2B 6b03e0bdc5f40434e852eadeeb0a6e6afc5de35c3e7bb5c75f0f8d4449a9b0d25ff97ada36320d814d84c4cf2f724f5b3704c29caf3217728d4ed001e507a4c3 SHA512 e304105f90d9957589598eb8ee5abe9783c7e5c58f9c66aa8378047852b2a129f0ea8fab2ed319cfcfaade8ced87b02f02080b42d4089bbc41b5877763ab9b8f
 DIST NVIDIA-Linux-armv7l-gnueabihf-387.34.run 29406773 BLAKE2B af27fb1bfa8e432c83220f88c57219d572dfab2d3624c8702759a747f25ff962dba7c39028af5746e04c913c9a53dfbec8a46801bfa7e38df65a8823c4858cca SHA512 cb631dc3b851d84881dfcabee776c68a935853d03f21595acfea84a3efbc85276070f9d0958c0bcced1e66f42f25ecf3fd7d615c715274130ca24426da678c2e
 DIST NVIDIA-Linux-x86-304.137.run 41504115 BLAKE2B 5938d4df818947e5576172c0ee9bfa42a2fc49a7a7a2b14128cf3b967dfea6d4523901b33283284d450cfadc2c6d72a82a1533b27ebb4b542b6b1454fe8ae960 SHA512 021c5a88d50489aa0a1c7eac14259e23542b93578ae339995a2e38b786d06d239968c07933cab3fb78a922cffc7e213d6fa3fe07e34065a9c7f03e24f8729370
@@ -33,7 +30,6 @@ DIST NVIDIA-Linux-x86-378.13.run 44397547 BLAKE2B 5b45bdceba75e214028b9f59a36554
 DIST NVIDIA-Linux-x86-381.22.run 42931990 BLAKE2B cf1ae154854860557bf3e4a50216f1373ff66a45535e7beec67392b1cd1d40a02d758fa3e1cfa0462145b912430b0d1a3b6de3e6d6ede8aa1f484ea0ab46f816 SHA512 15723bfa25b0f39224ad5098c784a292abe4bf1daafaeb2f1df910bbab466e666b848b12e50b0bdd45f83e2d81957425a63501550b3dc5eb8fe3e576a8a10d22
 DIST NVIDIA-Linux-x86-384.90.run 46518269 BLAKE2B 98f579483ae107f5b09b6c7e01a0d239403db3b10eead82528d67cd4b604bcefc46b19434b3c082871d6ab27f81653583aceb335a54650f603e3b91fe6a79bc0 SHA512 4376be6ade4380f8416a7d07a77b2e71bf07f62488c6887d2023973ca57574a0c6d294327159d4a0cf12400e4156b48fa989e3a80615cefd25d918e6d558784f
 DIST NVIDIA-Linux-x86-384.98.run 46588805 BLAKE2B bf49efd77e016b5a747a6de9f6462683f641e12102e86109179e4d6a04f2c56bcdc5693b971ea00a08cce43444bdbe9405aa70ed1b665f59bb8a5c3aa74d1a23 SHA512 e670ab9165d4f81a64c41cdcf0fb79ab7a73d97f4d566ca22ebe0959d8d088837fd767eb59d34b9359cf81e155486ab8d6ad8f09d5d93b3d5225a2ecd5558417
-DIST NVIDIA-Linux-x86-387.12.run 46889733 BLAKE2B e49306f7ea1ad1477eaed669261cc0bf1a7651093d9a9a88e94a28c2688ebd9e93498c6a6190606580a974ce0a2dc8fec7411766556c504c4b992186bd1364dc SHA512 aa88bed1bbde790779b270b331b6a5f6008259f46291076c67cb22bc79c23dc1bf29177a7ce040784d986988b768c0574cd2ad28d71a0759873b13a68fcaa7f8
 DIST NVIDIA-Linux-x86-387.22.run 47013877 BLAKE2B d4e12c9bb669880a86784d1b2339e497d405c0642d77d8ace346f867a51a920a89c1d611aacaab1e844c2bc1b3a734455e728b5bc450e7f977a7c20f478ccc0b SHA512 865c5024957ade2c8361b198cbc6600f469612fe0336e3a0bfaf56e4240999367f2066837c0b354af4821ab2531d05eddf3f2a0957eacc2eca0dd7cada4929b4
 DIST NVIDIA-Linux-x86-387.34.run 47797853 BLAKE2B 4ae211ee00e09fe385f24e05cfac3af28447ec18e7a7f53e7f310c210ec22f60094be087aae45d0ea99c90214a07d3c46ce6867984ac0ff6e56559693fcdf148 SHA512 ba9362123a75f85a0a5a9dcc95c06bcb350a8dff2db864db30a73172db44006fa39eee8e23cf959ab2012b61b922d1f0d7ab225329815737819f27d1be300b95
 DIST NVIDIA-Linux-x86_64-304.137.run 70087133 BLAKE2B 8db0ade7cf64231ae11e6fc55a16a68a2f7b11a8bb7debb49799fee96eba06a3062b97fe539b093727623a1ed1067282813de047c2aeb89d93bf35a97c71aac5 SHA512 d7fae1e486005ffa2f2bf7f14f901bf5156fc784407a9acfea584f49bdab92ff5f4d0fb66c4c5b2800a461fc06aebb7d760bcb59f69ce4f2cb4e03e11816b3e9
@@ -43,7 +39,6 @@ DIST NVIDIA-Linux-x86_64-378.13.run 76239469 BLAKE2B 0f2be330645f8d9d2828fa6d159
 DIST NVIDIA-Linux-x86_64-381.22.run 76581130 BLAKE2B fdb5912a775b56edf7dd784b640997fe683d0a32d57db6079dc5466a1a8dc1354cd31ff86aa1e993e0a33163e4c18f6a7aa990e334448ad069db3a5ffc4f1ffa SHA512 669a3dd0896d68ba8eef4689b01971b92ec1c54e6cf2a9ff8d3f281ae9f2fe402f079e76109b65e698d76798bcc7a9bb43da9d128fec59ac1fafafd1c4a1e42c
 DIST NVIDIA-Linux-x86_64-384.90.run 80833580 BLAKE2B 72e66a9ddbf35bb4dbdd42f0aae951fe76f6193759100d93740f89751878f26c0b82cc72dd7af16d927e3f3b9429a632808b46642fc0c726ef8e38efe00666ff SHA512 f47d3bad9229c837c37a75ed5b189f688c8d05230762f58494f0e744610ea19046cae4cd61d0f3b63d4e1cde50590497f600ef36a48f65f489e4c2067a05d0d3
 DIST NVIDIA-Linux-x86_64-384.98.run 80981256 BLAKE2B 8b38c661246f5e8e751dceb3d479aa3b6e807e9992adc9a0ba64a10914b8a932647d1b8eefa8da2578acd37cdd39f2979ca903db4663c371ddb56f794987cd77 SHA512 cd337d538d5a35f52b90a4437f44146f4982484c68171ee3570c2ff44b4bd96e0a65223a141770fbe3a7794e68832386a1d2bbaf66cff7f4cafba8462ef402b5
-DIST NVIDIA-Linux-x86_64-387.12.run 81766492 BLAKE2B ae7aa447ab52140defeeb4ee46f7a59fc0b0f8786f3a2a196e0e8b0d9bdc671c46032dfb1e334d1555e1e968b2122158f7fdc8e946aa7a085fee13c2c3524a72 SHA512 42cfc64529b84515140128a65439a4cbcf1912e9fd1fb2eaecb6e480a83b94f1123d14c41e439463b04babffe4010468aaa0d7511cc9c82ba23143356b1a51c3
 DIST NVIDIA-Linux-x86_64-387.22.run 81850060 BLAKE2B 960412c08322f8af6395147f506c0c1174f9b542e8cb08f15074fe524a47bb72967e8e61d358d1c486e7440320bfa375165c241a6d96d59248062c6de2e7cea4 SHA512 f695b8d3cb0707afd078f88aa5a211230cdceb4603571371d9c4322d540e43875a9c22e000d2734c9094f32752f71464b790c3c7e79778529d737487dc387f65
 DIST NVIDIA-Linux-x86_64-387.34.run 82784271 BLAKE2B b7140d5d6a693892df50b3ad2e20387673dec6b5ac609cc0300bdc4b4a93ca94849255699126e4d55e67f10e488bfe6008e987197ea239b1a1b643b4ae5c7808 SHA512 6742768f1258a028c9ba56ad1d72f27d7eea4b6bfd324ba29c7f057ab5819816bd728aeaf2a8058031dadcd4c51bc6d08f0e0e0e26c68ed57955e90d68ac5a4b
 DIST nvidia-settings-304.137.tar.bz2 1481361 BLAKE2B cf52a55a34eeb03a685a683487af6a198ba467dd8ba9983cc75624a37a226373cd931d98e8448b7b8ed430c54be2118c7b240ed2a9100b19bec5e832e2f6cdad SHA512 676d1f70c9a78ee234f5f1a283412430a386fa604de211afba02806a45906c5e246a002989b724d74752178d28c92a268de1c98d4c87876797d991253f16b0cc
@@ -53,6 +48,5 @@ DIST nvidia-settings-378.13.tar.gz 2112676 BLAKE2B 7e3e7c20986c184ddb08808706902
 DIST nvidia-settings-381.22.tar.gz 2127491 BLAKE2B 7721ed9df7c01671a56a720e75768c80debe8520aed5a838e1e1d365651db2ae42b0cd21801c60aa18944f8d4751fadac206a388f1cf107a03a25ccb8aeb5c5f SHA512 79cd41b9c0e63b69574caddb62437132810ecb4cd07b90899976ae8535948f28d72021fc9a6969559909cf0f7a5d411b0202782970d64a82c636e7738c9d5681
 DIST nvidia-settings-384.90.tar.gz 2137511 BLAKE2B ec1cb67cf4f1ce2e8129bfd482444d6e65bd4c1af600b31df9abf84d77caf2238332629b756073b3626b7197e8a06adf182d660d7e4139c933b373d57437aa89 SHA512 d5c78844af1e0faaefd523347dc3dd3f17a49e9d0ac87b64b4177f06743ff7e06e1a3e454ad54e805c1f976cced6b7f45bfa851334005e58f84f8401b26202af
 DIST nvidia-settings-384.98.tar.gz 2136346 BLAKE2B 446944f619a832583d0db61b0d738d562c41d505f1a9025de381f88fa24b8104fc4b2b1d225ceda4b7b3c25e9d6fb4c8c14b6d896ad4ad59c02802b4df2c97ee SHA512 c4427241b15ffe5ecb0355d3e512c517d5ad1a5f5335c187dcde379074021a4990db9c048502e62a7ce9dda651b017e06d8117fb7c724bd3a08f6fbd10b49e26
-DIST nvidia-settings-387.12.tar.gz 1265918 BLAKE2B cdcd9b888496b570fdf1f8ea76c3541d48977db1eb8baca9b557842b4bd1c35dd011643cad3906f2ef3b4ad018e2f31bad2f6fcc284101eae30925a35736c561 SHA512 d21b93758300080c1c9de945b138402ac0e5a914a05d8691f8aa8bdce47d15b06b623ffdf1edd6794fa2698f56d4c02d049638d4de213c43fab4e91b26fc4de7
 DIST nvidia-settings-387.22.tar.gz 1267587 BLAKE2B 67eac64d4e4a489f9e513d92e780ca5eed53fea93d866b4d159ad0c3bd5a3a267925dfe3563d6e1ef3b41a948ac79c4271c469a7b9e869b3aaa98f5f8f9ab205 SHA512 dae157a54d0e48e94776db95927d27fca0370c7ffa67d79ce6fa372ce40bd766c081a65cd090a532c311a8f727beca6d0d9fcd526dc7791b2c73d4193854439b
 DIST nvidia-settings-387.34.tar.gz 1267616 BLAKE2B 62d2fd329417f54bf384918889603921065e0ef6d4fb691e914534a75ab0062a17d8f886c593cf772d29bb6b56ce30aaf7b1548191b2f9ad5fbee71770ed5308 SHA512 559c859c0740575ab93edce013587250b98d7d2cd55198b5103fe97423d31ed9f113d83c240c402404de88074c285a07e46342538610d3d5dade7bed59d60090

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-387.12-linker.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-387.12-linker.patch
deleted file mode 100644
index 4bf84e66856..00000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-387.12-linker.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/nvidia-settings-387.12/utils.mk
-+++ b/nvidia-settings-387.12/utils.mk
-@@ -475,7 +475,7 @@
- define READ_ONLY_OBJECT_FROM_FILE_RULE
-   $$(OUTPUTDIR)/$$(notdir $(1)).o: $(1)
- 	$(at_if_quiet)cd $$(dir $(1)); \
--	$$(call quiet_cmd_no_at,LD) -r -z noexecstack --format=binary \
-+	$$(call quiet_cmd_no_at,NVLD) -r -z noexecstack --format=binary \
- 	    $$(notdir $(1)) -o $$(OUTPUTDIR_ABSOLUTE)/$$(notdir $$@)
- 	$$(call quiet_cmd,OBJCOPY) \
- 	    --rename-section .data=.rodata,contents,alloc,load,data,readonly \
---- a/nvidia-settings-387.12/src/libXNVCtrl/utils.mk
-+++ b/nvidia-settings-387.12/src/libXNVCtrl/utils.mk
-@@ -475,7 +475,7 @@
- define READ_ONLY_OBJECT_FROM_FILE_RULE
-   $$(OUTPUTDIR)/$$(notdir $(1)).o: $(1)
- 	$(at_if_quiet)cd $$(dir $(1)); \
--	$$(call quiet_cmd_no_at,LD) -r -z noexecstack --format=binary \
-+	$$(call quiet_cmd_no_at,NVLD) -r -z noexecstack --format=binary \
- 	    $$(notdir $(1)) -o $$(OUTPUTDIR_ABSOLUTE)/$$(notdir $$@)
- 	$$(call quiet_cmd,OBJCOPY) \
- 	    --rename-section .data=.rodata,contents,alloc,load,data,readonly \

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-387.12.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-387.12.ebuild
deleted file mode 100644
index 5974954b8d6..00000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-387.12.ebuild
+++ /dev/null
@@ -1,580 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
-	portability toolchain-funcs unpacker user udev
-
-NV_URI="http://http.download.nvidia.com/XFree86/"
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
-ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
-X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
-SRC_URI="
-	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
-	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
-	arm? ( ${NV_URI}Linux-32bit-ARM/${PV}/${ARM_NV_PACKAGE}.run )
-	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
-	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
-	tools? (
-		https://github.com/NVIDIA/nvidia-settings/archive/${PV}.tar.gz -> nvidia-settings-${PV}.tar.gz
-	)
-"
-
-LICENSE="GPL-2 NVIDIA-r2"
-SLOT="0/${PV%.*}"
-KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
-RESTRICT="bindist mirror"
-EMULTILIB_PKG="true"
-
-IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
-REQUIRED_USE="
-	tools? ( X )
-	static-libs? ( tools )
-"
-
-COMMON="
-	app-eselect/eselect-opencl
-	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
-	tools? (
-		dev-libs/atk
-		dev-libs/glib:2
-		dev-libs/jansson
-		gtk3? (
-			x11-libs/gtk+:3
-		)
-		x11-libs/cairo
-		x11-libs/gdk-pixbuf[X]
-		x11-libs/gtk+:2
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXrandr
-		x11-libs/libXv
-		x11-libs/libXxf86vm
-		x11-libs/pango[X]
-	)
-	X? (
-		>=app-eselect/eselect-opengl-1.0.9
-		app-misc/pax-utils
-	)
-"
-DEPEND="
-	${COMMON}
-	kernel_linux? ( virtual/linux-sources )
-	tools? ( sys-apps/dbus )
-"
-RDEPEND="
-	${COMMON}
-	acpi? ( sys-power/acpid )
-	tools? ( !media-video/nvidia-settings )
-	wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
-	X? (
-		<x11-base/xorg-server-1.19.99:=
-		>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
-		sys-libs/zlib[${MULTILIB_USEDEP}]
-	)
-"
-QA_PREBUILT="opt/* usr/lib*"
-S=${WORKDIR}/
-
-nvidia_drivers_versions_check() {
-	if use amd64 && has_multilib_profile && \
-		[ "${DEFAULT_ABI}" != "amd64" ]; then
-		eerror "This ebuild doesn't currently support changing your default ABI"
-		die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
-	fi
-
-	if use kernel_linux && kernel_is ge 4 14; then
-		ewarn "Gentoo supports kernels which are supported by NVIDIA"
-		ewarn "which are limited to the following kernels:"
-		ewarn "<sys-kernel/gentoo-sources-4.14"
-		ewarn "<sys-kernel/vanilla-sources-4.14"
-		ewarn ""
-		ewarn "You are free to utilize epatch_user to provide whatever"
-		ewarn "support you feel is appropriate, but will not receive"
-		ewarn "support as a result of those changes."
-		ewarn ""
-		ewarn "Do not file a bug report about this."
-		ewarn ""
-	fi
-
-	# Since Nvidia ships many different series of drivers, we need to give the user
-	# some kind of guidance as to what version they should install. This tries
-	# to point the user in the right direction but can't be perfect. check
-	# nvidia-driver.eclass
-	nvidia-driver-check-warning
-
-	# Kernel features/options to check for
-	CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
-	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
-
-	# Now do the above checks
-	use kernel_linux && check_extra_config
-}
-
-pkg_pretend() {
-	nvidia_drivers_versions_check
-}
-
-pkg_setup() {
-	nvidia_drivers_versions_check
-
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	if use driver && use kernel_linux; then
-		MODULE_NAMES="nvidia(video:${S}/kernel)"
-		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
-		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
-
-		# This needs to run after MODULE_NAMES (so that the eclass checks
-		# whether the kernel supports loadable modules) but before BUILD_PARAMS
-		# is set (so that KV_DIR is populated).
-		linux-mod_pkg_setup
-
-		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
-
-		# linux-mod_src_compile calls set_arch_to_kernel, which
-		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
-		# expects x86_64 or i386 and then converts it to x86
-		# later on in the build process
-		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
-	fi
-
-	if use kernel_linux && kernel_is lt 2 6 9; then
-		eerror "You must build this against 2.6.9 or higher kernels."
-	fi
-
-	# set variables to where files are in the package structure
-	if use kernel_FreeBSD; then
-		use x86-fbsd   && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
-		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
-		NV_DOC="${S}/doc"
-		NV_OBJ="${S}/obj"
-		NV_SRC="${S}/src"
-		NV_MAN="${S}/x11/man"
-		NV_X11="${S}/obj"
-		NV_SOVER=1
-	elif use kernel_linux; then
-		NV_DOC="${S}"
-		NV_OBJ="${S}"
-		NV_SRC="${S}/kernel"
-		NV_MAN="${S}"
-		NV_X11="${S}"
-		NV_SOVER=${PV}
-	else
-		die "Could not determine proper NVIDIA package"
-	fi
-}
-
-src_prepare() {
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-375.20-pax.patch
-	fi
-
-	local man_file
-	for man_file in "${NV_MAN}"/*1.gz; do
-		gunzip $man_file || die
-	done
-
-	use tools && eapply "${FILESDIR}"/${P}-linker.patch
-
-	default
-
-	if ! [ -f nvidia_icd.json ]; then
-		cp nvidia_icd.json.template nvidia_icd.json || die
-		sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
-	fi
-}
-
-src_compile() {
-	# This is already the default on Linux, as there's no toplevel Makefile, but
-	# on FreeBSD there's one and triggers the kernel module build, as we install
-	# it by itself, pass this.
-
-	cd "${NV_SRC}"
-	if use kernel_FreeBSD; then
-		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
-			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
-	elif use driver && use kernel_linux; then
-		MAKEOPTS=-j1 linux-mod_src_compile
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			AR="$(tc-getAR)" \
-			CC="$(tc-getCC)" \
-			DO_STRIP= \
-			LD="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NVLD="$(tc-getLD)" \
-			NV_VERBOSE=1 \
-			RANLIB="$(tc-getRANLIB)" \
-			build-xnvctrl
-
-		emake -C "${S}"/nvidia-settings-${PV}/src \
-			CC="$(tc-getCC)" \
-			DO_STRIP= \
-			GTK3_AVAILABLE=$(usex gtk3 1 0) \
-			LD="$(tc-getCC)" \
-			LIBDIR="$(get_libdir)" \
-			NVLD="$(tc-getLD)" \
-			NVML_ENABLED=0 \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1
-	fi
-}
-
-# Install nvidia library:
-# the first parameter is the library to install
-# the second parameter is the provided soversion
-# the third parameter is the target directory if it is not /usr/lib
-donvidia() {
-	# Full path to library
-	nv_LIB="${1}"
-
-	# SOVER to use
-	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
-
-	# Where to install
-	nv_DEST="${2}"
-
-	# Get just the library name
-	nv_LIBNAME=$(basename "${nv_LIB}")
-
-	if [[ "${nv_DEST}" ]]; then
-		exeinto ${nv_DEST}
-		action="doexe"
-	else
-		nv_DEST="/usr/$(get_libdir)"
-		action="dolib.so"
-	fi
-
-	# Install the library
-	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
-
-	# If the library has a SONAME and SONAME does not match the library name,
-	# then we need to create a symlink
-	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
-		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
-			|| die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
-	fi
-
-	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
-		|| die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
-}
-
-src_install() {
-	if use driver && use kernel_linux; then
-		linux-mod_src_install
-
-		# Add the aliases
-		# This file is tweaked with the appropriate video group in
-		# pkg_preinst, see bug #491414
-		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-		doins "${FILESDIR}"/nvidia-rmmod.conf
-
-		# Ensures that our device nodes are created when not using X
-		exeinto "$(get_udevdir)"
-		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
-		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
-	elif use kernel_FreeBSD; then
-		if use x86-fbsd; then
-			insinto /boot/modules
-			doins "${S}/src/nvidia.kld"
-		fi
-
-		exeinto /boot/modules
-		doexe "${S}/src/nvidia.ko"
-	fi
-
-	# NVIDIA kernel <-> userspace driver config lib
-	donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
-
-	# NVIDIA framebuffer capture library
-	donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
-
-	# NVIDIA video encode/decode <-> CUDA
-	if use kernel_linux; then
-		donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
-		donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
-	fi
-
-	if use X; then
-		# Xorg DDX driver
-		insinto /usr/$(get_libdir)/xorg/modules/drivers
-		doins ${NV_X11}/nvidia_drv.so
-
-		# Xorg GLX driver
-		donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
-			/usr/$(get_libdir)/opengl/nvidia/extensions
-
-		# Xorg nvidia.conf
-		if has_version '>=x11-base/xorg-server-1.16'; then
-			insinto /usr/share/X11/xorg.conf.d
-			newins {,50-}nvidia-drm-outputclass.conf
-		fi
-
-		insinto /usr/share/glvnd/egl_vendor.d
-		doins ${NV_X11}/10_nvidia.json
-	fi
-
-	if use wayland; then
-		insinto /usr/share/egl/egl_external_platform.d
-		doins ${NV_X11}/10_nvidia_wayland.json
-	fi
-
-	# OpenCL ICD for NVIDIA
-	if use kernel_linux; then
-		insinto /etc/OpenCL/vendors
-		doins ${NV_OBJ}/nvidia.icd
-	fi
-
-	# Documentation
-	if use kernel_FreeBSD; then
-		dodoc "${NV_DOC}/README"
-		use X && doman "${NV_MAN}"/nvidia-xconfig.1
-		use tools && doman "${NV_MAN}"/nvidia-settings.1
-	else
-		# Docs
-		newdoc "${NV_DOC}/README.txt" README
-		dodoc "${NV_DOC}/NVIDIA_Changelog"
-		doman "${NV_MAN}"/nvidia-smi.1
-		use X && doman "${NV_MAN}"/nvidia-xconfig.1
-		use tools && doman "${NV_MAN}"/nvidia-settings.1
-		doman "${NV_MAN}"/nvidia-cuda-mps-control.1
-	fi
-
-	docinto html
-	dodoc -r ${NV_DOC}/html/*
-
-	# Helper Apps
-	exeinto /opt/bin/
-
-	if use X; then
-		doexe ${NV_OBJ}/nvidia-xconfig
-
-		insinto /etc/vulkan/icd.d
-		doins nvidia_icd.json
-	fi
-
-	if use kernel_linux; then
-		doexe ${NV_OBJ}/nvidia-cuda-mps-control
-		doexe ${NV_OBJ}/nvidia-cuda-mps-server
-		doexe ${NV_OBJ}/nvidia-debugdump
-		doexe ${NV_OBJ}/nvidia-persistenced
-		doexe ${NV_OBJ}/nvidia-smi
-
-		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
-		doexe ${NV_OBJ}/nvidia-modprobe
-		fowners root:video /opt/bin/nvidia-modprobe
-		fperms 4710 /opt/bin/nvidia-modprobe
-		dosym /{opt,usr}/bin/nvidia-modprobe
-
-		doman nvidia-cuda-mps-control.1
-		doman nvidia-modprobe.1
-		doman nvidia-persistenced.1
-		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
-		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
-		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
-	fi
-
-	if use tools; then
-		emake -C "${S}"/nvidia-settings-${PV}/src/ \
-			DESTDIR="${D}" \
-			GTK3_AVAILABLE=$(usex gtk3 1 0) \
-			LIBDIR="${D}/usr/$(get_libdir)" \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			PREFIX=/usr \
-			DO_STRIP= \
-			install
-
-		if use static-libs; then
-			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
-
-			insinto /usr/include/NVCtrl
-			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
-		fi
-
-		insinto /usr/share/nvidia/
-		doins nvidia-application-profiles-${PV}-key-documentation
-
-		insinto /etc/nvidia
-		newins \
-			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
-
-		# There is no icon in the FreeBSD tarball.
-		use kernel_FreeBSD || \
-			doicon ${NV_OBJ}/nvidia-settings.png
-
-		domenu "${FILESDIR}"/nvidia-settings.desktop
-
-		exeinto /etc/X11/xinit/xinitrc.d
-		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-	fi
-
-	dobin ${NV_OBJ}/nvidia-bug-report.sh
-
-	if has_multilib_profile && use multilib; then
-		local OABI=${ABI}
-		for ABI in $(get_install_abis); do
-			src_install-libs
-		done
-		ABI=${OABI}
-		unset OABI
-	else
-		src_install-libs
-	fi
-
-	is_final_abi || die "failed to iterate through all ABIs"
-
-	readme.gentoo_create_doc
-}
-
-src_install-libs() {
-	local inslibdir=$(get_libdir)
-	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
-	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
-	local nv_libdir="${NV_OBJ}"
-
-	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
-		nv_libdir="${NV_OBJ}"/32
-	fi
-
-	if use X; then
-		NV_GLX_LIBRARIES=(
-			"libEGL.so.$(usex compat ${NV_SOVER} 1) ${GL_ROOT}"
-			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
-			"libGLESv1_CM.so.1 ${GL_ROOT}"
-			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLESv2.so.2 ${GL_ROOT}"
-			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLX.so.0 ${GL_ROOT}"
-			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
-			"libGLdispatch.so.0 ${GL_ROOT}"
-			"libOpenCL.so.1.0.0 ${CL_ROOT}"
-			"libOpenGL.so.0 ${GL_ROOT}"
-			"libcuda.so.${NV_SOVER}"
-			"libnvcuvid.so.${NV_SOVER}"
-			"libnvidia-compiler.so.${NV_SOVER}"
-			"libnvidia-eglcore.so.${NV_SOVER}"
-			"libnvidia-encode.so.${NV_SOVER}"
-			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
-			"libnvidia-fbc.so.${NV_SOVER}"
-			"libnvidia-glcore.so.${NV_SOVER}"
-			"libnvidia-glsi.so.${NV_SOVER}"
-			"libnvidia-ifr.so.${NV_SOVER}"
-			"libnvidia-opencl.so.${NV_SOVER}"
-			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
-			"libvdpau_nvidia.so.${NV_SOVER}"
-		)
-
-		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
-		then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-egl-wayland.so.1.0.2"
-			)
-		fi
-
-		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
-		then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-wfb.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_FreeBSD; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-tls.so.${NV_SOVER}"
-			)
-		fi
-
-		if use kernel_linux; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-ml.so.${NV_SOVER}"
-				"tls/libnvidia-tls.so.${NV_SOVER}"
-			)
-		fi
-
-		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
-			donvidia "${nv_libdir}"/${NV_LIB}
-		done
-	fi
-}
-
-pkg_preinst() {
-	if use driver && use kernel_linux; then
-		linux-mod_pkg_preinst
-
-		local videogroup="$(egetent group video | cut -d ':' -f 3)"
-		if [ -z "${videogroup}" ]; then
-			eerror "Failed to determine the video group gid"
-			die "Failed to determine the video group gid"
-		else
-			sed -i \
-				-e "s:PACKAGE:${PF}:g" \
-				-e "s:VIDEOGID:${videogroup}:" \
-				"${D}"/etc/modprobe.d/nvidia.conf || die
-		fi
-	fi
-
-	# Clean the dynamic libGL stuff's home to ensure
-	# we dont have stale libs floating around
-	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
-		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
-	fi
-	# Make sure we nuke the old nvidia-glx's env.d file
-	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
-		rm -f "${ROOT}"/etc/env.d/09nvidia
-	fi
-}
-
-pkg_postinst() {
-	use driver && use kernel_linux && linux-mod_pkg_postinst
-
-	# Switch to the nvidia implementation
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
-	"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
-
-	readme.gentoo_print_elog
-
-	if ! use X; then
-		elog "You have elected to not install the X.org driver. Along with"
-		elog "this the OpenGL libraries and VDPAU libraries were not"
-		elog "installed. Additionally, once the driver is loaded your card"
-		elog "and fan will run at max speed which may not be desirable."
-		elog "Use the 'nvidia-smi' init script to have your card and fan"
-		elog "speed scale appropriately."
-		elog
-	fi
-	if ! use tools; then
-		elog "USE=tools controls whether the nvidia-settings application"
-		elog "is installed. If you would like to use it, enable that"
-		elog "flag and re-emerge this ebuild. Optionally you can install"
-		elog "media-video/nvidia-settings"
-		elog
-	fi
-}
-
-pkg_prerm() {
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}
-
-pkg_postrm() {
-	use driver && use kernel_linux && linux-mod_pkg_postrm
-	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
-}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2018-01-04 19:08 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2018-01-04 19:08 UTC (permalink / raw
  To: gentoo-commits

commit:     9b2e2c651bc102109790c32dae69ea1bb9cbc123
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Thu Jan  4 19:07:48 2018 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Thu Jan  4 19:08:06 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9b2e2c65

x11-drivers/nvidia-drivers: Version 384.111 390.12.

Package-Manager: Portage-2.3.19, Repoman-2.3.6

 x11-drivers/nvidia-drivers/Manifest                | 12 ++++++++++++
 .../files/nvidia-drivers-387.34-linker.patch       | 22 ----------------------
 ...2-linker.patch => nvidia-settings-linker.patch} |  8 ++++----
 ...387.34.ebuild => nvidia-drivers-384.111.ebuild} | 22 ++++++++++------------
 .../nvidia-drivers/nvidia-drivers-387.22.ebuild    | 10 ++++++++--
 .../nvidia-drivers/nvidia-drivers-387.34.ebuild    | 10 ++++++++--
 ...-387.34.ebuild => nvidia-drivers-390.12.ebuild} | 12 +++++++++---
 7 files changed, 51 insertions(+), 45 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index 0f512d575ea..35ae1b5ab0d 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -3,50 +3,62 @@ DIST NVIDIA-FreeBSD-x86-340.104.tar.gz 60305172 BLAKE2B e67564d7cc8e247f1f026fb2
 DIST NVIDIA-FreeBSD-x86-375.82.tar.gz 59566154 BLAKE2B b888b08cd434899ff73f04a855b47f9416ab247f63023f742dff55e9249d20b8da07bc5cd42e6d555cd9a8ecc62c97821ae09dce1986f0ac2384a16a70c7f181 SHA512 6747bf6d6278c6ed0828c6fdcad5353e516f28384609a3f0a885966707eebb096926a876c17843bfa7626a01a6d4e0ab12c781faf9ac0291771b195c9eb13d85
 DIST NVIDIA-FreeBSD-x86-378.13.tar.gz 59610253 BLAKE2B 723b392b869dd5cc9244cfe9df371fc6df6b4ebc4c1f01082fd79b2bbd0cbf4e670cfb69511f1773d28f6fc51a8801777dd6e3066f50fc96888a9efa467e459e SHA512 a0101201089df2bbf5bdc4ded2228dd989da6a47da31c3ec8d55916b1ff3457924555f82c7381934745fdc1b1f8f78e3fc10e5089279eb13423628dbfe560c6b
 DIST NVIDIA-FreeBSD-x86-381.22.tar.gz 60112159 BLAKE2B 4a61e9a09218eb7d259f82d0a43fee313754004c8716e921b9a83a3e87fff9a291450bef5d7304b2a7ddf5750a830fb7c5cc9dab890dac4a714354265ca25034 SHA512 ffe5882051fad081854e7b7fefe86a4da55b263b2ca217664991a7e0d84ff2f22d62a37c89afd578f3c99c12be897e5db7a3d1c71c747df655af8e220eb983fa
+DIST NVIDIA-FreeBSD-x86-384.111.tar.gz 63692297 BLAKE2B ae4bb643fd46afd14bf99f2ab5ceab1caf9ceed4e26b097814055495c5611a03ba731dd221d32a94b91bc5a4336ad64009b418e7fc814f621c473f6efb68942a SHA512 901f1e0414334e27d010cbb7f7bf1deb14d72ad6eaa154ec9b03fa82c370aa982f5dc691f72ec4dca7c555c34828479064192951981134ce1b40a32b70e6d58f
 DIST NVIDIA-FreeBSD-x86-384.90.tar.gz 63539967 BLAKE2B 7f9d14de9e79c59aaf27bc0889094493610f49cd8934b0605e7cd350ebe097eb92d841e19f78dafac73739812b83e29d0bb2b0178dc8d0300c79bb592bf70262 SHA512 16e333a846f47618f6e732d89bd92fda628c02b28784226a879f23147df764c540c96d2fe517dea465a7d07022df676a009aec22bb09c4439b9ea8b0351c6996
 DIST NVIDIA-FreeBSD-x86-384.98.tar.gz 63653102 BLAKE2B 003f293136a5a37a381ebe573ddcf05613f93f774f962d6aefc60f785f63030f1eb71dd96c4fc3507c6e9f9508a09dca297dab8939517abcf630706722cea8a7 SHA512 95b6709f994a3b8e5984d8b0eb745016c6769b2c41072672318b9e0643d1f7d64eff376e702e1768013dfae5e8976475b13573b258e13236d991e9514e58a7f5
 DIST NVIDIA-FreeBSD-x86-387.22.tar.gz 64162390 BLAKE2B 6d78c7d03a8e9b489f166f1a2216a5fc1afccd5bd96808c27c64b4155316de6e3f88258f720eb2dbf9218ca4027d5a3f3c6a5d959ac7f5f9d5c8522263f5620d SHA512 3fb704aaa4080072e920dd19cd3492eb30e31ea2426e7f73939fd53072a92ace3dfbdbf582ca5c19bc27d1a52fbd6f9ab918c7f265e3c0a9c5e0905ad156548b
 DIST NVIDIA-FreeBSD-x86-387.34.tar.gz 64228643 BLAKE2B 80011df5d037cd0a2a6faccf6c990e6019cb85c906c1410d4dde033a8a945ecd46e80a1315e46dc05fa47003eb328c6b8e8e41e18dce60942e645c0e6b813717 SHA512 875648459a149d506b20eb7105e73086e1fb51dddfbd8b484b8cc4793682c088ba16b3d374b0e807738f7aa7489dd9eab2449f70bc9feefeec0bf3a88025b9ef
+DIST NVIDIA-FreeBSD-x86-390.12.tar.gz 63855774 BLAKE2B 220f7fb3d2fc2e9f4041b4139ab162a00a928b7eeeb57bbaaa0d836fb6bbfe818272e11cc1b6a8ecf0b369b111a44940f897872c0d8360eaad25a778cd8acd44 SHA512 c15724ed75375e21e50ac663feb798cadb897cc594fdc36d18f8b9bde2ac07b26002c1f170be0faadf4bb808ac387a5a4686c446f4191dd5f3e86bb8b7cd6c7c
 DIST NVIDIA-FreeBSD-x86_64-304.137.tar.gz 36474676 BLAKE2B bd75e2916d34f76566d838406419991a860118830366f0297fa63baade3a99f637dae601d6bc6a051596222f2715297dffbf9b81ff5478b030741e6c8a09bc13 SHA512 f0ae7ccea417aceedf34bfb9c96fd79b31cbf74a8fa59d5199b0ad7b81b8a4aeb66cd4801a45cc37f836979cb4267aa69e08517beaa9b8cb9c66a477d02ef8de
 DIST NVIDIA-FreeBSD-x86_64-340.104.tar.gz 61176133 BLAKE2B 1fa2e1a7018b3d24b2a6b2be016aaa4c86196fba679d7032c9d0884900b4734ea1b6d54398bb7c792d5010496c86438eed134b8ac8c1aa235b336211fdc207e7 SHA512 d7535527fb9ffc820509da8d0b159c70627c72a7182c354448851a334fcd5b8835046d0e9812079af2fa92de0f3fce299a67e70ef50697a2a1f33b8d995e7f73
 DIST NVIDIA-FreeBSD-x86_64-375.82.tar.gz 58748290 BLAKE2B 629d65b71270d1c0d94c71e4215a72f0e49bb82e68ebb93fd4b14cd56a2031674458764f4c3e2e3dec7379ec0d5ed9212c8d09a64e4361f40352e52aa9b57de5 SHA512 5e2b42ff63e06219764db8187203ce1a2c3c8b478be31fc713ef396e8f8d46def9b2631d7989866740bd0c6a81bbf5d2ed083c14cfa7171c0d993553ca6f431c
 DIST NVIDIA-FreeBSD-x86_64-378.13.tar.gz 58779963 BLAKE2B d0a165dab740b25e1d97050e4dfc9f916ae17159eb4e4b79e068a4cd6ec3e2bc146d061abb4a411847cbb0d987253f86327e67ffd6efaf725c4fa4dce27e4fa9 SHA512 34cfc383ba196ecec2cd27fc12bf30dd58f8782b73414e7b4c182e832ae0dce1f8c017afbb2101d7525d4e321f80cac49d3b578a8fc0cf88be9310f4deb77057
 DIST NVIDIA-FreeBSD-x86_64-381.22.tar.gz 59284579 BLAKE2B 45703b5658c586fe2fbfaf84a54a591a7d25e836195c47c43375b74a730c1a7aa4dd7bd17d13e7194b37d51da0f11540da1bee564e1c27351ecc6915e65012d5 SHA512 51c5a87fabe87ec7f2589ed97d97447b127ecb5fe501c60bc7c9fce74141c127f4f9bb820d2a9b34fb56db436476d0cb18a73845ab4e7ec2315d4975c8ce4e32
+DIST NVIDIA-FreeBSD-x86_64-384.111.tar.gz 62886396 BLAKE2B d92cd0b96165450599100b1985fe1844d2e5eb4ee2f560a94445c1686e9701fbb0e30dd8b7f6f6f6cf329cea335f6f8f6bd3a75c7b583599420cf415de898eb5 SHA512 320315e7817474ccb026f9edf15572b445d71076a456fec59801959535ed1f92071f372c3284327b11e82a73d0efa46bacb907ea875f631c39bfd4217c1504bf
 DIST NVIDIA-FreeBSD-x86_64-384.90.tar.gz 62724143 BLAKE2B 738310e8571408c3dac327650eaa756499ae5e501fb3691a8dd8bea38587cc786eff3afa6b465dc23074f26d05a4bb2c6f50f69cb3f87eb44dd9cd4319aa43b0 SHA512 0077ba72301b65fb898fa180d77ff6abcb2a78e62c3528e3afbdfb679248f34e6a00faefeec713e7cc4a7daa7c15e6039090e5dbb047d6a9f2cff38c2e8afdb9
 DIST NVIDIA-FreeBSD-x86_64-384.98.tar.gz 62848100 BLAKE2B fa0ec45007ea4609280638c44057b53646b5b0844ce339ba90745e2123ef1ae81252212fa7abe35a4a0454416b0b65a517057afa06ed4a1511e7452366dce8e9 SHA512 8a13fa29e2a56dd2583acb040e1063ae2a7286c53d55aad0ef723cac56d52a8cd28278cd94069c17e6fc37322bf684d1f90ac9e7b178dcaa8442cc985ab0b784
 DIST NVIDIA-FreeBSD-x86_64-387.22.tar.gz 63326641 BLAKE2B 2d031738926a3f8691ae75b83d04e7965615c4de58736a0db2ee9c372b667cf8f841122bd37b48e6a64aa67b3892bf1f595267b1cb38019ce77ff4a2fe8d2f93 SHA512 ba4fe402f4dc7a5760af2f753cfcb7bf383d78df07c8ab7e53f22b6515c089f493abb4885adb23c119b4a8a9d5f83cbe248ef5877033a9a0c09c3ba59874f777
 DIST NVIDIA-FreeBSD-x86_64-387.34.tar.gz 63387097 BLAKE2B 53689ba098b4a4de08dca056618ea533c92d17137ec954dea0ae71e1b2c825c021979871e4ff82c820be0a78d3c365f282b760940ebe2caa1ca5bfd2453e178e SHA512 0a905ee72ee6f4e9c941e5dd1f7cddf96bfb20c6da32fd05599258e1bb154f68463d775ba8ff4f67f0d4b8e637e9ed9624fc9a4873a1f2621dc86732f0d6d70d
+DIST NVIDIA-FreeBSD-x86_64-390.12.tar.gz 63177774 BLAKE2B 56f6b2d5f3d456b02200a5e9571f91c4d2a1b97e2c051282cd8c0a42fc8c5b763e973975665e992da72692272c0ef0f6cf9a75d9e32ec56ea581b3a9a031d479 SHA512 e8a709f2b8bc0738971138dc77966247756a542974101f77b18e6a5dcd4a72c442b27122b0ffef10896530d8d94c57031c42772fb12e058bd73b98c60352cfcd
 DIST NVIDIA-Linux-armv7l-gnueabihf-375.82.run 26650801 BLAKE2B 31446667065c56b48f6a3e737afe29a4517459d3462138136bffe383bc6fe514d6e80b49c391c27edc96b8abc3da3dd4d6ee3f3dca17f3c9a0f1cdf0e72cf099 SHA512 28554f1c24fe63c9257c0de3e84e4e739a45bf1c20ec7a53bc2c1b69b4e2355675061491ef5b03f3ae489cf623e553cfa68442f5536f137837327036d1c53d63
 DIST NVIDIA-Linux-armv7l-gnueabihf-378.13.run 26514235 BLAKE2B 2b3c540704496a290be7ae3f1ff378487c75af2298c12488da8b3a1814446e5df02a1ed99afd8ee7fc459d950aab472155359eae0bf56ac83389711d70638152 SHA512 253786a821df85fa926ae842114321b3c70502f887ea7c2b6790dfe3836039ee5d390e6722ca8785904ec6487e465916923d3042dc6191b3b4522c3161b80cb0
 DIST NVIDIA-Linux-armv7l-gnueabihf-381.22.run 26815484 BLAKE2B e5f0241b07d1e54edea2025dd30061d1018c68cc2c7136c507eb894bbad5be3d0724494e2b9f33d1f8f60da4904999bbb964e6f2e78d045d7cd86bcd46b7f6d0 SHA512 934cda37c7aed26243b5b661122e1c060de5b4df890aaf2295b6650dddea37cb4f0e3f0bebddb00b5d687b66ab5e028a203195c4d4ad3379593babda42febe77
+DIST NVIDIA-Linux-armv7l-gnueabihf-384.111.run 28892959 BLAKE2B 7cd07fe8fda8b98b7ee7841a0ecad51f0a90ace332fb5ebd4dbf7fc04e47b627fe005712fe19b05e0e7eb5208d2cf413a87ed69330e8bd9a6f87ac41f6919dc4 SHA512 af1d29c3aa6aad8c64d698ca2a725d267e7ff299d683e5307c82e7306834ce1716084c492d2604db0e5d33ba4228fbf85e5f6275bedfb17980e33b6318cb06c9
 DIST NVIDIA-Linux-armv7l-gnueabihf-384.90.run 29044581 BLAKE2B 5c0e864d31bbdac404b1a2fdd159d38f5b1e6c22b4b2cd0e6d722562815c557e88cd562713448af200b49d40214b041ead6d77dd7e229f068029add97f2f949c SHA512 4d6f23c1ce4ce26520aa49955959833d630a398df0826cf9b0c1109103fc3c4da1d7c19d1cc826116562bcbfca933f291b300bea377e91f72f15c97e0c6d68f0
 DIST NVIDIA-Linux-armv7l-gnueabihf-384.98.run 28845054 BLAKE2B 1c99d63598d8cf94683389d2337ed34e6aabe145e178d0ed0708553d75524ed4a101eea8e580c1fa26d957cb7024a68df0915cb0863fd7b3172da3ae399ab902 SHA512 c9446ec5eba9fa00e63f4952944041d280eb7095c8afd466b4cd1fe33b5e17341c574a86a2adab0dccc2fd3bf79ae32c5d72bf892e9d558dc56fb5cb80ec9c3c
 DIST NVIDIA-Linux-armv7l-gnueabihf-387.22.run 29112014 BLAKE2B 6b03e0bdc5f40434e852eadeeb0a6e6afc5de35c3e7bb5c75f0f8d4449a9b0d25ff97ada36320d814d84c4cf2f724f5b3704c29caf3217728d4ed001e507a4c3 SHA512 e304105f90d9957589598eb8ee5abe9783c7e5c58f9c66aa8378047852b2a129f0ea8fab2ed319cfcfaade8ced87b02f02080b42d4089bbc41b5877763ab9b8f
 DIST NVIDIA-Linux-armv7l-gnueabihf-387.34.run 29406773 BLAKE2B af27fb1bfa8e432c83220f88c57219d572dfab2d3624c8702759a747f25ff962dba7c39028af5746e04c913c9a53dfbec8a46801bfa7e38df65a8823c4858cca SHA512 cb631dc3b851d84881dfcabee776c68a935853d03f21595acfea84a3efbc85276070f9d0958c0bcced1e66f42f25ecf3fd7d615c715274130ca24426da678c2e
+DIST NVIDIA-Linux-armv7l-gnueabihf-390.12.run 28595865 BLAKE2B 6e923d07212ef2f207091ff4cd1d9575d2e773b6e8a7d360b4a5be9d1ef818ee860ebec67e944aa40cedb688066c95e66d087b5ac364b617350315b75d417b77 SHA512 9a5b88715f12188b2f2a85767a8eaa29e16b427e06280385b9f93c9edc7ccb495e1dc831c174da16ea19dd349679f462ed1db2b8224a7d94ef77814be8175336
 DIST NVIDIA-Linux-x86-304.137.run 41504115 BLAKE2B 5938d4df818947e5576172c0ee9bfa42a2fc49a7a7a2b14128cf3b967dfea6d4523901b33283284d450cfadc2c6d72a82a1533b27ebb4b542b6b1454fe8ae960 SHA512 021c5a88d50489aa0a1c7eac14259e23542b93578ae339995a2e38b786d06d239968c07933cab3fb78a922cffc7e213d6fa3fe07e34065a9c7f03e24f8729370
 DIST NVIDIA-Linux-x86-340.104.run 38823602 BLAKE2B 9cab2d224a289839148558e2bd8d4711c0925dfff8b7897be9f7fbd3eaae5549571fa01d265d7a0f8ed6dbc600e2a815d9dd622fd56528c04d80e7ec664cd551 SHA512 8dacd5345a5794e862f4106ab9e8e402defa7883dd176c243d019209b560fe955d7576a13936364c01c5a249f15df58208308c9378c12c3438784376e5fb806c
 DIST NVIDIA-Linux-x86-375.82.run 44633335 BLAKE2B 55392ba748108b47994bf272829a6476dfc23f7756e0c18d56c8e4d827968196ee70e521c2e6307c134ca0c85d59715db777583fb07c8e06ae7325d586a8117b SHA512 cbd6edd7490e0e5ef9dd2020c18eb5f75412993e06b9c4f1919f49a8ffdc36131a96d868ab51691fb5c4a661e826b000ec93363c9b168304f6498014e300bf24
 DIST NVIDIA-Linux-x86-378.13.run 44397547 BLAKE2B 5b45bdceba75e214028b9f59a3655482ac1ac2b51cc0a6ea22927e5143b47c670db7078ed898e04663feb9fd495165954c90df5ee3afca00155dcc2ae6a97dc8 SHA512 b96d2558a1003a3c66cade3a1e16abd34d855c0e27cdebacdc0495e0ba3cd5c68bb84cc5f81bff1b9ddce36ac52e0dc125c56d868b77d7c8e2f606d559b13b4a
 DIST NVIDIA-Linux-x86-381.22.run 42931990 BLAKE2B cf1ae154854860557bf3e4a50216f1373ff66a45535e7beec67392b1cd1d40a02d758fa3e1cfa0462145b912430b0d1a3b6de3e6d6ede8aa1f484ea0ab46f816 SHA512 15723bfa25b0f39224ad5098c784a292abe4bf1daafaeb2f1df910bbab466e666b848b12e50b0bdd45f83e2d81957425a63501550b3dc5eb8fe3e576a8a10d22
+DIST NVIDIA-Linux-x86-384.111.run 46999570 BLAKE2B bb2439fb12400e13a65f9dd3712f1a9030bf46fedc070aed0cda77365c62a06376604821adc53e6ea69ebf357f5243e7307d46a8ae14c0d8ef289f87e655f88f SHA512 59acc24ec534f69972604828231895df10cbd46951762ded6f0a1b11c8d0ce3c6fb82a60197dd04389bf6e27fcc45f80fd91a72acefb8ccf9d622a910ccfb736
 DIST NVIDIA-Linux-x86-384.90.run 46518269 BLAKE2B 98f579483ae107f5b09b6c7e01a0d239403db3b10eead82528d67cd4b604bcefc46b19434b3c082871d6ab27f81653583aceb335a54650f603e3b91fe6a79bc0 SHA512 4376be6ade4380f8416a7d07a77b2e71bf07f62488c6887d2023973ca57574a0c6d294327159d4a0cf12400e4156b48fa989e3a80615cefd25d918e6d558784f
 DIST NVIDIA-Linux-x86-384.98.run 46588805 BLAKE2B bf49efd77e016b5a747a6de9f6462683f641e12102e86109179e4d6a04f2c56bcdc5693b971ea00a08cce43444bdbe9405aa70ed1b665f59bb8a5c3aa74d1a23 SHA512 e670ab9165d4f81a64c41cdcf0fb79ab7a73d97f4d566ca22ebe0959d8d088837fd767eb59d34b9359cf81e155486ab8d6ad8f09d5d93b3d5225a2ecd5558417
 DIST NVIDIA-Linux-x86-387.22.run 47013877 BLAKE2B d4e12c9bb669880a86784d1b2339e497d405c0642d77d8ace346f867a51a920a89c1d611aacaab1e844c2bc1b3a734455e728b5bc450e7f977a7c20f478ccc0b SHA512 865c5024957ade2c8361b198cbc6600f469612fe0336e3a0bfaf56e4240999367f2066837c0b354af4821ab2531d05eddf3f2a0957eacc2eca0dd7cada4929b4
 DIST NVIDIA-Linux-x86-387.34.run 47797853 BLAKE2B 4ae211ee00e09fe385f24e05cfac3af28447ec18e7a7f53e7f310c210ec22f60094be087aae45d0ea99c90214a07d3c46ce6867984ac0ff6e56559693fcdf148 SHA512 ba9362123a75f85a0a5a9dcc95c06bcb350a8dff2db864db30a73172db44006fa39eee8e23cf959ab2012b61b922d1f0d7ab225329815737819f27d1be300b95
+DIST NVIDIA-Linux-x86-390.12.run 46769369 BLAKE2B f358914c8fb58bf5c5cc855ef773dc938158bc0bb9123aa5e7224e4e2781e9e7ec2a498a4acb54dad3d3eb496feb899f6ff97b725d9fa646b61173cf0f9086ae SHA512 4cd452c6c05562aa842d4bc171537e0d8c9185d2934eb879d9f0b6c7491c37f6fe6b3fc4c48a208e3faeaf45b0f0d1fb2b96bc851885edaed31071a27d583aa1
 DIST NVIDIA-Linux-x86_64-304.137.run 70087133 BLAKE2B 8db0ade7cf64231ae11e6fc55a16a68a2f7b11a8bb7debb49799fee96eba06a3062b97fe539b093727623a1ed1067282813de047c2aeb89d93bf35a97c71aac5 SHA512 d7fae1e486005ffa2f2bf7f14f901bf5156fc784407a9acfea584f49bdab92ff5f4d0fb66c4c5b2800a461fc06aebb7d760bcb59f69ce4f2cb4e03e11816b3e9
 DIST NVIDIA-Linux-x86_64-340.104.run 70085947 BLAKE2B 3bf77983f0b14770fead042c09771650045c2d5238b68ec06f3c70e1598727b6f75fb1e492e6ed147f9323bce58d6d8f5a840de0a30938d46b53bd571202edff SHA512 3f7609e7a736ba7d77f96ea5561789113878c5cb85b2970ad5ae63acdd09c0f5bc6449a5ed7d948f85d684870dcc2b479c4e0d7d750a47dfd716940de72dba3f
 DIST NVIDIA-Linux-x86_64-375.82.run 77461911 BLAKE2B e7f32bdf1672d98a1fe98c82d80a08dd6f63b3c859df4c60124977dae19520a21e4239ff7be6c272243d4af9416320b5e166d8f100979daa0d005ea2a44fc16d SHA512 6da63b807d6dd7cc8ac2b794d5c9ab8383e3c0ce6a47adc600941545509fb40b5f06344781afc895bd83f2780b2bce187994df5684db2890f50b41adfee8f910
 DIST NVIDIA-Linux-x86_64-378.13.run 76239469 BLAKE2B 0f2be330645f8d9d2828fa6d159f9e41ef09bb32805f94cf3fa255f088a8c6f4c25add584787bd1ed64756ef75821f7143c14330718cc5f5ac3cbcf8b7c3bae4 SHA512 2f6789aa0a400c035c0a074631dc5c26abb4f8a62efe928ca3a2865b89d29acfc09c27f23a664e438275e4bfd25c261745d4d495f9aca5f54ee6c53a389059d2
 DIST NVIDIA-Linux-x86_64-381.22.run 76581130 BLAKE2B fdb5912a775b56edf7dd784b640997fe683d0a32d57db6079dc5466a1a8dc1354cd31ff86aa1e993e0a33163e4c18f6a7aa990e334448ad069db3a5ffc4f1ffa SHA512 669a3dd0896d68ba8eef4689b01971b92ec1c54e6cf2a9ff8d3f281ae9f2fe402f079e76109b65e698d76798bcc7a9bb43da9d128fec59ac1fafafd1c4a1e42c
+DIST NVIDIA-Linux-x86_64-384.111.run 81005322 BLAKE2B f3359ee60d11e823981583669ed598f4dfb549c0cc208e34671af81ad4f88eb23581d86309442a5c6aa1f83a0fb9dc7376c171b7d09ef42ee3d26e67c6350f44 SHA512 ddfe787a37f2a0e5409b302b13da16bd32a4a018958aa6f3b046eae7bf06d140f8d8f496e04726c57057139ebfce40811240b13d6a4ac6412655af6b257a0c5e
 DIST NVIDIA-Linux-x86_64-384.90.run 80833580 BLAKE2B 72e66a9ddbf35bb4dbdd42f0aae951fe76f6193759100d93740f89751878f26c0b82cc72dd7af16d927e3f3b9429a632808b46642fc0c726ef8e38efe00666ff SHA512 f47d3bad9229c837c37a75ed5b189f688c8d05230762f58494f0e744610ea19046cae4cd61d0f3b63d4e1cde50590497f600ef36a48f65f489e4c2067a05d0d3
 DIST NVIDIA-Linux-x86_64-384.98.run 80981256 BLAKE2B 8b38c661246f5e8e751dceb3d479aa3b6e807e9992adc9a0ba64a10914b8a932647d1b8eefa8da2578acd37cdd39f2979ca903db4663c371ddb56f794987cd77 SHA512 cd337d538d5a35f52b90a4437f44146f4982484c68171ee3570c2ff44b4bd96e0a65223a141770fbe3a7794e68832386a1d2bbaf66cff7f4cafba8462ef402b5
 DIST NVIDIA-Linux-x86_64-387.22.run 81850060 BLAKE2B 960412c08322f8af6395147f506c0c1174f9b542e8cb08f15074fe524a47bb72967e8e61d358d1c486e7440320bfa375165c241a6d96d59248062c6de2e7cea4 SHA512 f695b8d3cb0707afd078f88aa5a211230cdceb4603571371d9c4322d540e43875a9c22e000d2734c9094f32752f71464b790c3c7e79778529d737487dc387f65
 DIST NVIDIA-Linux-x86_64-387.34.run 82784271 BLAKE2B b7140d5d6a693892df50b3ad2e20387673dec6b5ac609cc0300bdc4b4a93ca94849255699126e4d55e67f10e488bfe6008e987197ea239b1a1b643b4ae5c7808 SHA512 6742768f1258a028c9ba56ad1d72f27d7eea4b6bfd324ba29c7f057ab5819816bd728aeaf2a8058031dadcd4c51bc6d08f0e0e0e26c68ed57955e90d68ac5a4b
+DIST NVIDIA-Linux-x86_64-390.12.run 82106120 BLAKE2B 90c6192c5a5a539afbf649ef35165aa3a636e7a489bebdfe88c7007e1b205471ab69f71adeb23926447cf4dd9e1d5b77b8cc81cc495894bd806a0230ba0595a8 SHA512 caa8b32f97936796ec9ef8851ddd75fe5307b4a1abd195f49cee26760a2c06f8ef84a6f9521e6a25d6ce0c7158321866c7c5dc05b3c25f83832c30cd6d6055fd
 DIST nvidia-settings-304.137.tar.bz2 1481361 BLAKE2B cf52a55a34eeb03a685a683487af6a198ba467dd8ba9983cc75624a37a226373cd931d98e8448b7b8ed430c54be2118c7b240ed2a9100b19bec5e832e2f6cdad SHA512 676d1f70c9a78ee234f5f1a283412430a386fa604de211afba02806a45906c5e246a002989b724d74752178d28c92a268de1c98d4c87876797d991253f16b0cc
 DIST nvidia-settings-340.104.tar.bz2 1549760 BLAKE2B 131532e16fac8c026e0c6030c12e42fcf7598b5e3d7b9286532387d90ad51eec666efd281b20c04abd08c8280c65dd907ee397c0acb4cf9c74e9d6c7be4dcdd6 SHA512 d4277ef0ce87ee7baf2c5155ca8d93e8db2483329053c541b6a605653f4a6883aad81ebdc45b4c60aa78b72bd4c6c88e5b1327cc4cd2f540fcee8dbd7edc3e53
 DIST nvidia-settings-375.82.tar.gz 2114647 BLAKE2B 26413fde8397e748fae362984039286c53a7fe104228452f3188b5e77b084ff4bf00131e77359ff5e92dfc325680c1f662950175cf806403d2a524ba86158f51 SHA512 7a374be56c8be52767d73a048029d9e55dc2abcf2f6a97eb4931544c927c85a1103a206be9e8d1ffcef36fec2caf2416f33699ad4d51e7dca17e4e844c37a595
 DIST nvidia-settings-378.13.tar.gz 2112676 BLAKE2B 7e3e7c20986c184ddb08808706902f332451df1ab5b0cc295de70c6c26706b067ba6ef96c4e4a68c935ee704ed031cb829c25aa325c6dd2f1ed0423cf5c1aec5 SHA512 6f5fda9c54b067e21f2c869bcfb7c799c99f584d769020cb15e8764f59183e6a6469919ec48bce47be2144910d0004a9ca221df4a9e4fa9ab9f18710b36fa420
 DIST nvidia-settings-381.22.tar.gz 2127491 BLAKE2B 7721ed9df7c01671a56a720e75768c80debe8520aed5a838e1e1d365651db2ae42b0cd21801c60aa18944f8d4751fadac206a388f1cf107a03a25ccb8aeb5c5f SHA512 79cd41b9c0e63b69574caddb62437132810ecb4cd07b90899976ae8535948f28d72021fc9a6969559909cf0f7a5d411b0202782970d64a82c636e7738c9d5681
+DIST nvidia-settings-384.111.tar.bz2 1631841 BLAKE2B 32c102c77234d3c9ad84ac6d343e01230747e824ee7f627f3638543aa6e37a3e652fb6d654b4bd39715d23c2b1b4da0a9f611920cddd893e34d8093ea4b3c3cf SHA512 4e0672858a13e22a4806b135db8c450a01bf2dd401f102837dd1a43496e38a2b4cbd518ce551fa549810a1b8959668b4f7aaa0f71302302501f226902e262c6d
 DIST nvidia-settings-384.90.tar.gz 2137511 BLAKE2B ec1cb67cf4f1ce2e8129bfd482444d6e65bd4c1af600b31df9abf84d77caf2238332629b756073b3626b7197e8a06adf182d660d7e4139c933b373d57437aa89 SHA512 d5c78844af1e0faaefd523347dc3dd3f17a49e9d0ac87b64b4177f06743ff7e06e1a3e454ad54e805c1f976cced6b7f45bfa851334005e58f84f8401b26202af
 DIST nvidia-settings-384.98.tar.gz 2136346 BLAKE2B 446944f619a832583d0db61b0d738d562c41d505f1a9025de381f88fa24b8104fc4b2b1d225ceda4b7b3c25e9d6fb4c8c14b6d896ad4ad59c02802b4df2c97ee SHA512 c4427241b15ffe5ecb0355d3e512c517d5ad1a5f5335c187dcde379074021a4990db9c048502e62a7ce9dda651b017e06d8117fb7c724bd3a08f6fbd10b49e26
 DIST nvidia-settings-387.22.tar.gz 1267587 BLAKE2B 67eac64d4e4a489f9e513d92e780ca5eed53fea93d866b4d159ad0c3bd5a3a267925dfe3563d6e1ef3b41a948ac79c4271c469a7b9e869b3aaa98f5f8f9ab205 SHA512 dae157a54d0e48e94776db95927d27fca0370c7ffa67d79ce6fa372ce40bd766c081a65cd090a532c311a8f727beca6d0d9fcd526dc7791b2c73d4193854439b
 DIST nvidia-settings-387.34.tar.gz 1267616 BLAKE2B 62d2fd329417f54bf384918889603921065e0ef6d4fb691e914534a75ab0062a17d8f886c593cf772d29bb6b56ce30aaf7b1548191b2f9ad5fbee71770ed5308 SHA512 559c859c0740575ab93edce013587250b98d7d2cd55198b5103fe97423d31ed9f113d83c240c402404de88074c285a07e46342538610d3d5dade7bed59d60090
+DIST nvidia-settings-390.12.tar.bz2 1109004 BLAKE2B bf5803590f917e588ecbe9be75a2b9809c3ee75dfd1a4ccafd90882b32ce15076741082c130bc594fee5805a54d27b2709c0d6c679be7947ffe2fe74ba8e9c78 SHA512 71ed79f568e6e47b77c82fcc2d0256728645a0b3499c78894e47ba9c9fc109ad37e4277307137bfc95dce9caa68ebe066f47be7d5ecfaef4b53879d80f5dcab4

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-387.34-linker.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-387.34-linker.patch
deleted file mode 100644
index dbe1be431e3..00000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-387.34-linker.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/nvidia-settings-387.34/utils.mk
-+++ b/nvidia-settings-387.34/utils.mk
-@@ -475,7 +475,7 @@
- define READ_ONLY_OBJECT_FROM_FILE_RULE
-   $$(OUTPUTDIR)/$$(notdir $(1)).o: $(1)
- 	$(at_if_quiet)cd $$(dir $(1)); \
--	$$(call quiet_cmd_no_at,LD) -r -z noexecstack --format=binary \
-+	$$(call quiet_cmd_no_at,NVLD) -r -z noexecstack --format=binary \
- 	    $$(notdir $(1)) -o $$(OUTPUTDIR_ABSOLUTE)/$$(notdir $$@)
- 	$$(call quiet_cmd,OBJCOPY) \
- 	    --rename-section .data=.rodata,contents,alloc,load,data,readonly \
---- a/nvidia-settings-387.34/src/libXNVCtrl/utils.mk
-+++ b/nvidia-settings-387.34/src/libXNVCtrl/utils.mk
-@@ -475,7 +475,7 @@
- define READ_ONLY_OBJECT_FROM_FILE_RULE
-   $$(OUTPUTDIR)/$$(notdir $(1)).o: $(1)
- 	$(at_if_quiet)cd $$(dir $(1)); \
--	$$(call quiet_cmd_no_at,LD) -r -z noexecstack --format=binary \
-+	$$(call quiet_cmd_no_at,NVLD) -r -z noexecstack --format=binary \
- 	    $$(notdir $(1)) -o $$(OUTPUTDIR_ABSOLUTE)/$$(notdir $$@)
- 	$$(call quiet_cmd,OBJCOPY) \
- 	    --rename-section .data=.rodata,contents,alloc,load,data,readonly \

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-387.22-linker.patch b/x11-drivers/nvidia-drivers/files/nvidia-settings-linker.patch
similarity index 82%
rename from x11-drivers/nvidia-drivers/files/nvidia-drivers-387.22-linker.patch
rename to x11-drivers/nvidia-drivers/files/nvidia-settings-linker.patch
index 364d99b5a88..fe9d336413f 100644
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-387.22-linker.patch
+++ b/x11-drivers/nvidia-drivers/files/nvidia-settings-linker.patch
@@ -1,5 +1,5 @@
---- a/nvidia-settings-387.22/utils.mk
-+++ b/nvidia-settings-387.22/utils.mk
+--- a/nvidia-settings-@PV@/utils.mk
++++ b/nvidia-settings-@PV@/utils.mk
 @@ -475,7 +475,7 @@
  define READ_ONLY_OBJECT_FROM_FILE_RULE
    $$(OUTPUTDIR)/$$(notdir $(1)).o: $(1)
@@ -9,8 +9,8 @@
  	    $$(notdir $(1)) -o $$(OUTPUTDIR_ABSOLUTE)/$$(notdir $$@)
  	$$(call quiet_cmd,OBJCOPY) \
  	    --rename-section .data=.rodata,contents,alloc,load,data,readonly \
---- a/nvidia-settings-387.22/src/libXNVCtrl/utils.mk
-+++ b/nvidia-settings-387.22/src/libXNVCtrl/utils.mk
+--- a/nvidia-settings-@PV@/src/libXNVCtrl/utils.mk
++++ b/nvidia-settings-@PV@/src/libXNVCtrl/utils.mk
 @@ -475,7 +475,7 @@
  define READ_ONLY_OBJECT_FROM_FILE_RULE
    $$(OUTPUTDIR)/$$(notdir $(1)).o: $(1)

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-387.34.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-384.111.ebuild
similarity index 97%
copy from x11-drivers/nvidia-drivers/nvidia-drivers-387.34.ebuild
copy to x11-drivers/nvidia-drivers/nvidia-drivers-384.111.ebuild
index 8f2c5151b1e..18ee68ad4ec 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-387.34.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-384.111.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -21,7 +21,7 @@ SRC_URI="
 	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
 	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
 	tools? (
-		https://github.com/NVIDIA/nvidia-settings/archive/${PV}.tar.gz -> nvidia-settings-${PV}.tar.gz
+		https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
 	)
 "
 
@@ -80,7 +80,9 @@ RDEPEND="
 		sys-libs/zlib[${MULTILIB_USEDEP}]
 	)
 "
+
 QA_PREBUILT="opt/* usr/lib*"
+
 S=${WORKDIR}/
 
 nvidia_drivers_versions_check() {
@@ -188,9 +190,8 @@ src_prepare() {
 		gunzip $man_file || die
 	done
 
-	use tools && eapply "${FILESDIR}"/${P}-linker.patch
-
-	default
+	# Allow user patches so they can support RC kernels and whatever else
+	eapply_user
 
 	if ! [ -f nvidia_icd.json ]; then
 		cp nvidia_icd.json.template nvidia_icd.json || die
@@ -215,24 +216,21 @@ src_compile() {
 		emake -C "${S}"/nvidia-settings-${PV}/src \
 			AR="$(tc-getAR)" \
 			CC="$(tc-getCC)" \
-			DO_STRIP= \
-			LD="$(tc-getCC)" \
 			LIBDIR="$(get_libdir)" \
-			NVLD="$(tc-getLD)" \
 			NV_VERBOSE=1 \
 			RANLIB="$(tc-getRANLIB)" \
+			DO_STRIP= \
 			build-xnvctrl
 
 		emake -C "${S}"/nvidia-settings-${PV}/src \
 			CC="$(tc-getCC)" \
-			DO_STRIP= \
 			GTK3_AVAILABLE=$(usex gtk3 1 0) \
 			LD="$(tc-getCC)" \
 			LIBDIR="$(get_libdir)" \
-			NVLD="$(tc-getLD)" \
 			NVML_ENABLED=0 \
 			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1
+			NV_VERBOSE=1 \
+			DO_STRIP=
 	fi
 }
 
@@ -486,7 +484,7 @@ src_install-libs() {
 		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
 		then
 			NV_GLX_LIBRARIES+=(
-				"libnvidia-egl-wayland.so.1.0.2"
+				"libnvidia-egl-wayland.so.1.0.1"
 			)
 		fi
 

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-387.22.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-387.22.ebuild
index c291635ed34..1eef35cd7e8 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-387.22.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-387.22.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -188,7 +188,13 @@ src_prepare() {
 		gunzip $man_file || die
 	done
 
-	use tools && eapply "${FILESDIR}"/${P}-linker.patch
+	if use tools; then
+		cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
+		sed -i \
+			-e "s:@PV@:${PV}:g" \
+			"${WORKDIR}"/nvidia-settings-linker.patch || die
+		eapply "${WORKDIR}"/nvidia-settings-linker.patch
+	fi
 
 	default
 

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-387.34.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-387.34.ebuild
index 8f2c5151b1e..6120757ff38 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-387.34.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-387.34.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -188,7 +188,13 @@ src_prepare() {
 		gunzip $man_file || die
 	done
 
-	use tools && eapply "${FILESDIR}"/${P}-linker.patch
+	if use tools; then
+		cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
+		sed -i \
+			-e "s:@PV@:${PV}:g" \
+			"${WORKDIR}"/nvidia-settings-linker.patch || die
+		eapply "${WORKDIR}"/nvidia-settings-linker.patch
+	fi
 
 	default
 

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-387.34.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.12.ebuild
similarity index 97%
copy from x11-drivers/nvidia-drivers/nvidia-drivers-387.34.ebuild
copy to x11-drivers/nvidia-drivers/nvidia-drivers-390.12.ebuild
index 8f2c5151b1e..56562e2c520 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-387.34.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.12.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -21,7 +21,7 @@ SRC_URI="
 	x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
 	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
 	tools? (
-		https://github.com/NVIDIA/nvidia-settings/archive/${PV}.tar.gz -> nvidia-settings-${PV}.tar.gz
+		https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
 	)
 "
 
@@ -188,7 +188,13 @@ src_prepare() {
 		gunzip $man_file || die
 	done
 
-	use tools && eapply "${FILESDIR}"/${P}-linker.patch
+	if use tools; then
+		cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
+		sed -i \
+			-e "s:@PV@:${PV}:g" \
+			"${WORKDIR}"/nvidia-settings-linker.patch || die
+		eapply "${WORKDIR}"/nvidia-settings-linker.patch
+	fi
 
 	default
 


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2019-01-16 10:32 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2019-01-16 10:32 UTC (permalink / raw
  To: gentoo-commits

commit:     421d7dc6fb791f8edde480dc6d989ade59c54710
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 16 10:24:43 2019 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Wed Jan 16 10:32:11 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=421d7dc6

x11-drivers/nvidia-drivers: Drop USE=pax_kernel

Closes: https://bugs.gentoo.org/551366
Closes: https://bugs.gentoo.org/593624
Closes: https://bugs.gentoo.org/600156
Closes: https://bugs.gentoo.org/629062
Closes: https://bugs.gentoo.org/633738
Closes: https://bugs.gentoo.org/650482
Package-Manager: Portage-2.3.56, Repoman-2.3.12
Signed-off-by: Jeroen Roovers <jer <AT> gentoo.org>

 .../files/nvidia-drivers-331.13-pax-usercopy.patch |  52 ---
 .../files/nvidia-drivers-337.12-pax-constify.patch |  25 --
 .../files/nvidia-drivers-375.20-pax.patch          | 406 ---------------------
 x11-drivers/nvidia-drivers/metadata.xml            |   4 -
 .../nvidia-drivers/nvidia-drivers-340.107.ebuild   |  12 +-
 .../nvidia-drivers/nvidia-drivers-390.87.ebuild    |  11 +-
 .../nvidia-drivers/nvidia-drivers-410.93.ebuild    |   9 +-
 .../nvidia-drivers/nvidia-drivers-415.25.ebuild    |   9 +-
 .../nvidia-drivers/nvidia-drivers-415.27.ebuild    |   9 +-
 9 files changed, 7 insertions(+), 530 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-331.13-pax-usercopy.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-331.13-pax-usercopy.patch
deleted file mode 100644
index 9777ce6c2d4..00000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-331.13-pax-usercopy.patch
+++ /dev/null
@@ -1,52 +0,0 @@
---- a/kernel/nv-linux.h
-+++ b/kernel/nv-linux.h
-@@ -757,16 +757,16 @@
- 
- #if defined(NV_KMEM_CACHE_CREATE_PRESENT)
- #if (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 6)
--#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type)            \
-+#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type, flags)     \
-     {                                                           \
-         kmem_cache = kmem_cache_create(name, sizeof(type),      \
--                        0, 0, NULL, NULL);                      \
-+                        0, flags, NULL, NULL);                  \
-     }
- #elif (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 5)
--#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type)            \
-+#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type, flags)     \
-     {                                                           \
-         kmem_cache = kmem_cache_create(name, sizeof(type),      \
--                        0, 0, NULL);                            \
-+                        0, flags, NULL);                        \
-     }
- #else
- #error "NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT value unrecognized!"
---- a/kernel/nv.c
-+++ b/kernel/nv.c
-@@ -794,7 +794,7 @@
-     NV_SPIN_LOCK_INIT(&km_lock);
- #endif
- 
--    NV_KMEM_CACHE_CREATE(nv_stack_t_cache, NV_STACK_CACHE_STR, nv_stack_t);
-+    NV_KMEM_CACHE_CREATE(nv_stack_t_cache, NV_STACK_CACHE_STR, nv_stack_t, SLAB_USERCOPY);
-     if (nv_stack_t_cache == NULL)
-     {
-         nv_printf(NV_DBG_ERRORS, "NVRM: stack cache allocation failed!\n");
-@@ -924,7 +924,7 @@
-     nv->os_state = (void *) &nv_ctl_device;
-     nv_lock_init_locks(nv);
- 
--    NV_KMEM_CACHE_CREATE(nv_pte_t_cache, NV_PTE_CACHE_STR, nv_pte_t);
-+    NV_KMEM_CACHE_CREATE(nv_pte_t_cache, NV_PTE_CACHE_STR, nv_pte_t, 0);
-     if (nv_pte_t_cache == NULL)
-     {
-         rc = -ENOMEM;
-@@ -935,7 +935,7 @@
-     if (NV_BUILD_MODULE_INSTANCES == 0)
-     {
-         NV_KMEM_CACHE_CREATE(nvidia_p2p_page_t_cache, "nvidia_p2p_page_t",
--                             nvidia_p2p_page_t);
-+                             nvidia_p2p_page_t, 0);
-         if (nvidia_p2p_page_t_cache == NULL)
-         {
-             rc = -ENOMEM;

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-337.12-pax-constify.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-337.12-pax-constify.patch
deleted file mode 100644
index 0ec9edf99cc..00000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-337.12-pax-constify.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/kernel/uvm/nvidia_uvm_common.c
-+++ b/kernel/uvm/nvidia_uvm_common.c
-@@ -95,7 +95,6 @@ static RM_STATUS uvmnext_gpu_event_stop_
- #endif // NVIDIA_UVM_NEXT_ENABLED
- 
- static dev_t g_uvmBaseDev;
--struct UvmOpsUvmEvents g_exportedUvmOps;
- 
- // TODO: This would be easier if RM allowed for multiple registrations, since we
- //       could register UVM-Lite and UVM-Next separately (bug 1372835).
-@@ -147,9 +146,11 @@ static RM_STATUS uvmSetupGpuProvider(voi
-     RM_STATUS status = RM_OK;
- 
- #ifdef NVIDIA_UVM_RM_ENABLED
--    g_exportedUvmOps.startDevice = uvm_gpu_event_start_device;
--    g_exportedUvmOps.stopDevice  = uvm_gpu_event_stop_device;
--    g_exportedUvmOps.isrTopHalf  = uvmnext_isr_top_half;
-+    static struct UvmOpsUvmEvents g_exportedUvmOps = {
-+        .startDevice = uvm_gpu_event_start_device,
-+        .stopDevice  = uvm_gpu_event_stop_device,
-+        .isrTopHalf  = uvmnext_isr_top_half,
-+    };
- 
-     // call RM to exchange the function pointers.
-     status = nvUvmInterfaceRegisterUvmCallbacks(&g_exportedUvmOps);

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.20-pax.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.20-pax.patch
deleted file mode 100644
index 9dd245a1f16..00000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.20-pax.patch
+++ /dev/null
@@ -1,406 +0,0 @@
-diff -urp work.orig/kernel/common/inc/nv-linux.h work/kernel/common/inc/nv-linux.h
---- work.orig/kernel/common/inc/nv-linux.h	2016-11-27 21:56:50.391617167 +0100
-+++ work/kernel/common/inc/nv-linux.h	2016-11-27 22:04:14.045516163 +0100
-@@ -1310,7 +1310,8 @@ extern void *nvidia_stack_t_cache;
- #if (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 5)
- #define NV_KMEM_CACHE_CREATE_FULL(name, size, align, flags, ctor) \
-     kmem_cache_create(name, size, align, flags, ctor)
--
-+#define NV_KMEM_CACHE_CREATE_FULL_USERCOPY(name, size, align, flags, useroffset, usersize, ctor) \
-+    kmem_cache_create_usercopy(name, size, align, flags, useroffset, usersize, ctor)
- #else
- #define NV_KMEM_CACHE_CREATE_FULL(name, size, align, flags, ctor) \
-     kmem_cache_create(name, size, align, flags, ctor, NULL)
-@@ -1319,6 +1320,14 @@ extern void *nvidia_stack_t_cache;
- #define NV_KMEM_CACHE_CREATE(name, type)    \
-     NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, 0, NULL)
- 
-+#ifdef SLAB_USERCOPY
-+#define NV_KMEM_CACHE_CREATE_USERCOPY(name, type)    \
-+    NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, SLAB_USERCOPY, NULL)
-+#else
-+#define NV_KMEM_CACHE_CREATE_USERCOPY(name, type)    \
-+    NV_KMEM_CACHE_CREATE_FULL_USERCOPY(name, sizeof(type), 0, 0, 0, sizeof(type), NULL)
-+#endif
-+
- #define NV_KMEM_CACHE_DESTROY(kmem_cache)   \
-     kmem_cache_destroy(kmem_cache)
- 
-diff -urp work.orig/kernel/common/inc/nv-modeset-interface.h work/kernel/common/inc/nv-modeset-interface.h
---- work.orig/kernel/common/inc/nv-modeset-interface.h	2016-11-27 21:56:50.391617167 +0100
-+++ work/kernel/common/inc/nv-modeset-interface.h	2016-11-27 21:54:23.971706350 +0100
-@@ -72,7 +72,7 @@ typedef struct {
-      * mix nvidia and nvidia-modeset kernel modules from different
-      * releases.
-      */
--    const char *version_string;
-+//    const char *version_string;
- 
-     /*
-      * Return system information.
-@@ -117,6 +117,6 @@ typedef struct {
- 
- } nvidia_modeset_rm_ops_t;
- 
--NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops);
-+NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string);
- 
- #endif /* _NV_MODESET_INTERFACE_H_ */
-diff -urp work.orig/kernel/common/inc/nv-register-module.h work/kernel/common/inc/nv-register-module.h
---- work.orig/kernel/common/inc/nv-register-module.h	2016-11-27 21:56:50.391617167 +0100
-+++ work/kernel/common/inc/nv-register-module.h	2016-11-27 21:54:23.971706350 +0100
-@@ -34,7 +34,7 @@ typedef struct nvidia_module_s {
-     int (*ioctl)(struct inode *, struct file * file, unsigned int cmd, unsigned long arg);
-     unsigned int (*poll)(struct file * file, poll_table *wait);
- 
--} nvidia_module_t;
-+} __do_const nvidia_module_t;
- 
- int nvidia_register_module(nvidia_module_t *);
- int nvidia_unregister_module(nvidia_module_t *);
-diff -urp work.orig/kernel/nvidia/nv.c work/kernel/nvidia/nv.c
---- work.orig/kernel/nvidia/nv.c	2016-11-27 21:56:50.395629748 +0100
-+++ work/kernel/nvidia/nv.c	2016-11-27 21:54:23.971706350 +0100
-@@ -666,7 +666,7 @@ int __init nvidia_init_module(void)
-     NV_SPIN_LOCK_INIT(&km_lock);
- #endif
- 
--    nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE(nvidia_stack_cache_name,
-+    nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE_USERCOPY(nvidia_stack_cache_name,
-                                                 nvidia_stack_t);
-     if (nvidia_stack_t_cache == NULL)
-     {
-diff -urp work.orig/kernel/nvidia/nv-chrdev.c work/kernel/nvidia/nv-chrdev.c
---- work.orig/kernel/nvidia/nv-chrdev.c	2016-11-27 21:56:50.395629748 +0100
-+++ work/kernel/nvidia/nv-chrdev.c	2016-11-27 21:54:23.971706350 +0100
-@@ -20,8 +20,6 @@ int nv_register_chrdev(void *param)
- {
-     nvidia_module_t *module = (nvidia_module_t *)param;
- 
--    module->instance = nv_module_instance;
--
-     return (nvidia_register_module(module));
- }
- 
-diff -urp work.orig/kernel/nvidia/nv-instance.c work/kernel/nvidia/nv-instance.c
---- work.orig/kernel/nvidia/nv-instance.c	2016-11-27 21:56:50.395629748 +0100
-+++ work/kernel/nvidia/nv-instance.c	2016-11-27 21:54:23.971706350 +0100
-@@ -51,6 +51,7 @@ struct pci_driver nv_pci_driver = {
- nvidia_module_t nv_fops = {
-     .owner       = THIS_MODULE,
-     .module_name = MODULE_NAME,
-+    .instance    = MODULE_INSTANCE_NUMBER,
-     .open        = nvidia_open,
-     .close       = nvidia_close,
-     .ioctl       = nvidia_ioctl,
-diff -urp work.orig/kernel/nvidia/nv-mmap.c work/kernel/nvidia/nv-mmap.c
---- work.orig/kernel/nvidia/nv-mmap.c	2016-11-27 21:56:50.395629748 +0100
-+++ work/kernel/nvidia/nv-mmap.c	2016-11-27 21:54:23.971706350 +0100
-@@ -102,12 +102,12 @@ nvidia_vma_release(struct vm_area_struct
- }
- 
- #if defined(NV_VM_OPERATIONS_STRUCT_HAS_ACCESS)
--static int
-+static ssize_t
- nvidia_vma_access(
-     struct vm_area_struct *vma,
-     unsigned long addr,
-     void *buffer,
--    int length,
-+    size_t length,
-     int write
- )
- {
-diff -urp work.orig/kernel/nvidia/nv-modeset-interface.c work/kernel/nvidia/nv-modeset-interface.c
---- work.orig/kernel/nvidia/nv-modeset-interface.c	2016-11-27 21:56:50.395629748 +0100
-+++ work/kernel/nvidia/nv-modeset-interface.c	2016-11-27 21:54:23.971706350 +0100
-@@ -100,10 +100,9 @@ static NvU32 nvidia_modeset_enumerate_gp
-     return count;
- }
- 
--NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops)
-+NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string)
- {
--    const nvidia_modeset_rm_ops_t local_rm_ops = {
--        .version_string = NV_VERSION_STRING,
-+    static const nvidia_modeset_rm_ops_t local_rm_ops = {
-         .system_info    = {
-             .allow_write_combining = NV_FALSE,
-         },
-@@ -116,17 +115,26 @@ NV_STATUS nvidia_get_rm_ops(nvidia_modes
-         .set_callbacks  = nvidia_modeset_set_callbacks,
-     };
- 
--    if (strcmp(rm_ops->version_string, NV_VERSION_STRING) != 0)
-+    static const nvidia_modeset_rm_ops_t local_rm_ops_wc = {
-+        .system_info    = {
-+            .allow_write_combining = NV_TRUE,
-+        },
-+        .alloc_stack    = nvidia_modeset_rm_ops_alloc_stack,
-+        .free_stack     = nvidia_modeset_rm_ops_free_stack,
-+        .enumerate_gpus = nvidia_modeset_enumerate_gpus,
-+        .open_gpu       = nvidia_dev_get,
-+        .close_gpu      = nvidia_dev_put,
-+        .op             = rm_kernel_rmapi_op, /* provided by nv-kernel.o */
-+        .set_callbacks  = nvidia_modeset_set_callbacks,
-+    };
-+
-+    if (strcmp(*version_string, NV_VERSION_STRING) != 0)
-     {
--        rm_ops->version_string = NV_VERSION_STRING;
-+        *version_string = NV_VERSION_STRING;
-         return NV_ERR_GENERIC;
-     }
- 
--    *rm_ops = local_rm_ops;
--
--    if (NV_ALLOW_WRITE_COMBINING(NV_MEMORY_TYPE_FRAMEBUFFER)) {
--        rm_ops->system_info.allow_write_combining = NV_TRUE;
--    }
-+    *rm_ops = NV_ALLOW_WRITE_COMBINING(NV_MEMORY_TYPE_FRAMEBUFFER) ? &local_rm_ops_wc : &local_rm_ops;
- 
-     return NV_OK;
- }
-diff -urp work.orig/kernel/nvidia-drm/nvidia-drm-drv.c work/kernel/nvidia-drm/nvidia-drm-drv.c
---- work.orig/kernel/nvidia-drm/nvidia-drm-drv.c	2016-11-27 21:56:50.395629748 +0100
-+++ work/kernel/nvidia-drm/nvidia-drm-drv.c	2016-11-27 21:54:23.971706350 +0100
-@@ -594,7 +594,7 @@ static const struct drm_ioctl_desc nv_dr
-                       DRM_CONTROL_ALLOW|DRM_RENDER_ALLOW|DRM_UNLOCKED),
- };
- 
--static struct drm_driver nv_drm_driver = {
-+static drm_driver_no_const nv_drm_driver __read_only = {
- 
-     .driver_features        = DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER,
- 
-@@ -654,6 +654,7 @@ static void nvidia_update_drm_driver_fea
-         return;
-     }
- 
-+    pax_open_kernel();
-     nv_drm_driver.driver_features |= DRIVER_MODESET | DRIVER_ATOMIC;
- 
-     nv_drm_driver.master_set       = nvidia_drm_master_set;
-@@ -664,6 +665,7 @@ static void nvidia_update_drm_driver_fea
-     nv_drm_driver.dumb_destroy     = drm_gem_dumb_destroy;
- 
-     nv_drm_driver.gem_vm_ops       = &nv_drm_gem_vma_ops;
-+    pax_close_kernel();
- #endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */
- }
- 
-diff -urp work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c work/kernel/nvidia-modeset/nvidia-modeset-linux.c
---- work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c	2016-11-27 21:56:50.395629748 +0100
-+++ work/kernel/nvidia-modeset/nvidia-modeset-linux.c	2016-11-27 21:54:23.971706350 +0100
-@@ -335,29 +335,28 @@ static void nvkms_resume(NvU32 gpuId)
-  * Interface with resman.
-  *************************************************************************/
- 
--static nvidia_modeset_rm_ops_t __rm_ops = { 0 };
-+static const nvidia_modeset_rm_ops_t *__rm_ops;
- static nvidia_modeset_callbacks_t nvkms_rm_callbacks = {
--    nvkms_suspend,
--    nvkms_resume
-+    .suspend = nvkms_suspend,
-+    .resume = nvkms_resume
- };
- 
- static int nvkms_alloc_rm(void)
- {
-     NV_STATUS nvstatus;
-     int ret;
-+    const char *version_string = NV_VERSION_STRING;
- 
--    __rm_ops.version_string = NV_VERSION_STRING;
--
--    nvstatus = nvidia_get_rm_ops(&__rm_ops);
-+    nvstatus = nvidia_get_rm_ops(&__rm_ops, &version_string);
- 
-     if (nvstatus != NV_OK) {
-         printk(KERN_ERR NVKMS_LOG_PREFIX "Version mismatch: "
-                "nvidia.ko(%s) nvidia-modeset.ko(%s)\n",
--               __rm_ops.version_string, NV_VERSION_STRING);
-+               version_string, NV_VERSION_STRING);
-         return -EINVAL;
-     }
- 
--    ret = __rm_ops.set_callbacks(&nvkms_rm_callbacks);
-+    ret = __rm_ops->set_callbacks(&nvkms_rm_callbacks);
-     if (ret < 0) {
-         printk(KERN_ERR NVKMS_LOG_PREFIX "Failed to register callbacks\n");
-         return ret;
-@@ -368,20 +367,20 @@ static int nvkms_alloc_rm(void)
- 
- static void nvkms_free_rm(void)
- {
--    __rm_ops.set_callbacks(NULL);
-+    __rm_ops->set_callbacks(NULL);
- }
- 
- void NVKMS_API_CALL nvkms_call_rm(void *ops)
- {
-     nvidia_modeset_stack_ptr stack = NULL;
- 
--    if (__rm_ops.alloc_stack(&stack) != 0) {
-+    if (__rm_ops->alloc_stack(&stack) != 0) {
-         return;
-     }
- 
--    __rm_ops.op(stack, ops);
-+    __rm_ops->op(stack, ops);
- 
--    __rm_ops.free_stack(stack);
-+    __rm_ops->free_stack(stack);
- }
- 
- /*************************************************************************
-@@ -705,13 +704,13 @@ NvBool NVKMS_API_CALL nvkms_open_gpu(NvU
-     nvidia_modeset_stack_ptr stack = NULL;
-     NvBool ret;
- 
--    if (__rm_ops.alloc_stack(&stack) != 0) {
-+    if (__rm_ops->alloc_stack(&stack) != 0) {
-         return NV_FALSE;
-     }
- 
--    ret = __rm_ops.open_gpu(gpuId, stack) == 0;
-+    ret = __rm_ops->open_gpu(gpuId, stack) == 0;
- 
--    __rm_ops.free_stack(stack);
-+    __rm_ops->free_stack(stack);
- 
-     return ret;
- }
-@@ -720,23 +719,23 @@ void NVKMS_API_CALL nvkms_close_gpu(NvU3
- {
-     nvidia_modeset_stack_ptr stack = NULL;
- 
--    if (__rm_ops.alloc_stack(&stack) != 0) {
-+    if (__rm_ops->alloc_stack(&stack) != 0) {
-         return;
-     }
- 
--    __rm_ops.close_gpu(gpuId, stack);
-+    __rm_ops->close_gpu(gpuId, stack);
- 
--    __rm_ops.free_stack(stack);
-+    __rm_ops->free_stack(stack);
- }
- 
- NvU32 NVKMS_API_CALL nvkms_enumerate_gpus(nv_gpu_info_t *gpu_info)
- {
--    return __rm_ops.enumerate_gpus(gpu_info);
-+    return __rm_ops->enumerate_gpus(gpu_info);
- }
- 
- NvBool NVKMS_API_CALL nvkms_allow_write_combining(void)
- {
--    return __rm_ops.system_info.allow_write_combining;
-+    return __rm_ops->system_info.allow_write_combining;
- }
- 
- /*************************************************************************
-diff -urp work.orig/kernel/nvidia-uvm/uvm8_global.c work/kernel/nvidia-uvm/uvm8_global.c
---- work.orig/kernel/nvidia-uvm/uvm8_global.c	2016-11-27 21:56:50.399642330 +0100
-+++ work/kernel/nvidia-uvm/uvm8_global.c	2016-11-27 21:54:23.975709978 +0100
-@@ -35,17 +35,17 @@
- #include "nv_uvm_interface.h"
- 
- uvm_global_t g_uvm_global;
--static struct UvmOpsUvmEvents g_exported_uvm8_ops;
-+static struct UvmOpsUvmEvents g_exported_uvm8_ops = {
-+    .startDevice = NULL,
-+    .stopDevice  = NULL,
-+    .isrTopHalf  = uvm8_isr_top_half,
-+};
- static bool g_ops_registered = false;
- 
- static NV_STATUS uvm8_register_callbacks(void)
- {
-     NV_STATUS status = NV_OK;
- 
--    g_exported_uvm8_ops.startDevice = NULL;
--    g_exported_uvm8_ops.stopDevice  = NULL;
--    g_exported_uvm8_ops.isrTopHalf  = uvm8_isr_top_half;
--
-     // Register the UVM callbacks with the main GPU driver:
-     status = uvm_rm_locked_call(nvUvmInterfaceRegisterUvmCallbacks(&g_exported_uvm8_ops));
-     if (status != NV_OK)
-diff -urp work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c
---- work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c	2016-11-27 21:56:50.399642330 +0100
-+++ work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c	2016-11-27 21:54:23.975709978 +0100
-@@ -368,7 +368,7 @@ void uvm_gpu_semaphore_set_payload(uvm_g
-     // being optimized out on non-SMP configs (we need them for interacting with
-     // the GPU correctly even on non-SMP).
-     mb();
--    ACCESS_ONCE(*semaphore->payload) = payload;
-+    ACCESS_ONCE_RW(*semaphore->payload) = payload;
- }
- 
- // This function is intended to catch channels which have been left dangling in
-diff -urp work.orig/kernel/nvidia-uvm/uvm8_hal.h work/kernel/nvidia-uvm/uvm8_hal.h
---- work.orig/kernel/nvidia-uvm/uvm8_hal.h	2016-11-27 21:56:50.399642330 +0100
-+++ work/kernel/nvidia-uvm/uvm8_hal.h	2016-11-27 21:54:23.975709978 +0100
-@@ -316,7 +316,7 @@ typedef struct
-         // fault_buffer_ops: id is a hardware class
-         uvm_fault_buffer_hal_t fault_buffer_ops;
-     } u;
--} uvm_hal_class_ops_t;
-+} __do_const uvm_hal_class_ops_t;
- 
- // When UVM next support is enabled support for future chips in the hal is
- // enabled by providing additional hal table entries below.
-diff -urp work.orig/kernel/nvidia-uvm/uvm8_mmu.h work/kernel/nvidia-uvm/uvm8_mmu.h
---- work.orig/kernel/nvidia-uvm/uvm8_mmu.h	2016-11-27 21:56:50.399642330 +0100
-+++ work/kernel/nvidia-uvm/uvm8_mmu.h	2016-11-27 21:54:23.975709978 +0100
-@@ -24,7 +24,6 @@
- #ifndef __UVM8_MMU_H__
- #define __UVM8_MMU_H__
- 
--#include "uvm8_forward_decl.h"
- #include "uvm8_hal_types.h"
- #include "uvm8_pmm_gpu.h"
- #include "uvmtypes.h"
-diff -urp work.orig/kernel/nvidia-uvm/uvm_common.c work/kernel/nvidia-uvm/uvm_common.c
---- work.orig/kernel/nvidia-uvm/uvm_common.c	2016-11-27 21:56:50.399642330 +0100
-+++ work/kernel/nvidia-uvm/uvm_common.c	2016-11-27 21:54:23.975709978 +0100
-@@ -42,7 +42,6 @@
- #define UVM_SPIN_LOOP_PRINT_TIMEOUT_SEC     30ULL
- 
- static dev_t g_uvmBaseDev;
--struct UvmOpsUvmEvents g_exportedUvmOps;
- 
- static char* uvm_driver_mode = "8";
- 
-diff -urp work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h work/kernel/nvidia-uvm/uvm_full_fault_buffer.h
---- work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h	2016-11-27 21:56:50.399642330 +0100
-+++ work/kernel/nvidia-uvm/uvm_full_fault_buffer.h	2016-11-27 21:54:23.975709978 +0100
-@@ -31,6 +31,7 @@
- #define _UVM_FULL_FAULT_BUFFER_H_
- 
- #include "uvmtypes.h"
-+#include "linux/compiler.h"
- 
- #define MAXWELL_FAULT_BUFFER_A (0xb069)
- #define MEM_RD32(a) (*(const volatile NvU32 *)(a)) 
-@@ -303,7 +304,7 @@ typedef struct
-     NvUvmControlPrefetch_t              controlPrefetch;
-     NvUvmTestFaultBufferOverflow_t      testFaultBufferOverflow;
-     NvUvmClearFaultBufferOverflow_t     clearFaultBufferOverflow;
--} UvmFaultBufferOps;
-+} __no_const UvmFaultBufferOps;
- 
- /******************************************************************************
-     uvmfull_fault_buffer_init
-diff -urp work.orig/kernel/nvidia-uvm/uvm_linux.h work/kernel/nvidia-uvm/uvm_linux.h
---- work.orig/kernel/nvidia-uvm/uvm_linux.h	2016-11-27 21:56:50.399642330 +0100
-+++ work/kernel/nvidia-uvm/uvm_linux.h	2016-11-27 21:54:23.975709978 +0100
-@@ -420,7 +420,7 @@ static inline NvU64 NV_GETTIME(void)
- 
- // WRITE_ONCE/READ_ONCE have incompatible definitions across versions, which produces warnings.
- // Therefore, we define our own macros
--#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE(x) = (val))
-+#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE_RW(x) = (val))
- #define UVM_READ_ONCE(x) ACCESS_ONCE(x)
- 
- // Added in 3.11

diff --git a/x11-drivers/nvidia-drivers/metadata.xml b/x11-drivers/nvidia-drivers/metadata.xml
index 9949b7e9525..acc86edc603 100644
--- a/x11-drivers/nvidia-drivers/metadata.xml
+++ b/x11-drivers/nvidia-drivers/metadata.xml
@@ -4,9 +4,6 @@
 	<maintainer type="person">
 		<email>jer@gentoo.org</email>
 	</maintainer>
-	<maintainer type="project">
-		<email>hardened@gentoo.org</email>
-	</maintainer>
 	<longdescription>
 		Nvidia provides different branches of its drivers for different batches of its
 		hardware. When maintaining these ebuilds or other ebuilds depending on them,
@@ -19,7 +16,6 @@
 		<flag name="X">Install the X.org driver, OpenGL libraries, XvMC libraries, and VDPAU libraries</flag>
 		<flag name="gtk3">Install nvidia-settings with support for GTK+ 3</flag>
 		<flag name="kms">Enable support for kernel mode setting (KMS)</flag>
-		<flag name="pax_kernel">PaX patches from the PaX project</flag>
 		<flag name="tools">Install additional tools such as nvidia-settings</flag>
 		<flag name="uvm">Install the Unified Memory kernel module (nvidia-uvm) for sharing memory between CPU and GPU in CUDA programs</flag>
 	</use>

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-340.107.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-340.107.ebuild
index 928ed785b26..e943e836d80 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-340.107.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-340.107.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -26,7 +26,7 @@ SRC_URI="
 LICENSE="GPL-2 NVIDIA-r2"
 SLOT="0/${PV%.*}"
 KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
-IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools +X"
+IUSE="acpi multilib kernel_FreeBSD kernel_linux static-libs +tools +X"
 RESTRICT="bindist mirror"
 EMULTILIB_PKG="true"
 
@@ -172,14 +172,6 @@ src_prepare() {
 #		convert_to_m "${NV_SRC}"/Makefile.kbuild
 	fi
 
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-331.13-pax-usercopy.patch
-		eapply "${FILESDIR}"/${PN}-337.12-pax-constify.patch
-	fi
-
 	local man_file
 	for man_file in "${NV_MAN}"/*1.gz; do
 		gunzip $man_file || die

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.87.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.87.ebuild
index 90b232bbe06..061933e4ec4 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.87.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.87.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -32,7 +32,7 @@ KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
 RESTRICT="bindist mirror"
 EMULTILIB_PKG="true"
 
-IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
+IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib static-libs +tools uvm wayland +X"
 REQUIRED_USE="
 	tools? ( X )
 	static-libs? ( tools )
@@ -177,13 +177,6 @@ pkg_setup() {
 }
 
 src_prepare() {
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-375.20-pax.patch
-	fi
-
 	local man_file
 	for man_file in "${NV_MAN}"/*1.gz; do
 		gunzip $man_file || die

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-410.93.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-410.93.ebuild
index b496478afc9..ef8a7466e6c 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-410.93.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-410.93.ebuild
@@ -27,7 +27,7 @@ KEYWORDS="-* amd64 ~amd64-fbsd"
 RESTRICT="bindist mirror"
 EMULTILIB_PKG="true"
 
-IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
+IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib static-libs +tools uvm wayland +X"
 REQUIRED_USE="
 	tools? ( X )
 	static-libs? ( tools )
@@ -170,13 +170,6 @@ pkg_setup() {
 }
 
 src_prepare() {
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-375.20-pax.patch
-	fi
-
 	local man_file
 	for man_file in "${NV_MAN}"/*1.gz; do
 		gunzip $man_file || die

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-415.25.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-415.25.ebuild
index b4dd340c748..102faff968e 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-415.25.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-415.25.ebuild
@@ -27,7 +27,7 @@ KEYWORDS="-* amd64 ~amd64-fbsd"
 RESTRICT="bindist mirror"
 EMULTILIB_PKG="true"
 
-IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
+IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib static-libs +tools uvm wayland +X"
 REQUIRED_USE="
 	tools? ( X )
 	static-libs? ( tools )
@@ -170,13 +170,6 @@ pkg_setup() {
 }
 
 src_prepare() {
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-375.20-pax.patch
-	fi
-
 	local man_file
 	for man_file in "${NV_MAN}"/*1.gz; do
 		gunzip $man_file || die

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-415.27.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-415.27.ebuild
index 93bdc175c38..d7395d2b6c6 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-415.27.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-415.27.ebuild
@@ -27,7 +27,7 @@ KEYWORDS="-* ~amd64 ~amd64-fbsd"
 RESTRICT="bindist mirror"
 EMULTILIB_PKG="true"
 
-IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
+IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib static-libs +tools uvm wayland +X"
 REQUIRED_USE="
 	tools? ( X )
 	static-libs? ( tools )
@@ -170,13 +170,6 @@ pkg_setup() {
 }
 
 src_prepare() {
-	if use pax_kernel; then
-		ewarn "Using PAX patches is not supported. You will be asked to"
-		ewarn "use a standard kernel should you have issues. Should you"
-		ewarn "need support with these patches, contact the PaX team."
-		eapply "${FILESDIR}"/${PN}-375.20-pax.patch
-	fi
-
 	local man_file
 	for man_file in "${NV_MAN}"/*1.gz; do
 		gunzip $man_file || die


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2019-10-22  9:17 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2019-10-22  9:17 UTC (permalink / raw
  To: gentoo-commits

commit:     aed27473c455465e20eff60f0b623a6914a1e268
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 22 09:11:51 2019 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Tue Oct 22 09:17:21 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aed27473

x11-drivers/nvidia-drivers: Fix conftest.sh locale expectations

conftest.sh in 440.* expects to find "$file: No such file or directory"
in compile test output for kernel headers, but with LC_ALL set, its
translations will not trigger that, resulting in false positives for
certain headers where the test intended to rule out false negatives.
Fix this by setting the default locale in conftest.sh.

Package-Manager: Portage-2.3.77, Repoman-2.3.17
Fixes: https://bugs.gentoo.org/698238
Signed-off-by: Jeroen Roovers <jer <AT> gentoo.org>

 .../nvidia-drivers/files/nvidia-drivers-440.26-locale.patch | 13 +++++++++++++
 x11-drivers/nvidia-drivers/nvidia-drivers-440.26.ebuild     |  3 +++
 2 files changed, 16 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-440.26-locale.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-440.26-locale.patch
new file mode 100644
index 00000000000..aa2a74349f2
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-440.26-locale.patch
@@ -0,0 +1,13 @@
+--- a/kernel/conftest.sh
++++ b/kernel/conftest.sh
+@@ -6,6 +6,10 @@
+ SCRIPTDIR=`dirname $0`
+ cd $SCRIPTDIR
+ 
++# translate_and_compile_header_files() expects the default locale
++# https://bugs.gentoo.org/698238
++export LC_ALL=C
++
+ CC="$1"
+ ARCH=$2
+ ISYSTEM=`$CC -print-file-name=include 2> /dev/null`

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-440.26.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-440.26.ebuild
index 2e87b035eec..529819532dc 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-440.26.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-440.26.ebuild
@@ -83,6 +83,9 @@ RDEPEND="
 "
 QA_PREBUILT="opt/* usr/lib*"
 S=${WORKDIR}/
+PATCHES=(
+	"${FILESDIR}"/${PN}-440.26-locale.patch
+)
 
 nvidia_drivers_versions_check() {
 	if use amd64 && has_multilib_profile && \


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2020-01-27 19:55 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2020-01-27 19:55 UTC (permalink / raw
  To: gentoo-commits

commit:     6f8cf8941216354dd5f962c9f56eaeb2a596cd40
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 27 19:48:14 2020 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Mon Jan 27 19:55:43 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6f8cf894

x11-drivers/nvidia-drivers: Fix CFLAGS=-fno-common

Package-Manager: Portage-2.3.85, Repoman-2.3.20
Closes: https://bugs.gentoo.org/706742
Signed-off-by: Jeroen Roovers <jer <AT> gentoo.org>

 .../files/nvidia-settings-fno-common.patch         | 22 ++++++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-340.108.ebuild   |  9 +++++++++
 .../nvidia-drivers-390.132-r1.ebuild               |  8 ++++++--
 .../nvidia-drivers/nvidia-drivers-430.64-r1.ebuild |  8 ++++++--
 .../nvidia-drivers/nvidia-drivers-435.21-r1.ebuild |  8 ++++++--
 .../nvidia-drivers/nvidia-drivers-440.44-r1.ebuild |  8 ++++++--
 6 files changed, 55 insertions(+), 8 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-settings-fno-common.patch b/x11-drivers/nvidia-drivers/files/nvidia-settings-fno-common.patch
new file mode 100644
index 00000000000..06e046ff61d
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-settings-fno-common.patch
@@ -0,0 +1,22 @@
+--- a/nvidia-settings-@PV@/src/gtk+-2.x/ctkvdpau.c
++++ b/nvidia-settings-@PV@/src/gtk+-2.x/ctkvdpau.c
+@@ -103,6 +103,8 @@
+ const gchar* __video_mixer_attribute_help =
+ "This shows the video mixer attributes and any applicable ranges.";
+ 
++struct VDPAUDeviceImpl VDPAUDeviceFunctions;
++
+ static int queryOutputSurface(CtkVDPAU *ctk_vdpau, VdpDevice device,
+                               VdpGetProcAddress *getProcAddress);
+ 
+--- a/nvidia-settings-@PV@/src/gtk+-2.x/ctkvdpau.h
++++ b/nvidia-settings-@PV@/src/gtk+-2.x/ctkvdpau.h
+@@ -46,7 +46,7 @@
+     (G_TYPE_INSTANCE_GET_CLASS ((obj), CTK_TYPE_VDPAU, CtkVDPAUClass))
+ 
+ 
+-struct VDPAUDeviceImpl {
++extern struct VDPAUDeviceImpl {
+ 
+     VdpGetErrorString *GetErrorString;
+     VdpGetProcAddress *GetProcAddress;

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-340.108.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-340.108.ebuild
index eb2eff41ca7..103ebfe12f1 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-340.108.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-340.108.ebuild
@@ -142,6 +142,15 @@ src_prepare() {
 		gunzip $man_file || die
 	done
 
+	if use tools; then
+		cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die
+		sed -i \
+			-e "s:@PV@:${PV}:g" \
+			"${WORKDIR}"/nvidia-settings-fno-common.patch \
+			|| die
+		eapply "${WORKDIR}"/nvidia-settings-fno-common.patch
+	fi
+
 	# Allow user patches so they can support RC kernels and whatever else
 	eapply_user
 }

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.132-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.132-r1.ebuild
index b47a737853e..4105f905174 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.132-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.132-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -151,10 +151,14 @@ src_prepare() {
 	done
 
 	if use tools; then
+		cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die
 		cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
 		sed -i \
 			-e "s:@PV@:${PV}:g" \
-			"${WORKDIR}"/nvidia-settings-linker.patch || die
+			"${WORKDIR}"/nvidia-settings-fno-common.patch \
+			"${WORKDIR}"/nvidia-settings-linker.patch \
+			|| die
+		eapply "${WORKDIR}"/nvidia-settings-fno-common.patch
 		eapply "${WORKDIR}"/nvidia-settings-linker.patch
 	fi
 

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-430.64-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-430.64-r1.ebuild
index e6e492ff959..3703f7a20d3 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-430.64-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-430.64-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -149,10 +149,14 @@ src_prepare() {
 	done
 
 	if use tools; then
+		cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die
 		cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
 		sed -i \
 			-e "s:@PV@:${PV}:g" \
-			"${WORKDIR}"/nvidia-settings-linker.patch || die
+			"${WORKDIR}"/nvidia-settings-fno-common.patch \
+			"${WORKDIR}"/nvidia-settings-linker.patch \
+			|| die
+		eapply "${WORKDIR}"/nvidia-settings-fno-common.patch
 		eapply "${WORKDIR}"/nvidia-settings-linker.patch
 	fi
 

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-435.21-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-435.21-r1.ebuild
index e8abec24def..33342e4c716 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-435.21-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-435.21-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -153,10 +153,14 @@ src_prepare() {
 	done
 
 	if use tools; then
+		cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die
 		cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
 		sed -i \
 			-e "s:@PV@:${PV}:g" \
-			"${WORKDIR}"/nvidia-settings-linker.patch || die
+			"${WORKDIR}"/nvidia-settings-fno-common.patch \
+			"${WORKDIR}"/nvidia-settings-linker.patch \
+			|| die
+		eapply "${WORKDIR}"/nvidia-settings-fno-common.patch
 		eapply "${WORKDIR}"/nvidia-settings-linker.patch
 	fi
 

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-440.44-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-440.44-r1.ebuild
index 6be7d51e602..2951a064fcd 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-440.44-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-440.44-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -156,10 +156,14 @@ src_prepare() {
 	done
 
 	if use tools; then
+		cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die
 		cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
 		sed -i \
 			-e "s:@PV@:${PV}:g" \
-			"${WORKDIR}"/nvidia-settings-linker.patch || die
+			"${WORKDIR}"/nvidia-settings-fno-common.patch \
+			"${WORKDIR}"/nvidia-settings-linker.patch \
+			|| die
+		eapply "${WORKDIR}"/nvidia-settings-fno-common.patch
 		eapply "${WORKDIR}"/nvidia-settings-linker.patch
 	fi
 


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2020-04-29  8:08 Jeroen Roovers
  0 siblings, 0 replies; 46+ messages in thread
From: Jeroen Roovers @ 2020-04-29  8:08 UTC (permalink / raw
  To: gentoo-commits

commit:     613c3dc0e336ee65e262d082084d9a05da84a849
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 29 08:07:49 2020 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Wed Apr 29 08:08:19 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=613c3dc0

x11-drivers/nvidia-drivers: Install systemd service files

Package-Manager: Portage-2.3.99, Repoman-2.3.22
Bug: https://bugs.gentoo.org/689588
Signed-off-by: Jeroen Roovers <jer <AT> gentoo.org>

 x11-drivers/nvidia-drivers/files/nvidia-430.conf   |  20 +
 .../nvidia-drivers/nvidia-drivers-430.64-r3.ebuild | 566 ++++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-435.21-r3.ebuild | 584 ++++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-440.82-r2.ebuild | 590 +++++++++++++++++++++
 4 files changed, 1760 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-430.conf b/x11-drivers/nvidia-drivers/files/nvidia-430.conf
new file mode 100644
index 00000000000..173513777aa
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-430.conf
@@ -0,0 +1,20 @@
+# Nvidia drivers support
+alias char-major-195 nvidia
+alias /dev/nvidiactl char-major-195
+
+# To tweak the driver the following options can be used, note that
+# you should be careful, as it could cause instability!! For more 
+# options see /usr/share/doc/PACKAGE/README 
+#
+# !!! SECURITY WARNING !!!
+# DO NOT MODIFY OR REMOVE THE DEVICE FILE RELATED OPTIONS UNLESS YOU KNOW
+# WHAT YOU ARE DOING.
+# ONLY ADD TRUSTED USERS TO THE VIDEO GROUP, THESE USERS MAY BE ABLE TO CRASH,
+# COMPROMISE, OR IRREPARABLY DAMAGE THE MACHINE.
+options nvidia \
+	NVreg_DeviceFileGID=VIDEOGID \
+	NVreg_DeviceFileMode=432 \
+	NVreg_DeviceFileUID=0 \
+	NVreg_ModifyDeviceFiles=1 \
+	NVreg_PreserveVideoMemoryAllocations=1 \
+	NVreg_TemporaryFilePath=/tmp

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-430.64-r3.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-430.64-r3.ebuild
new file mode 100644
index 00000000000..1be19616885
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-430.64-r3.ebuild
@@ -0,0 +1,566 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \
+	nvidia-driver portability systemd toolchain-funcs unpacker udev
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="https://www.nvidia.com/"
+
+AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
+ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
+
+NV_URI="https://us.download.nvidia.com/XFree86/"
+SRC_URI="
+	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
+	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
+	tools? (
+		https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
+	)
+"
+
+EMULTILIB_PKG="true"
+KEYWORDS="-* ~amd64"
+LICENSE="GPL-2 NVIDIA-r2"
+SLOT="0/${PV%.*}"
+
+IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib static-libs +tools uvm wayland +X"
+REQUIRED_USE="
+	tools? ( X )
+	static-libs? ( tools )
+"
+
+COMMON="
+	driver? ( kernel_linux? ( acct-group/video ) )
+	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		dev-libs/jansson
+		gtk3? (
+			x11-libs/gtk+:3
+		)
+		x11-libs/cairo
+		x11-libs/gdk-pixbuf[X]
+		x11-libs/gtk+:2
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXrandr
+		x11-libs/libXv
+		x11-libs/libXxf86vm
+		x11-libs/pango[X]
+	)
+	X? (
+		>=app-eselect/eselect-opengl-1.0.9
+		app-misc/pax-utils
+	)
+"
+DEPEND="
+	${COMMON}
+	kernel_linux? ( virtual/linux-sources )
+	tools? ( sys-apps/dbus )
+"
+RDEPEND="
+	${COMMON}
+	acpi? ( sys-power/acpid )
+	tools? ( !media-video/nvidia-settings )
+	uvm? ( >=virtual/opencl-3 )
+	wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
+	X? (
+		<x11-base/xorg-server-1.20.99:=
+		>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
+		>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
+		>=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
+		sys-libs/zlib[${MULTILIB_USEDEP}]
+	)
+"
+QA_PREBUILT="opt/* usr/lib*"
+S=${WORKDIR}/
+NV_KV_MAX_PLUS="5.5"
+CONFIG_CHECK="!DEBUG_MUTEXES ~!I2C_NVIDIA_GPU ~!LOCKDEP ~MTRR ~SYSVIPC ~ZONE_DMA"
+
+pkg_pretend() {
+	nvidia-driver_check
+}
+
+pkg_setup() {
+	nvidia-driver_check
+
+	# try to turn off distcc and ccache for people that have a problem with it
+	export DISTCC_DISABLE=1
+	export CCACHE_DISABLE=1
+
+	if use driver && use kernel_linux; then
+		MODULE_NAMES="nvidia(video:${S}/kernel)"
+		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
+		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
+
+		# This needs to run after MODULE_NAMES (so that the eclass checks
+		# whether the kernel supports loadable modules) but before BUILD_PARAMS
+		# is set (so that KV_DIR is populated).
+		linux-mod_pkg_setup
+
+		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
+		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
+
+		# linux-mod_src_compile calls set_arch_to_kernel, which
+		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
+		# expects x86_64 or i386 and then converts it to x86
+		# later on in the build process
+		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
+	fi
+
+	if use kernel_linux && kernel_is lt 2 6 9; then
+		eerror "You must build this against 2.6.9 or higher kernels."
+	fi
+
+	# set variables to where files are in the package structure
+	if use kernel_FreeBSD; then
+		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
+		NV_DOC="${S}/doc"
+		NV_OBJ="${S}/obj"
+		NV_SRC="${S}/src"
+		NV_MAN="${S}/x11/man"
+		NV_X11="${S}/obj"
+		NV_SOVER=1
+	elif use kernel_linux; then
+		NV_DOC="${S}"
+		NV_OBJ="${S}"
+		NV_SRC="${S}/kernel"
+		NV_MAN="${S}"
+		NV_X11="${S}"
+		NV_SOVER=${PV}
+	else
+		die "Could not determine proper NVIDIA package"
+	fi
+}
+
+src_configure() {
+	tc-export AR CC LD
+
+	default
+}
+
+src_prepare() {
+	local man_file
+	for man_file in "${NV_MAN}"/*1.gz; do
+		gunzip $man_file || die
+	done
+
+	if use tools; then
+		cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die
+		cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
+		sed -i \
+			-e "s:@PV@:${PV}:g" \
+			"${WORKDIR}"/nvidia-settings-fno-common.patch \
+			"${WORKDIR}"/nvidia-settings-linker.patch \
+			|| die
+		eapply "${WORKDIR}"/nvidia-settings-fno-common.patch
+		eapply "${WORKDIR}"/nvidia-settings-linker.patch
+	fi
+
+	default
+
+	if ! [ -f nvidia_icd.json ]; then
+		cp nvidia_icd.json.template nvidia_icd.json || die
+		sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
+	fi
+}
+
+src_compile() {
+	cd "${NV_SRC}"
+	if use kernel_FreeBSD; then
+		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
+			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
+	elif use driver && use kernel_linux; then
+		BUILD_TARGETS=module linux-mod_src_compile \
+			KERNELRELEASE="${KV_FULL}" \
+			src="${KERNEL_DIR}"
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
+			DO_STRIP= \
+			LIBDIR="$(get_libdir)" \
+			NVLD="$(tc-getLD)" \
+			NV_VERBOSE=1 \
+			OUTPUTDIR=. \
+			RANLIB="$(tc-getRANLIB)"
+
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			DO_STRIP= \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LIBDIR="$(get_libdir)" \
+			NVLD="$(tc-getLD)" \
+			NVML_ENABLED=0 \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			OUTPUTDIR=.
+	fi
+}
+
+# Install nvidia library:
+# the first parameter is the library to install
+# the second parameter is the provided soversion
+# the third parameter is the target directory if it is not /usr/lib
+donvidia() {
+	# Full path to library
+	nv_LIB="${1}"
+
+	# SOVER to use
+	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
+
+	# Where to install
+	nv_DEST="${2}"
+
+	# Get just the library name
+	nv_LIBNAME=$(basename "${nv_LIB}")
+
+	if [[ "${nv_DEST}" ]]; then
+		exeinto ${nv_DEST}
+		action="doexe"
+	else
+		nv_DEST="/usr/$(get_libdir)"
+		action="dolib.so"
+	fi
+
+	# Install the library
+	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
+
+	# If the library has a SONAME and SONAME does not match the library name,
+	# then we need to create a symlink
+	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
+		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER}
+	fi
+
+	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so}
+}
+
+src_install() {
+	if use driver && use kernel_linux; then
+		linux-mod_src_install
+
+		# Add the aliases
+		# This file is tweaked with the appropriate video group in
+		# pkg_preinst, see bug #491414
+		insinto /etc/modprobe.d
+		newins "${FILESDIR}"/nvidia-430.conf nvidia.conf
+
+		if use uvm; then
+			doins "${FILESDIR}"/nvidia-rmmod.conf
+			udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules
+		else
+			sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \
+				> "${T}"/nvidia-rmmod.conf || die
+			doins "${T}"/nvidia-rmmod.conf
+		fi
+
+		# Ensures that our device nodes are created when not using X
+		exeinto "$(get_udevdir)"
+		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
+		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
+	elif use kernel_FreeBSD; then
+		if use x86-fbsd; then
+			insinto /boot/modules
+			doins "${S}/src/nvidia.kld"
+		fi
+
+		exeinto /boot/modules
+		doexe "${S}/src/nvidia.ko"
+	fi
+
+	# NVIDIA kernel <-> userspace driver config lib
+	donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
+
+	# NVIDIA framebuffer capture library
+	donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
+
+	# NVIDIA video encode/decode <-> CUDA
+	if use kernel_linux; then
+		donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
+		donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
+	fi
+
+	if use X; then
+		# Xorg DDX driver
+		insinto /usr/$(get_libdir)/xorg/modules/drivers
+		doins ${NV_X11}/nvidia_drv.so
+
+		# Xorg GLX driver
+		donvidia ${NV_X11}/libglxserver_nvidia.so.${NV_SOVER} \
+			/usr/$(get_libdir)/xorg/modules/extensions
+
+		# Xorg nvidia.conf
+		if has_version '>=x11-base/xorg-server-1.16'; then
+			insinto /usr/share/X11/xorg.conf.d
+			newins {,50-}nvidia-drm-outputclass.conf
+		fi
+
+		insinto /usr/share/glvnd/egl_vendor.d
+		doins ${NV_X11}/10_nvidia.json
+	fi
+
+	if use wayland; then
+		insinto /usr/share/egl/egl_external_platform.d
+		doins ${NV_X11}/10_nvidia_wayland.json
+	fi
+
+	# OpenCL ICD for NVIDIA
+	if use kernel_linux; then
+		insinto /etc/OpenCL/vendors
+		doins ${NV_OBJ}/nvidia.icd
+	fi
+
+	# Helper Apps
+	exeinto /opt/bin/
+
+	if use X; then
+		doexe ${NV_OBJ}/nvidia-xconfig
+
+		insinto /etc/vulkan/icd.d
+		doins nvidia_icd.json
+	fi
+
+	if use kernel_linux; then
+		doexe ${NV_OBJ}/nvidia-cuda-mps-control
+		doexe ${NV_OBJ}/nvidia-cuda-mps-server
+		doexe ${NV_OBJ}/nvidia-debugdump
+		doexe ${NV_OBJ}/nvidia-persistenced
+		doexe ${NV_OBJ}/nvidia-smi
+
+		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
+		doexe ${NV_OBJ}/nvidia-modprobe
+		fowners root:video /opt/bin/nvidia-modprobe
+		fperms 4710 /opt/bin/nvidia-modprobe
+		dosym /{opt,usr}/bin/nvidia-modprobe
+
+		doman nvidia-cuda-mps-control.1
+		doman nvidia-modprobe.1
+		doman nvidia-persistenced.1
+		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
+		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
+		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/ \
+			DESTDIR="${D}" \
+			DO_STRIP= \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LIBDIR="${D}/usr/$(get_libdir)" \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			OUTPUTDIR=. \
+			PREFIX=/usr \
+			install
+
+		if use static-libs; then
+			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
+
+			insinto /usr/include/NVCtrl
+			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
+		fi
+
+		insinto /usr/share/nvidia/
+		doins nvidia-application-profiles-${PV}-key-documentation
+
+		insinto /etc/nvidia
+		newins \
+			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
+
+		# There is no icon in the FreeBSD tarball.
+		use kernel_FreeBSD || \
+			doicon ${NV_OBJ}/nvidia-settings.png
+
+		domenu "${FILESDIR}"/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+	fi
+
+	dobin ${NV_OBJ}/nvidia-bug-report.sh
+
+	systemd_dounit *.service
+	dobin nvidia-sleep.sh
+
+	if has_multilib_profile && use multilib; then
+		local OABI=${ABI}
+		for ABI in $(get_install_abis); do
+			src_install-libs
+		done
+		ABI=${OABI}
+		unset OABI
+	else
+		src_install-libs
+	fi
+
+	is_final_abi || die "failed to iterate through all ABIs"
+
+	# Documentation
+	if use kernel_FreeBSD; then
+		dodoc "${NV_DOC}/README"
+		use X && doman "${NV_MAN}"/nvidia-xconfig.1
+		use tools && doman "${NV_MAN}"/nvidia-settings.1
+	else
+		# Docs
+		newdoc "${NV_DOC}/README.txt" README
+		dodoc "${NV_DOC}/NVIDIA_Changelog"
+		doman "${NV_MAN}"/nvidia-smi.1
+		use X && doman "${NV_MAN}"/nvidia-xconfig.1
+		use tools && doman "${NV_MAN}"/nvidia-settings.1
+		doman "${NV_MAN}"/nvidia-cuda-mps-control.1
+	fi
+
+	readme.gentoo_create_doc
+
+	docinto html
+	dodoc -r ${NV_DOC}/html/*
+}
+
+src_install-libs() {
+	local inslibdir=$(get_libdir)
+	local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
+	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
+	local nv_libdir="${NV_OBJ}"
+
+	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
+		nv_libdir="${NV_OBJ}"/32
+	fi
+
+	if use X; then
+		NV_GLX_LIBRARIES=(
+			"libEGL.so.$(usex compat ${NV_SOVER} 1.1.0) ${GL_ROOT}"
+			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGL.so.$(usex compat ${NV_SOVER} 1.7.0) ${GL_ROOT}"
+			"libGLESv1_CM.so.1.2.0 ${GL_ROOT}"
+			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLESv2.so.2.1.0 ${GL_ROOT}"
+			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLX.so.0 ${GL_ROOT}"
+			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLdispatch.so.0 ${GL_ROOT}"
+			"libOpenCL.so.1.0.0 ${CL_ROOT}"
+			"libOpenGL.so.0 ${GL_ROOT}"
+			"libcuda.so.${NV_SOVER}"
+			"libnvcuvid.so.${NV_SOVER}"
+			"libnvidia-compiler.so.${NV_SOVER}"
+			"libnvidia-eglcore.so.${NV_SOVER}"
+			"libnvidia-encode.so.${NV_SOVER}"
+			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
+			"libnvidia-fbc.so.${NV_SOVER}"
+			"libnvidia-glcore.so.${NV_SOVER}"
+			"libnvidia-glsi.so.${NV_SOVER}"
+			"libnvidia-glvkspirv.so.${NV_SOVER}"
+			"libnvidia-ifr.so.${NV_SOVER}"
+			"libnvidia-opencl.so.${NV_SOVER}"
+			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
+			"libvdpau_nvidia.so.${NV_SOVER}"
+		)
+
+		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-egl-wayland.so.1.1.2"
+			)
+		fi
+
+		if use kernel_FreeBSD; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-ml.so.${NV_SOVER}"
+				"libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-cbl.so.${NV_SOVER}"
+				"libnvidia-rtcore.so.${NV_SOVER}"
+				"libnvoptix.so.${NV_SOVER}"
+			)
+		fi
+
+		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
+			donvidia "${nv_libdir}"/${NV_LIB}
+		done
+	fi
+}
+
+pkg_preinst() {
+	if use driver && use kernel_linux; then
+		linux-mod_pkg_preinst
+
+		local videogroup="$(getent group video | cut -d ':' -f 3)"
+		if [ -z "${videogroup}" ]; then
+			eerror "Failed to determine the video group gid"
+			die "Failed to determine the video group gid"
+		else
+			sed -i \
+				-e "s:PACKAGE:${PF}:g" \
+				-e "s:VIDEOGID:${videogroup}:" \
+				"${D}"/etc/modprobe.d/nvidia.conf || die
+		fi
+	fi
+
+	# Clean the dynamic libGL stuff's home to ensure
+	# we dont have stale libs floating around
+	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
+		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
+	fi
+	# Make sure we nuke the old nvidia-glx's env.d file
+	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
+		rm -f "${ROOT}"/etc/env.d/09nvidia
+	fi
+}
+
+pkg_postinst() {
+	use driver && use kernel_linux && linux-mod_pkg_postinst
+
+	# Switch to the nvidia implementation
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
+
+	readme.gentoo_print_elog
+
+	if ! use X; then
+		elog "You have elected to not install the X.org driver. Along with"
+		elog "this the OpenGL libraries and VDPAU libraries were not"
+		elog "installed. Additionally, once the driver is loaded your card"
+		elog "and fan will run at max speed which may not be desirable."
+		elog "Use the 'nvidia-smi' init script to have your card and fan"
+		elog "speed scale appropriately."
+		elog
+	fi
+	if ! use tools; then
+		elog "USE=tools controls whether the nvidia-settings application"
+		elog "is installed. If you would like to use it, enable that"
+		elog "flag and re-emerge this ebuild. Optionally you can install"
+		elog "media-video/nvidia-settings"
+		elog
+	fi
+
+	elog "To enable nvidia sleep services under systemd, run these commands:"
+	elog "	systemctl enable nvidia-suspend.service"
+	elog "	systemctl enable nvidia-hibernate.service"
+	elog "	systemctl enable nvidia-resume.service"
+	elog "Set the NVreg_TemporaryFilePath kernel module parameter to a"
+	elog "suitable path in case the default of /tmp does not work for you"
+	elog "For more information see:"
+	elog "${ROOT}/usr/share/doc/${PF}/html/powermanagement.html"
+}
+
+pkg_prerm() {
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}
+
+pkg_postrm() {
+	use driver && use kernel_linux && linux-mod_pkg_postrm
+	use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-435.21-r3.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-435.21-r3.ebuild
new file mode 100644
index 00000000000..6f6ad537deb
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-435.21-r3.ebuild
@@ -0,0 +1,584 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \
+	nvidia-driver portability systemd toolchain-funcs unpacker udev
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="https://www.nvidia.com/"
+
+AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
+ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
+
+NV_URI="https://us.download.nvidia.com/XFree86/"
+SRC_URI="
+	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
+	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
+	tools? (
+		https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
+	)
+"
+
+EMULTILIB_PKG="true"
+KEYWORDS="-* ~amd64"
+LICENSE="GPL-2 NVIDIA-r2"
+SLOT="0/${PV%.*}"
+
+IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms +libglvnd multilib static-libs +tools uvm wayland +X"
+REQUIRED_USE="
+	tools? ( X )
+	static-libs? ( tools )
+"
+
+COMMON="
+	driver? ( kernel_linux? ( acct-group/video ) )
+	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		dev-libs/jansson
+		gtk3? (
+			x11-libs/gtk+:3
+		)
+		x11-libs/cairo
+		x11-libs/gdk-pixbuf[X]
+		x11-libs/gtk+:2
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXrandr
+		x11-libs/libXv
+		x11-libs/libXxf86vm
+		x11-libs/pango[X]
+	)
+	X? (
+		!libglvnd? ( >=app-eselect/eselect-opengl-1.0.9 )
+		libglvnd? (
+			media-libs/libglvnd[${MULTILIB_USEDEP}]
+			!app-eselect/eselect-opengl
+		)
+		app-misc/pax-utils
+	)
+"
+DEPEND="
+	${COMMON}
+	kernel_linux? ( virtual/linux-sources )
+	tools? ( sys-apps/dbus )
+"
+RDEPEND="
+	${COMMON}
+	acpi? ( sys-power/acpid )
+	tools? ( !media-video/nvidia-settings )
+	uvm? ( >=virtual/opencl-3 )
+	wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
+	X? (
+		<x11-base/xorg-server-1.20.99:=
+		>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
+		>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
+		>=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
+		sys-libs/zlib[${MULTILIB_USEDEP}]
+	)
+"
+QA_PREBUILT="opt/* usr/lib*"
+S=${WORKDIR}/
+NV_KV_MAX_PLUS="5.4"
+CONFIG_CHECK="!DEBUG_MUTEXES ~!I2C_NVIDIA_GPU ~!LOCKDEP ~MTRR ~SYSVIPC ~ZONE_DMA"
+
+pkg_pretend() {
+	nvidia-driver_check
+}
+
+pkg_setup() {
+	nvidia-driver_check
+
+	# try to turn off distcc and ccache for people that have a problem with it
+	export DISTCC_DISABLE=1
+	export CCACHE_DISABLE=1
+
+	if use driver && use kernel_linux; then
+		MODULE_NAMES="nvidia(video:${S}/kernel)"
+		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
+		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
+
+		# This needs to run after MODULE_NAMES (so that the eclass checks
+		# whether the kernel supports loadable modules) but before BUILD_PARAMS
+		# is set (so that KV_DIR is populated).
+		linux-mod_pkg_setup
+
+		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
+		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
+
+		# linux-mod_src_compile calls set_arch_to_kernel, which
+		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
+		# expects x86_64 or i386 and then converts it to x86
+		# later on in the build process
+		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
+	fi
+
+	if use kernel_linux && kernel_is lt 2 6 9; then
+		eerror "You must build this against 2.6.9 or higher kernels."
+	fi
+
+	# set variables to where files are in the package structure
+	if use kernel_FreeBSD; then
+		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
+		NV_DOC="${S}/doc"
+		NV_OBJ="${S}/obj"
+		NV_SRC="${S}/src"
+		NV_MAN="${S}/x11/man"
+		NV_X11="${S}/obj"
+		NV_SOVER=1
+	elif use kernel_linux; then
+		NV_DOC="${S}"
+		NV_OBJ="${S}"
+		NV_SRC="${S}/kernel"
+		NV_MAN="${S}"
+		NV_X11="${S}"
+		NV_SOVER=${PV}
+	else
+		die "Could not determine proper NVIDIA package"
+	fi
+}
+
+src_configure() {
+	tc-export AR CC LD
+
+	default
+}
+
+src_prepare() {
+	local man_file
+	for man_file in "${NV_MAN}"/*1.gz; do
+		gunzip $man_file || die
+	done
+
+	if use tools; then
+		cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die
+		cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
+		sed -i \
+			-e "s:@PV@:${PV}:g" \
+			"${WORKDIR}"/nvidia-settings-fno-common.patch \
+			"${WORKDIR}"/nvidia-settings-linker.patch \
+			|| die
+		eapply "${WORKDIR}"/nvidia-settings-fno-common.patch
+		eapply "${WORKDIR}"/nvidia-settings-linker.patch
+	fi
+
+	default
+
+	if ! [ -f nvidia_icd.json ]; then
+		cp nvidia_icd.json.template nvidia_icd.json || die
+		sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
+	fi
+}
+
+src_compile() {
+	cd "${NV_SRC}"
+	if use kernel_FreeBSD; then
+		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
+			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
+	elif use driver && use kernel_linux; then
+		BUILD_TARGETS=module linux-mod_src_compile \
+			KERNELRELEASE="${KV_FULL}" \
+			src="${KERNEL_DIR}"
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
+			DO_STRIP= \
+			LIBDIR="$(get_libdir)" \
+			NVLD="$(tc-getLD)" \
+			NV_VERBOSE=1 \
+			OUTPUTDIR=. \
+			RANLIB="$(tc-getRANLIB)"
+
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			DO_STRIP= \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LIBDIR="$(get_libdir)" \
+			NVLD="$(tc-getLD)" \
+			NVML_ENABLED=0 \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			OUTPUTDIR=.
+	fi
+}
+
+# Install nvidia library:
+# the first parameter is the library to install
+# the second parameter is the provided soversion
+# the third parameter is the target directory if it is not /usr/lib
+donvidia() {
+	# Full path to library
+	nv_LIB="${1}"
+
+	# SOVER to use
+	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
+
+	# Where to install
+	nv_DEST="${2}"
+
+	# Get just the library name
+	nv_LIBNAME=$(basename "${nv_LIB}")
+
+	if [[ "${nv_DEST}" ]]; then
+		exeinto ${nv_DEST}
+		action="doexe"
+	else
+		nv_DEST="/usr/$(get_libdir)"
+		action="dolib.so"
+	fi
+
+	# Install the library
+	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
+
+	# If the library has a SONAME and SONAME does not match the library name,
+	# then we need to create a symlink
+	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
+		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER}
+	fi
+
+	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so}
+}
+
+src_install() {
+	if use driver && use kernel_linux; then
+		linux-mod_src_install
+
+		# Add the aliases
+		# This file is tweaked with the appropriate video group in
+		# pkg_preinst, see bug #491414
+		insinto /etc/modprobe.d
+		newins "${FILESDIR}"/nvidia-430.conf nvidia.conf
+
+		if use uvm; then
+			doins "${FILESDIR}"/nvidia-rmmod.conf
+			udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules
+		else
+			sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \
+				> "${T}"/nvidia-rmmod.conf || die
+			doins "${T}"/nvidia-rmmod.conf
+		fi
+
+		# Ensures that our device nodes are created when not using X
+		exeinto "$(get_udevdir)"
+		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
+		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
+	elif use kernel_FreeBSD; then
+		if use x86-fbsd; then
+			insinto /boot/modules
+			doins "${S}/src/nvidia.kld"
+		fi
+
+		exeinto /boot/modules
+		doexe "${S}/src/nvidia.ko"
+	fi
+
+	# NVIDIA kernel <-> userspace driver config lib
+	donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
+
+	# NVIDIA framebuffer capture library
+	donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
+
+	# NVIDIA video encode/decode <-> CUDA
+	if use kernel_linux; then
+		donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
+		donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
+	fi
+
+	if use X; then
+		# Xorg DDX driver
+		insinto /usr/$(get_libdir)/xorg/modules/drivers
+		doins ${NV_X11}/nvidia_drv.so
+
+		# Xorg GLX driver
+		donvidia ${NV_X11}/libglxserver_nvidia.so.${NV_SOVER} \
+			/usr/$(get_libdir)/xorg/modules/extensions
+
+		# Xorg nvidia.conf
+		if has_version '>=x11-base/xorg-server-1.16'; then
+			insinto /usr/share/X11/xorg.conf.d
+			newins {,50-}nvidia-drm-outputclass.conf
+		fi
+
+		insinto /usr/share/glvnd/egl_vendor.d
+		doins ${NV_X11}/10_nvidia.json
+	fi
+
+	if use wayland; then
+		insinto /usr/share/egl/egl_external_platform.d
+		doins ${NV_X11}/10_nvidia_wayland.json
+	fi
+
+	# OpenCL ICD for NVIDIA
+	if use kernel_linux; then
+		insinto /etc/OpenCL/vendors
+		doins ${NV_OBJ}/nvidia.icd
+	fi
+
+	# Helper Apps
+	exeinto /opt/bin/
+
+	if use X; then
+		doexe ${NV_OBJ}/nvidia-xconfig
+
+		insinto /etc/vulkan/icd.d
+		doins nvidia_icd.json
+	fi
+
+	if use kernel_linux; then
+		doexe ${NV_OBJ}/nvidia-cuda-mps-control
+		doexe ${NV_OBJ}/nvidia-cuda-mps-server
+		doexe ${NV_OBJ}/nvidia-debugdump
+		doexe ${NV_OBJ}/nvidia-persistenced
+		doexe ${NV_OBJ}/nvidia-smi
+
+		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
+		doexe ${NV_OBJ}/nvidia-modprobe
+		fowners root:video /opt/bin/nvidia-modprobe
+		fperms 4710 /opt/bin/nvidia-modprobe
+		dosym /{opt,usr}/bin/nvidia-modprobe
+
+		doman nvidia-cuda-mps-control.1
+		doman nvidia-modprobe.1
+		doman nvidia-persistenced.1
+		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
+		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
+		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/ \
+			DESTDIR="${D}" \
+			DO_STRIP= \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LIBDIR="${D}/usr/$(get_libdir)" \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			OUTPUTDIR=. \
+			PREFIX=/usr \
+			install
+
+		if use static-libs; then
+			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
+
+			insinto /usr/include/NVCtrl
+			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
+		fi
+
+		insinto /usr/share/nvidia/
+		doins nvidia-application-profiles-${PV}-key-documentation
+
+		insinto /etc/nvidia
+		newins \
+			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
+
+		# There is no icon in the FreeBSD tarball.
+		use kernel_FreeBSD || \
+			doicon ${NV_OBJ}/nvidia-settings.png
+
+		domenu "${FILESDIR}"/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+	fi
+
+	dobin ${NV_OBJ}/nvidia-bug-report.sh
+
+	systemd_dounit *.service
+	dobin nvidia-sleep.sh
+
+	if has_multilib_profile && use multilib; then
+		local OABI=${ABI}
+		for ABI in $(get_install_abis); do
+			src_install-libs
+		done
+		ABI=${OABI}
+		unset OABI
+	else
+		src_install-libs
+	fi
+
+	is_final_abi || die "failed to iterate through all ABIs"
+
+	# Documentation
+	if use kernel_FreeBSD; then
+		dodoc "${NV_DOC}/README"
+		use X && doman "${NV_MAN}"/nvidia-xconfig.1
+		use tools && doman "${NV_MAN}"/nvidia-settings.1
+	else
+		# Docs
+		newdoc "${NV_DOC}/README.txt" README
+		dodoc "${NV_DOC}/NVIDIA_Changelog"
+		doman "${NV_MAN}"/nvidia-smi.1
+		use X && doman "${NV_MAN}"/nvidia-xconfig.1
+		use tools && doman "${NV_MAN}"/nvidia-settings.1
+		doman "${NV_MAN}"/nvidia-cuda-mps-control.1
+	fi
+
+	readme.gentoo_create_doc
+
+	docinto html
+	dodoc -r ${NV_DOC}/html/*
+}
+
+src_install-libs() {
+	local inslibdir=$(get_libdir)
+	if use libglvnd; then
+		local GL_ROOT="/usr/$(get_libdir)"
+	else
+		local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
+	fi
+	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
+	local nv_libdir="${NV_OBJ}"
+
+	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
+		nv_libdir="${NV_OBJ}"/32
+	fi
+
+	if use X; then
+		NV_GLX_LIBRARIES=(
+			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libOpenCL.so.1.0.0 ${CL_ROOT}"
+			"libcuda.so.${NV_SOVER}"
+			"libnvcuvid.so.${NV_SOVER}"
+			"libnvidia-compiler.so.${NV_SOVER}"
+			"libnvidia-eglcore.so.${NV_SOVER}"
+			"libnvidia-encode.so.${NV_SOVER}"
+			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
+			"libnvidia-fbc.so.${NV_SOVER}"
+			"libnvidia-glcore.so.${NV_SOVER}"
+			"libnvidia-glsi.so.${NV_SOVER}"
+			"libnvidia-glvkspirv.so.${NV_SOVER}"
+			"libnvidia-ifr.so.${NV_SOVER}"
+			"libnvidia-opencl.so.${NV_SOVER}"
+			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
+			"libvdpau_nvidia.so.${NV_SOVER}"
+		)
+		if ! use libglvnd; then
+			NV_GLX_LIBRARIES+=(
+				"libEGL.so.$( [[ ${ABI} == "amd64" ]] && usex compat ${NV_SOVER} 1.1.0 || echo 1.1.0) ${GL_ROOT}"
+				"libGL.so.1.7.0 ${GL_ROOT}"
+				"libGLESv1_CM.so.1.2.0 ${GL_ROOT}"
+				"libGLESv2.so.2.1.0 ${GL_ROOT}"
+				"libGLX.so.0 ${GL_ROOT}"
+				"libGLdispatch.so.0 ${GL_ROOT}"
+				"libOpenGL.so.0 ${GL_ROOT}"
+			)
+		fi
+
+		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-egl-wayland.so.1.1.3"
+			)
+		fi
+
+		if use kernel_FreeBSD; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-ml.so.${NV_SOVER}"
+				"libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-cbl.so.${NV_SOVER}"
+				"libnvidia-rtcore.so.${NV_SOVER}"
+				"libnvoptix.so.${NV_SOVER}"
+			)
+		fi
+
+		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
+			donvidia "${nv_libdir}"/${NV_LIB}
+		done
+	fi
+}
+
+pkg_preinst() {
+	if use driver && use kernel_linux; then
+		linux-mod_pkg_preinst
+
+		local videogroup="$(getent group video | cut -d ':' -f 3)"
+		if [ -z "${videogroup}" ]; then
+			eerror "Failed to determine the video group gid"
+			die "Failed to determine the video group gid"
+		else
+			sed -i \
+				-e "s:PACKAGE:${PF}:g" \
+				-e "s:VIDEOGID:${videogroup}:" \
+				"${D}"/etc/modprobe.d/nvidia.conf || die
+		fi
+	fi
+
+	# Clean the dynamic libGL stuff's home to ensure
+	# we dont have stale libs floating around
+	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
+		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
+	fi
+	# Make sure we nuke the old nvidia-glx's env.d file
+	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
+		rm -f "${ROOT}"/etc/env.d/09nvidia
+	fi
+}
+
+pkg_postinst() {
+	use driver && use kernel_linux && linux-mod_pkg_postinst
+
+	# Switch to the nvidia implementation
+	if ! use libglvnd; then
+		use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
+	fi
+
+	readme.gentoo_print_elog
+
+	if ! use X; then
+		elog "You have elected to not install the X.org driver. Along with"
+		elog "this the OpenGL libraries and VDPAU libraries were not"
+		elog "installed. Additionally, once the driver is loaded your card"
+		elog "and fan will run at max speed which may not be desirable."
+		elog "Use the 'nvidia-smi' init script to have your card and fan"
+		elog "speed scale appropriately."
+		elog
+	fi
+	if ! use tools; then
+		elog "USE=tools controls whether the nvidia-settings application"
+		elog "is installed. If you would like to use it, enable that"
+		elog "flag and re-emerge this ebuild. Optionally you can install"
+		elog "media-video/nvidia-settings"
+		elog
+	fi
+
+	elog "To enable nvidia sleep services under systemd, run these commands:"
+	elog "	systemctl enable nvidia-suspend.service"
+	elog "	systemctl enable nvidia-hibernate.service"
+	elog "	systemctl enable nvidia-resume.service"
+	elog "Set the NVreg_TemporaryFilePath kernel module parameter to a"
+	elog "suitable path in case the default of /tmp does not work for you"
+	elog "For more information see:"
+	elog "${ROOT}/usr/share/doc/${PF}/html/powermanagement.html"
+}
+
+pkg_prerm() {
+	if ! use libglvnd; then
+		use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+	fi
+}
+
+pkg_postrm() {
+	use driver && use kernel_linux && linux-mod_pkg_postrm
+	if ! use libglvnd; then
+		use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+	fi
+}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-440.82-r2.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-440.82-r2.ebuild
new file mode 100644
index 00000000000..f1290ed207f
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-440.82-r2.ebuild
@@ -0,0 +1,590 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \
+	nvidia-driver portability systemd toolchain-funcs unpacker udev
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="https://www.nvidia.com/"
+
+AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
+ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
+
+NV_URI="https://us.download.nvidia.com/XFree86/"
+SRC_URI="
+	amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
+	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
+	tools? (
+		https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
+	)
+"
+
+EMULTILIB_PKG="true"
+KEYWORDS="-* ~amd64"
+LICENSE="GPL-2 NVIDIA-r2"
+SLOT="0/${PV%.*}"
+
+IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms +libglvnd multilib static-libs +tools uvm wayland +X"
+REQUIRED_USE="
+	tools? ( X )
+	static-libs? ( tools )
+"
+
+COMMON="
+	driver? ( kernel_linux? ( acct-group/video ) )
+	kernel_linux? ( >=sys-libs/glibc-2.6.1 )
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		dev-libs/jansson
+		gtk3? (
+			x11-libs/gtk+:3
+		)
+		x11-libs/cairo
+		x11-libs/gdk-pixbuf[X]
+		x11-libs/gtk+:2
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXrandr
+		x11-libs/libXv
+		x11-libs/libXxf86vm
+		x11-libs/pango[X]
+	)
+	X? (
+		!libglvnd? ( >=app-eselect/eselect-opengl-1.0.9 )
+		libglvnd? (
+			media-libs/libglvnd[${MULTILIB_USEDEP}]
+			!app-eselect/eselect-opengl
+		)
+		app-misc/pax-utils
+	)
+"
+DEPEND="
+	${COMMON}
+	kernel_linux? ( virtual/linux-sources )
+	tools? ( sys-apps/dbus )
+"
+RDEPEND="
+	${COMMON}
+	acpi? ( sys-power/acpid )
+	tools? ( !media-video/nvidia-settings )
+	uvm? ( >=virtual/opencl-3 )
+	wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
+	X? (
+		<x11-base/xorg-server-1.20.99:=
+		>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
+		>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
+		>=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
+		sys-libs/zlib[${MULTILIB_USEDEP}]
+	)
+"
+QA_PREBUILT="opt/* usr/lib*"
+S=${WORKDIR}/
+PATCHES=(
+	"${FILESDIR}"/${PN}-440.26-locale.patch
+)
+NV_KV_MAX_PLUS="5.7"
+CONFIG_CHECK="!DEBUG_MUTEXES ~!I2C_NVIDIA_GPU ~!LOCKDEP ~MTRR ~SYSVIPC ~ZONE_DMA"
+
+pkg_pretend() {
+	nvidia-driver_check
+}
+
+pkg_setup() {
+	nvidia-driver_check
+
+	# try to turn off distcc and ccache for people that have a problem with it
+	export DISTCC_DISABLE=1
+	export CCACHE_DISABLE=1
+
+	if use driver && use kernel_linux; then
+		MODULE_NAMES="nvidia(video:${S}/kernel)"
+		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
+		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
+
+		# This needs to run after MODULE_NAMES (so that the eclass checks
+		# whether the kernel supports loadable modules) but before BUILD_PARAMS
+		# is set (so that KV_DIR is populated).
+		linux-mod_pkg_setup
+
+		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
+		SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
+
+		# linux-mod_src_compile calls set_arch_to_kernel, which
+		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
+		# expects x86_64 or i386 and then converts it to x86
+		# later on in the build process
+		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
+	fi
+
+	if use kernel_linux && kernel_is lt 2 6 9; then
+		eerror "You must build this against 2.6.9 or higher kernels."
+	fi
+
+	# set variables to where files are in the package structure
+	if use kernel_FreeBSD; then
+		use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
+		NV_DOC="${S}/doc"
+		NV_OBJ="${S}/obj"
+		NV_SRC="${S}/src"
+		NV_MAN="${S}/x11/man"
+		NV_X11="${S}/obj"
+		NV_SOVER=1
+	elif use kernel_linux; then
+		NV_DOC="${S}"
+		NV_OBJ="${S}"
+		NV_SRC="${S}/kernel"
+		NV_MAN="${S}"
+		NV_X11="${S}"
+		NV_SOVER=${PV}
+	else
+		die "Could not determine proper NVIDIA package"
+	fi
+}
+
+src_configure() {
+	tc-export AR CC LD
+
+	default
+}
+
+src_prepare() {
+	local man_file
+	for man_file in "${NV_MAN}"/*1.gz; do
+		gunzip $man_file || die
+	done
+
+	if use tools; then
+		cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die
+		cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
+		sed -i \
+			-e "s:@PV@:${PV}:g" \
+			"${WORKDIR}"/nvidia-settings-fno-common.patch \
+			"${WORKDIR}"/nvidia-settings-linker.patch \
+			|| die
+		eapply "${WORKDIR}"/nvidia-settings-fno-common.patch
+		eapply "${WORKDIR}"/nvidia-settings-linker.patch
+	fi
+
+	default
+
+	if ! [ -f nvidia_icd.json ]; then
+		cp nvidia_icd.json.template nvidia_icd.json || die
+		sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
+	fi
+}
+
+src_compile() {
+	cd "${NV_SRC}"
+	if use kernel_FreeBSD; then
+		MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
+			LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
+	elif use driver && use kernel_linux; then
+		BUILD_TARGETS=module linux-mod_src_compile \
+			KERNELRELEASE="${KV_FULL}" \
+			src="${KERNEL_DIR}"
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
+			DO_STRIP= \
+			LIBDIR="$(get_libdir)" \
+			NVLD="$(tc-getLD)" \
+			NV_VERBOSE=1 \
+			OUTPUTDIR=. \
+			RANLIB="$(tc-getRANLIB)"
+
+		emake -C "${S}"/nvidia-settings-${PV}/src \
+			DO_STRIP= \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LIBDIR="$(get_libdir)" \
+			NVLD="$(tc-getLD)" \
+			NVML_ENABLED=0 \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			OUTPUTDIR=.
+	fi
+}
+
+# Install nvidia library:
+# the first parameter is the library to install
+# the second parameter is the provided soversion
+# the third parameter is the target directory if it is not /usr/lib
+donvidia() {
+	# Full path to library
+	nv_LIB="${1}"
+
+	# SOVER to use
+	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
+
+	# Where to install
+	nv_DEST="${2}"
+
+	# Get just the library name
+	nv_LIBNAME=$(basename "${nv_LIB}")
+
+	if [[ "${nv_DEST}" ]]; then
+		exeinto ${nv_DEST}
+		action="doexe"
+	else
+		nv_DEST="/usr/$(get_libdir)"
+		action="dolib.so"
+	fi
+
+	# Install the library
+	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
+
+	# If the library has a SONAME and SONAME does not match the library name,
+	# then we need to create a symlink
+	if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
+		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER}
+	fi
+
+	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so}
+}
+
+src_install() {
+	if use driver && use kernel_linux; then
+		linux-mod_src_install
+
+		# Add the aliases
+		# This file is tweaked with the appropriate video group in
+		# pkg_preinst, see bug #491414
+		insinto /etc/modprobe.d
+		newins "${FILESDIR}"/nvidia-430.conf nvidia.conf
+
+		if use uvm; then
+			doins "${FILESDIR}"/nvidia-rmmod.conf
+			udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules
+		else
+			sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \
+				> "${T}"/nvidia-rmmod.conf || die
+			doins "${T}"/nvidia-rmmod.conf
+		fi
+
+		# Ensures that our device nodes are created when not using X
+		exeinto "$(get_udevdir)"
+		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
+		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
+	elif use kernel_FreeBSD; then
+		if use x86-fbsd; then
+			insinto /boot/modules
+			doins "${S}/src/nvidia.kld"
+		fi
+
+		exeinto /boot/modules
+		doexe "${S}/src/nvidia.ko"
+	fi
+
+	# NVIDIA kernel <-> userspace driver config lib
+	donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
+
+	# NVIDIA framebuffer capture library
+	donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
+
+	# NVIDIA video encode/decode <-> CUDA
+	if use kernel_linux; then
+		donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
+		donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
+	fi
+
+	if use X; then
+		# Xorg DDX driver
+		insinto /usr/$(get_libdir)/xorg/modules/drivers
+		doins ${NV_X11}/nvidia_drv.so
+
+		# Xorg GLX driver
+		donvidia ${NV_X11}/libglxserver_nvidia.so.${NV_SOVER} \
+			/usr/$(get_libdir)/xorg/modules/extensions
+
+		# Xorg nvidia.conf
+		if has_version '>=x11-base/xorg-server-1.16'; then
+			insinto /usr/share/X11/xorg.conf.d
+			newins {,50-}nvidia-drm-outputclass.conf
+		fi
+
+		insinto /usr/share/glvnd/egl_vendor.d
+		doins ${NV_X11}/10_nvidia.json
+	fi
+
+	if use wayland; then
+		insinto /usr/share/egl/egl_external_platform.d
+		doins ${NV_X11}/10_nvidia_wayland.json
+	fi
+
+	# OpenCL ICD for NVIDIA
+	if use kernel_linux; then
+		insinto /etc/OpenCL/vendors
+		doins ${NV_OBJ}/nvidia.icd
+	fi
+
+	# Helper Apps
+	exeinto /opt/bin/
+
+	if use X; then
+		doexe ${NV_OBJ}/nvidia-xconfig
+
+		insinto /etc/vulkan/icd.d
+		doins nvidia_icd.json
+
+		insinto /etc/vulkan/implicit_layer.d
+		doins nvidia_layers.json
+	fi
+
+	if use kernel_linux; then
+		doexe ${NV_OBJ}/nvidia-cuda-mps-control
+		doexe ${NV_OBJ}/nvidia-cuda-mps-server
+		doexe ${NV_OBJ}/nvidia-debugdump
+		doexe ${NV_OBJ}/nvidia-persistenced
+		doexe ${NV_OBJ}/nvidia-smi
+
+		# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
+		doexe ${NV_OBJ}/nvidia-modprobe
+		fowners root:video /opt/bin/nvidia-modprobe
+		fperms 4710 /opt/bin/nvidia-modprobe
+		dosym /{opt,usr}/bin/nvidia-modprobe
+
+		doman nvidia-cuda-mps-control.1
+		doman nvidia-modprobe.1
+		doman nvidia-persistenced.1
+		newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
+		newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
+		newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
+	fi
+
+	if use tools; then
+		emake -C "${S}"/nvidia-settings-${PV}/src/ \
+			DESTDIR="${D}" \
+			DO_STRIP= \
+			GTK3_AVAILABLE=$(usex gtk3 1 0) \
+			LIBDIR="${D}/usr/$(get_libdir)" \
+			NV_USE_BUNDLED_LIBJANSSON=0 \
+			NV_VERBOSE=1 \
+			OUTPUTDIR=. \
+			PREFIX=/usr \
+			install
+
+		if use static-libs; then
+			dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
+
+			insinto /usr/include/NVCtrl
+			doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
+		fi
+
+		insinto /usr/share/nvidia/
+		doins nvidia-application-profiles-${PV}-key-documentation
+
+		insinto /etc/nvidia
+		newins \
+			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
+
+		# There is no icon in the FreeBSD tarball.
+		use kernel_FreeBSD || \
+			doicon ${NV_OBJ}/nvidia-settings.png
+
+		domenu "${FILESDIR}"/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+	fi
+
+	dobin ${NV_OBJ}/nvidia-bug-report.sh
+
+	systemd_dounit *.service
+	dobin nvidia-sleep.sh
+
+	if has_multilib_profile && use multilib; then
+		local OABI=${ABI}
+		for ABI in $(get_install_abis); do
+			src_install-libs
+		done
+		ABI=${OABI}
+		unset OABI
+	else
+		src_install-libs
+	fi
+
+	is_final_abi || die "failed to iterate through all ABIs"
+
+	# Documentation
+	if use kernel_FreeBSD; then
+		dodoc "${NV_DOC}/README"
+		use X && doman "${NV_MAN}"/nvidia-xconfig.1
+		use tools && doman "${NV_MAN}"/nvidia-settings.1
+	else
+		# Docs
+		newdoc "${NV_DOC}/README.txt" README
+		dodoc "${NV_DOC}/NVIDIA_Changelog"
+		doman "${NV_MAN}"/nvidia-smi.1
+		use X && doman "${NV_MAN}"/nvidia-xconfig.1
+		use tools && doman "${NV_MAN}"/nvidia-settings.1
+		doman "${NV_MAN}"/nvidia-cuda-mps-control.1
+	fi
+
+	readme.gentoo_create_doc
+
+	docinto html
+	dodoc -r ${NV_DOC}/html/*
+}
+
+src_install-libs() {
+	local inslibdir=$(get_libdir)
+	if use libglvnd; then
+		local GL_ROOT="/usr/$(get_libdir)"
+	else
+		local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
+	fi
+	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
+	local nv_libdir="${NV_OBJ}"
+
+	if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
+		nv_libdir="${NV_OBJ}"/32
+	fi
+
+	if use X; then
+		NV_GLX_LIBRARIES=(
+			"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+			"libOpenCL.so.1.0.0 ${CL_ROOT}"
+			"libcuda.so.${NV_SOVER}"
+			"libnvcuvid.so.${NV_SOVER}"
+			"libnvidia-compiler.so.${NV_SOVER}"
+			"libnvidia-eglcore.so.${NV_SOVER}"
+			"libnvidia-encode.so.${NV_SOVER}"
+			"libnvidia-fatbinaryloader.so.${NV_SOVER}"
+			"libnvidia-fbc.so.${NV_SOVER}"
+			"libnvidia-glcore.so.${NV_SOVER}"
+			"libnvidia-glsi.so.${NV_SOVER}"
+			"libnvidia-glvkspirv.so.${NV_SOVER}"
+			"libnvidia-ifr.so.${NV_SOVER}"
+			"libnvidia-opencl.so.${NV_SOVER}"
+			"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
+			"libvdpau_nvidia.so.${NV_SOVER}"
+		)
+		if ! use libglvnd; then
+			NV_GLX_LIBRARIES+=(
+				"libEGL.so.$( [[ ${ABI} == "amd64" ]] && usex compat ${NV_SOVER} 1.1.0 || echo 1.1.0) ${GL_ROOT}"
+				"libGL.so.1.7.0 ${GL_ROOT}"
+				"libGLESv1_CM.so.1.2.0 ${GL_ROOT}"
+				"libGLESv2.so.2.1.0 ${GL_ROOT}"
+				"libGLX.so.0 ${GL_ROOT}"
+				"libGLdispatch.so.0 ${GL_ROOT}"
+				"libOpenGL.so.0 ${GL_ROOT}"
+			)
+		fi
+
+		if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-egl-wayland.so.1.1.4"
+			)
+		fi
+
+		if use kernel_FreeBSD; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux; then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-ml.so.${NV_SOVER}"
+				"libnvidia-tls.so.${NV_SOVER}"
+			)
+		fi
+
+		if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
+		then
+			NV_GLX_LIBRARIES+=(
+				"libnvidia-cbl.so.${NV_SOVER}"
+				"libnvidia-rtcore.so.${NV_SOVER}"
+				"libnvoptix.so.${NV_SOVER}"
+			)
+		fi
+
+		for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
+			donvidia "${nv_libdir}"/${NV_LIB}
+		done
+	fi
+}
+
+pkg_preinst() {
+	if use driver && use kernel_linux; then
+		linux-mod_pkg_preinst
+
+		local videogroup="$(getent group video | cut -d ':' -f 3)"
+		if [ -z "${videogroup}" ]; then
+			eerror "Failed to determine the video group gid"
+			die "Failed to determine the video group gid"
+		else
+			sed -i \
+				-e "s:PACKAGE:${PF}:g" \
+				-e "s:VIDEOGID:${videogroup}:" \
+				"${D}"/etc/modprobe.d/nvidia.conf || die
+		fi
+	fi
+
+	# Clean the dynamic libGL stuff's home to ensure
+	# we dont have stale libs floating around
+	if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
+		rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
+	fi
+	# Make sure we nuke the old nvidia-glx's env.d file
+	if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
+		rm -f "${ROOT}"/etc/env.d/09nvidia
+	fi
+}
+
+pkg_postinst() {
+	use driver && use kernel_linux && linux-mod_pkg_postinst
+
+	# Switch to the nvidia implementation
+	if ! use libglvnd; then
+		use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
+	fi
+
+	readme.gentoo_print_elog
+
+	if ! use X; then
+		elog "You have elected to not install the X.org driver. Along with"
+		elog "this the OpenGL libraries and VDPAU libraries were not"
+		elog "installed. Additionally, once the driver is loaded your card"
+		elog "and fan will run at max speed which may not be desirable."
+		elog "Use the 'nvidia-smi' init script to have your card and fan"
+		elog "speed scale appropriately."
+		elog
+	fi
+	if ! use tools; then
+		elog "USE=tools controls whether the nvidia-settings application"
+		elog "is installed. If you would like to use it, enable that"
+		elog "flag and re-emerge this ebuild. Optionally you can install"
+		elog "media-video/nvidia-settings"
+		elog
+	fi
+
+	elog "To enable nvidia sleep services under systemd, run these commands:"
+	elog "	systemctl enable nvidia-suspend.service"
+	elog "	systemctl enable nvidia-hibernate.service"
+	elog "	systemctl enable nvidia-resume.service"
+	elog "Set the NVreg_TemporaryFilePath kernel module parameter to a"
+	elog "suitable path in case the default of /tmp does not work for you"
+	elog "For more information see:"
+	elog "${ROOT}/usr/share/doc/${PF}/html/powermanagement.html"
+}
+
+pkg_prerm() {
+	if ! use libglvnd; then
+		use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+	fi
+}
+
+pkg_postrm() {
+	use driver && use kernel_linux && linux-mod_pkg_postrm
+	if ! use libglvnd; then
+		use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
+	fi
+}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2020-08-26  5:32 Matt Turner
  0 siblings, 0 replies; 46+ messages in thread
From: Matt Turner @ 2020-08-26  5:32 UTC (permalink / raw
  To: gentoo-commits

commit:     4b39ac5d997c6201aa3f3441f3a3dab040b9c281
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 26 05:31:05 2020 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Wed Aug 26 05:32:11 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4b39ac5d

x11-drivers/nvidia-drivers: Fix libdir

Thanks to Ionen Wolkens for noticing the mistake.

Bug: https://bugs.gentoo.org/show_bug.cgi?id=713546
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 x11-drivers/nvidia-drivers/files/nvidia-390.conf                     | 2 +-
 ...ia-drivers-390.138-r2.ebuild => nvidia-drivers-390.138-r3.ebuild} | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-390.conf b/x11-drivers/nvidia-drivers/files/nvidia-390.conf
index 81dbfc45786..55c7cc4a539 100644
--- a/x11-drivers/nvidia-drivers/files/nvidia-390.conf
+++ b/x11-drivers/nvidia-drivers/files/nvidia-390.conf
@@ -3,5 +3,5 @@ Section "OutputClass"
     MatchDriver "nvidia-drm"
     Driver "nvidia"
     Option "AllowEmptyInitialConfiguration"
-    ModulePath "/usr/lib/nvidia/xorg"
+    ModulePath "/usr/%LIBDIR%/nvidia/xorg"
 EndSection

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.138-r2.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.138-r3.ebuild
similarity index 99%
rename from x11-drivers/nvidia-drivers/nvidia-drivers-390.138-r2.ebuild
rename to x11-drivers/nvidia-drivers/nvidia-drivers-390.138-r3.ebuild
index 7505e7d936a..c5edfd1bb9a 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.138-r2.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.138-r3.ebuild
@@ -176,6 +176,9 @@ src_prepare() {
 		cp nvidia_icd.json.template nvidia_icd.json || die
 		sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
 	fi
+
+	sed "s:%LIBDIR%:$(get_libdir):g" "${FILESDIR}/nvidia-390.conf" \
+		> "${T}/nvidia-390.conf" || die
 }
 
 src_compile() {
@@ -345,7 +348,7 @@ src_install() {
 		doins nvidia_icd.json
 
 		insinto /etc/X11/xorg.conf.d
-		doins "${FILESDIR}"/nvidia-390.conf
+		doins ${T}/nvidia-390.conf
 	fi
 
 	if use kernel_linux; then


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2020-08-26 16:55 Matt Turner
  0 siblings, 0 replies; 46+ messages in thread
From: Matt Turner @ 2020-08-26 16:55 UTC (permalink / raw
  To: gentoo-commits

commit:     16721b5ac2192d993b6d9c743ce8244f1e90055e
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Wed Aug 26 10:12:29 2020 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Wed Aug 26 16:54:58 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=16721b5a

x11-drivers/nvidia-drivers: fix path to GLX module

Tested with GeForce GTX 560 Ti

Bug: https://bugs.gentoo.org/713546
Closes: https://github.com/gentoo/gentoo/pull/17267
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 x11-drivers/nvidia-drivers/files/nvidia-390.conf                        | 2 +-
 ...vidia-drivers-390.138-r3.ebuild => nvidia-drivers-390.138-r4.ebuild} | 0
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-390.conf b/x11-drivers/nvidia-drivers/files/nvidia-390.conf
index 55c7cc4a539..7666989fa47 100644
--- a/x11-drivers/nvidia-drivers/files/nvidia-390.conf
+++ b/x11-drivers/nvidia-drivers/files/nvidia-390.conf
@@ -3,5 +3,5 @@ Section "OutputClass"
     MatchDriver "nvidia-drm"
     Driver "nvidia"
     Option "AllowEmptyInitialConfiguration"
-    ModulePath "/usr/%LIBDIR%/nvidia/xorg"
+    ModulePath "/usr/%LIBDIR%/extensions/nvidia"
 EndSection

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.138-r3.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.138-r4.ebuild
similarity index 100%
rename from x11-drivers/nvidia-drivers/nvidia-drivers-390.138-r3.ebuild
rename to x11-drivers/nvidia-drivers/nvidia-drivers-390.138-r4.ebuild


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2021-02-08  9:39 David Seifert
  0 siblings, 0 replies; 46+ messages in thread
From: David Seifert @ 2021-02-08  9:39 UTC (permalink / raw
  To: gentoo-commits

commit:     3f48cdfdff62bdeb440900f04d7745dd08365eba
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Mon Feb  8 09:39:20 2021 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Mon Feb  8 09:39:20 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3f48cdfd

x11-drivers/nvidia-drivers: Default disable PreserveVideoMemoryAllocations

Bug: https://bugs.gentoo.org/763129
Package-Manager: Portage-3.0.14, Repoman-3.0.2
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 x11-drivers/nvidia-drivers/files/nvidia-460.conf     | 20 ++++++++++++++++++++
 ...460.39.ebuild => nvidia-drivers-460.39-r1.ebuild} |  2 +-
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-460.conf b/x11-drivers/nvidia-drivers/files/nvidia-460.conf
new file mode 100644
index 00000000000..faf0243a823
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-460.conf
@@ -0,0 +1,20 @@
+# Nvidia drivers support
+alias char-major-195 nvidia
+alias /dev/nvidiactl char-major-195
+
+# To tweak the driver the following options can be used, note that
+# you should be careful, as it could cause instability!! For more
+# options see /usr/share/doc/PACKAGE/README
+#
+# !!! SECURITY WARNING !!!
+# DO NOT MODIFY OR REMOVE THE DEVICE FILE RELATED OPTIONS UNLESS YOU KNOW
+# WHAT YOU ARE DOING.
+# ONLY ADD TRUSTED USERS TO THE VIDEO GROUP, THESE USERS MAY BE ABLE TO CRASH,
+# COMPROMISE, OR IRREPARABLY DAMAGE THE MACHINE.
+options nvidia \
+	NVreg_DeviceFileGID=VIDEOGID \
+	NVreg_DeviceFileMode=432 \
+	NVreg_DeviceFileUID=0 \
+	NVreg_ModifyDeviceFiles=1 \
+	NVreg_PreserveVideoMemoryAllocations=0 \
+	NVreg_TemporaryFilePath=/tmp

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-460.39.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-460.39-r1.ebuild
similarity index 99%
rename from x11-drivers/nvidia-drivers/nvidia-drivers-460.39.ebuild
rename to x11-drivers/nvidia-drivers/nvidia-drivers-460.39-r1.ebuild
index 2c16377cf6e..87e315b2413 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-460.39.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-460.39-r1.ebuild
@@ -214,7 +214,7 @@ src_install() {
 		# This file is tweaked with the appropriate video group in
 		# pkg_preinst, see bug #491414
 		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-430.conf nvidia.conf
+		newins "${FILESDIR}"/nvidia-460.conf nvidia.conf
 
 		if use uvm; then
 			doins "${FILESDIR}"/nvidia-rmmod.conf


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2021-04-21 12:22 David Seifert
  0 siblings, 0 replies; 46+ messages in thread
From: David Seifert @ 2021-04-21 12:22 UTC (permalink / raw
  To: gentoo-commits

commit:     04aee62d5203fa4b66ca9829e0227a6af342ade7
Author:     Ionen Wolkens <sudinave <AT> gmail <DOT> com>
AuthorDate: Wed Apr 21 12:19:42 2021 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Wed Apr 21 12:19:42 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=04aee62d

x11-drivers/nvidia-drivers: drop 390.141

Signed-off-by: Ionen Wolkens <sudinave <AT> gmail.com>
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 x11-drivers/nvidia-drivers/Manifest                |   1 -
 .../files/nvidia-settings-fno-common.patch         |  22 -
 .../nvidia-drivers/nvidia-drivers-390.141.ebuild   | 470 ---------------------
 3 files changed, 493 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index 8c5a1f26d14..5bb82f2c4b1 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -19,7 +19,6 @@ DIST nvidia-persistenced-390.141.tar.gz 55984 BLAKE2B c4e889d15643f6e8a4e37b32d8
 DIST nvidia-persistenced-450.102.04.tar.gz 52485 BLAKE2B 1fec24c86875789303aee8bf4362c9c35f76957a2906e2682aa5c07e914cc2acde769439d88007420904a71526e9f0d03ab9d0a3c5dcd1355047e03958d006f9 SHA512 6c51daaed3e7ecdb8d98bdcf0618e50962895895f88cc45a5f861c08d3c10f590d4a6a3f0a683ce0dce0e327d5977da1a76fdde974a97031dc698120ef990b07
 DIST nvidia-persistenced-460.67.tar.gz 53334 BLAKE2B 1354ec98fd2b95d264fd7df6219f639cf5d73173e6f0843a0880e6b18953904412cb756bd2c60432f6ae4c253d047515a9e32a128210fd94386ae6bc9a341b5c SHA512 0b4f7d8aa781c3536f6cd020225d2a3bab4b83498090419198488a2bec811534e61ba90461ae846bd09f4530f19984d77ca41edf0a851b1b700d1c0e053d537f
 DIST nvidia-persistenced-465.19.01.tar.gz 53555 BLAKE2B 0b163a2cf37c9180512f9d3af442f52d4417f1ca0b286bafc154cd3c235bc8ff82380fbb92633f9dc0e010c9cc4e36ab3b5f6aad726b5357dc368edafe737146 SHA512 ebe8a8eff5770605e751665f325a82cbe24b20395684d124558838553a2815f6cf2804cb58a9624105a99442fea91d774ad4978bcd2ad13a52f55e777ae13c5d
-DIST nvidia-settings-390.141.tar.bz2 1108755 BLAKE2B 210c33d4bb483dd9abe13275feb641a00d7c39a7222cbe828c925b9cfca6d4422f8fa3333dd77b73f2ba4071a7badf77625be88e02a1835177bda490c3c3c368 SHA512 44bf5f6b5bfbe3146f97d9ac82a75cc5653b6002002623ac6fa6cd233bbd3ef0d15f0b8091b59de5dbfdbde4fbe1b5212c9f9a1653ec98597c9049c9b137902e
 DIST nvidia-settings-390.141.tar.gz 1297261 BLAKE2B 452870df1ba598692f5da47444eb2daf4db40c79cac98c10b1c994c0ff39fc7936909b9d7788cbfe784999e68a2bdbbc12e85d63c3bc02ac872e6b3c46834697 SHA512 dbf7c389bbdc94291a1b974adfa33414148b1ab752aa7d948a27e91ee1bceb3b8435aceb6b7ef3cb806333572db11b5524667045ef7686b119d7955d2699cb04
 DIST nvidia-settings-450.102.04.tar.bz2 1057126 BLAKE2B 4e27ac75441d455122860b3834f2584e4736fff1f641e9a1d3ced4a354cb0e0e35c4e7a71e7bc05940d585e0ceca576f726fdfffbb84aae8057d06355b91293f SHA512 33f27b9a2832f7f24603d3a741b6c34cdd3f27a7075b523f8b98ae89325f810e13c134fcc7503e72d44a6f6c7a0d8587bfdad898a4ab5fa252bd9c7360a32341
 DIST nvidia-settings-450.102.04.tar.gz 1229675 BLAKE2B 166b73a0e9fe1cc1c16f83128aa94f3b9ef44fc71004e80c2681299dd564df6b458b52bedfd60eaaecf6142d0ea7d5147cb9c509d4db4e6b85bc72dd4dc75751 SHA512 c514bb3cc72954a52f4821674f9b783ebc0bd8c7294a296716619ddad15f2b63f50ada47797dee1386709deb7d407cb1d6c04532b7ca6e03d84234555751c9a9

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-settings-fno-common.patch b/x11-drivers/nvidia-drivers/files/nvidia-settings-fno-common.patch
deleted file mode 100644
index 06e046ff61d..00000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-settings-fno-common.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/nvidia-settings-@PV@/src/gtk+-2.x/ctkvdpau.c
-+++ b/nvidia-settings-@PV@/src/gtk+-2.x/ctkvdpau.c
-@@ -103,6 +103,8 @@
- const gchar* __video_mixer_attribute_help =
- "This shows the video mixer attributes and any applicable ranges.";
- 
-+struct VDPAUDeviceImpl VDPAUDeviceFunctions;
-+
- static int queryOutputSurface(CtkVDPAU *ctk_vdpau, VdpDevice device,
-                               VdpGetProcAddress *getProcAddress);
- 
---- a/nvidia-settings-@PV@/src/gtk+-2.x/ctkvdpau.h
-+++ b/nvidia-settings-@PV@/src/gtk+-2.x/ctkvdpau.h
-@@ -46,7 +46,7 @@
-     (G_TYPE_INSTANCE_GET_CLASS ((obj), CTK_TYPE_VDPAU, CtkVDPAUClass))
- 
- 
--struct VDPAUDeviceImpl {
-+extern struct VDPAUDeviceImpl {
- 
-     VdpGetErrorString *GetErrorString;
-     VdpGetProcAddress *GetProcAddress;

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.141.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.141.ebuild
deleted file mode 100644
index d2473bd071d..00000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.141.ebuild
+++ /dev/null
@@ -1,470 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \
-	nvidia-driver toolchain-funcs unpacker udev
-
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
-
-NV_URI="https://us.download.nvidia.com/XFree86/"
-SRC_URI="
-	amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
-	x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
-	tools? (
-		https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
-	)"
-
-EMULTILIB_PKG="true"
-
-LICENSE="GPL-2 NVIDIA-r2"
-SLOT="0/${PV%%.*}"
-KEYWORDS="-* amd64 x86"
-IUSE="compat +driver +kms multilib static-libs +tools uvm wayland +X"
-REQUIRED_USE="
-	tools? ( X )
-	static-libs? ( tools )"
-
-COMMON="
-	driver? ( acct-group/video )
-	tools? (
-		dev-libs/atk
-		dev-libs/glib:2
-		dev-libs/jansson
-		x11-libs/cairo
-		x11-libs/gdk-pixbuf
-		x11-libs/gtk+:3
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXrandr
-		x11-libs/libXv
-		x11-libs/libXxf86vm
-		x11-libs/pango[X]
-	)
-	X? (
-		app-misc/pax-utils
-		media-libs/libglvnd[X,${MULTILIB_USEDEP}]
-	)"
-DEPEND="
-	${COMMON}
-	virtual/linux-sources
-	tools? ( sys-apps/dbus )"
-RDEPEND="
-	${COMMON}
-	uvm? ( >=virtual/opencl-3 )
-	wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
-	X? (
-		<x11-base/xorg-server-1.20.99:=
-		>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
-		>=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
-		sys-libs/zlib[${MULTILIB_USEDEP}]
-	)"
-
-QA_PREBUILT="opt/* usr/lib*"
-S="${WORKDIR}"
-NV_KV_MAX_PLUS="5.11"
-CONFIG_CHECK="
-	!DEBUG_MUTEXES
-	~!I2C_NVIDIA_GPU
-	~!LOCKDEP
-	~DRM
-	~DRM_KMS_HELPER
-	~SYSVIPC"
-
-pkg_pretend() {
-	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
-	nvidia-driver_check
-}
-
-pkg_setup() {
-	use x86 && CONFIG_CHECK+=" ~HIGHMEM"
-	nvidia-driver_check
-
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	if use driver; then
-		MODULE_NAMES="nvidia(video:${S}/kernel)"
-		use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
-		use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
-
-		# This needs to run after MODULE_NAMES (so that the eclass checks
-		# whether the kernel supports loadable modules) but before BUILD_PARAMS
-		# is set (so that KV_DIR is populated).
-		linux-mod_pkg_setup
-
-		BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-			SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
-
-		# linux-mod_src_compile calls set_arch_to_kernel, which
-		# sets the ARCH to x86 but NVIDIA's wrapping Makefile
-		# expects x86_64 or i386 and then converts it to x86
-		# later on in the build process
-		BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
-	fi
-}
-
-src_prepare() {
-	gunzip *1.gz || die
-
-	if use tools; then
-		cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die
-		cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
-		sed -i \
-			-e "s:@PV@:${PV}:g" \
-			"${WORKDIR}"/nvidia-settings-fno-common.patch \
-			"${WORKDIR}"/nvidia-settings-linker.patch \
-			|| die
-		eapply "${WORKDIR}"/nvidia-settings-fno-common.patch
-		eapply "${WORKDIR}"/nvidia-settings-linker.patch
-
-		# remove GTK2 support entirely (#592730)
-		sed -i \
-			-e '/^GTK2LIB = /d;/INSTALL.*GTK2LIB/,+1d' \
-			nvidia-settings-${PV}/src/Makefile || die
-	fi
-
-	default
-
-	if ! [[ -f nvidia_icd.json ]]; then
-		cp nvidia_icd.json.template nvidia_icd.json || die
-		sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
-	fi
-
-	sed "s:%LIBDIR%:$(get_libdir):g" "${FILESDIR}/nvidia-390.conf" \
-		> "${T}"/nvidia-390.conf || die
-}
-
-src_configure() {
-	tc-export AR CC LD OBJCOPY
-	default
-}
-
-src_compile() {
-	pushd kernel >/dev/null || die
-	if use driver; then
-		BUILD_TARGETS=module linux-mod_src_compile \
-			KERNELRELEASE="${KV_FULL}" \
-			src="${KERNEL_DIR}"
-	fi
-	popd >/dev/null || die
-
-	if use tools; then
-		emake -C nvidia-settings-${PV}/src \
-			DO_STRIP= \
-			LIBDIR="$(get_libdir)" \
-			NVLD="$(tc-getLD)" \
-			NV_VERBOSE=1 \
-			RANLIB="$(tc-getRANLIB)" \
-			build-xnvctrl
-
-		emake -C nvidia-settings-${PV}/src \
-			DO_STRIP= \
-			GTK3_AVAILABLE=1 \
-			LIBDIR="$(get_libdir)" \
-			NVLD="$(tc-getLD)" \
-			NVML_ENABLED=0 \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1
-	fi
-}
-
-# Install nvidia library:
-# the first parameter is the library to install
-# the second parameter is the provided soversion
-# the third parameter is the target directory if it is not /usr/lib
-donvidia() {
-	# Full path to library
-	nv_LIB="${1}"
-
-	# SOVER to use
-	nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
-
-	# Where to install
-	nv_DEST="${2}"
-
-	# Get just the library name
-	nv_LIBNAME=$(basename "${nv_LIB}")
-
-	if [[ -n ${nv_DEST} ]]; then
-		exeinto ${nv_DEST}
-		action="doexe"
-	else
-		nv_DEST="/usr/$(get_libdir)"
-		action="dolib.so"
-	fi
-
-	# Install the library
-	${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
-
-	# If the library has a SONAME and SONAME does not match the library name,
-	# then we need to create a symlink
-	if [[ -n ${nv_SOVER} && ${nv_SOVER} != ${nv_LIBNAME} ]]; then
-		dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER}
-	fi
-
-	dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so}
-}
-
-src_install() {
-	if use driver; then
-		linux-mod_src_install
-
-		# Add the aliases
-		# This file is tweaked with the appropriate video group in
-		# pkg_preinst, see bug #491414
-		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-		if use uvm; then
-			doins "${FILESDIR}"/nvidia-rmmod.conf
-			udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules
-		else
-			sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \
-				> "${T}"/nvidia-rmmod.conf || die
-			doins "${T}"/nvidia-rmmod.conf
-		fi
-
-		# Ensures that our device nodes are created when not using X
-		exeinto "$(get_udevdir)"
-		newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
-		udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
-	fi
-
-	# NVIDIA kernel <-> userspace driver config lib
-	donvidia libnvidia-cfg.so.${PV}
-
-	# NVIDIA framebuffer capture library
-	donvidia libnvidia-fbc.so.${PV}
-
-	# NVIDIA video encode/decode <-> CUDA
-	donvidia libnvcuvid.so.${PV}
-	donvidia libnvidia-encode.so.${PV}
-
-	if use X; then
-		# Xorg DDX driver
-		exeinto /usr/$(get_libdir)/xorg/modules/drivers
-		doexe nvidia_drv.so
-
-		# Xorg GLX driver
-		donvidia libglx.so.${PV} \
-			/usr/$(get_libdir)/extensions/nvidia
-
-		# Xorg nvidia.conf
-		insinto /usr/share/X11/xorg.conf.d
-		newins {,50-}nvidia-drm-outputclass.conf
-
-		insinto /usr/share/glvnd/egl_vendor.d
-		doins 10_nvidia.json
-	fi
-
-	if use wayland; then
-		insinto /usr/share/egl/egl_external_platform.d
-		doins 10_nvidia_wayland.json
-	fi
-
-	# OpenCL ICD for NVIDIA
-	insinto /etc/OpenCL/vendors
-	doins nvidia.icd
-
-	# Helper Apps
-	exeinto /opt/bin/
-
-	if use X; then
-		doexe nvidia-xconfig
-
-		insinto /etc/vulkan/icd.d
-		doins nvidia_icd.json
-
-		insinto /etc/X11/xorg.conf.d
-		doins "${T}"/nvidia-390.conf
-	fi
-
-	doexe nvidia-cuda-mps-control
-	doexe nvidia-cuda-mps-server
-	doexe nvidia-debugdump
-	doexe nvidia-persistenced
-	doexe nvidia-smi
-
-	# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
-	doexe nvidia-modprobe
-	fowners root:video /opt/bin/nvidia-modprobe
-	fperms 4710 /opt/bin/nvidia-modprobe
-	dosym ../../opt/bin/nvidia-modprobe /usr/bin/nvidia-modprobe
-
-	doman nvidia-cuda-mps-control.1
-	doman nvidia-modprobe.1
-	doman nvidia-persistenced.1
-	newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
-	newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
-	newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
-
-	if use tools; then
-		emake -C nvidia-settings-${PV}/src/ \
-			DESTDIR="${ED}" \
-			DO_STRIP= \
-			GTK3_AVAILABLE=1 \
-			LIBDIR="${ED}/usr/$(get_libdir)" \
-			NV_USE_BUNDLED_LIBJANSSON=0 \
-			NV_VERBOSE=1 \
-			PREFIX=/usr \
-			install
-
-		if use static-libs; then
-			dolib.a nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
-
-			insinto /usr/include/NVCtrl
-			doins nvidia-settings-${PV}/src/libXNVCtrl/*.h
-		fi
-
-		insinto /usr/share/nvidia/
-		doins nvidia-application-profiles-${PV}-key-documentation
-
-		insinto /etc/nvidia
-		newins \
-			nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
-
-		doicon nvidia-settings.png
-		domenu "${FILESDIR}"/nvidia-settings.desktop
-
-		exeinto /etc/X11/xinit/xinitrc.d
-		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-	fi
-
-	dobin nvidia-bug-report.sh
-
-	if has_multilib_profile && use multilib; then
-		local OABI=${ABI}
-		for ABI in $(multilib_get_enabled_abis); do
-			src_install-libs
-		done
-		ABI=${OABI}
-		unset OABI
-	else
-		src_install-libs
-	fi
-
-	is_final_abi || die "failed to iterate through all ABIs"
-
-	# Documentation
-	newdoc README.txt README
-	dodoc NVIDIA_Changelog
-	doman nvidia-smi.1
-	use X && doman nvidia-xconfig.1
-	use tools && doman nvidia-settings.1
-	doman nvidia-cuda-mps-control.1
-
-	readme.gentoo_create_doc
-
-	docinto html
-	dodoc -r html/.
-}
-
-src_install-libs() {
-	local inslibdir=$(get_libdir)
-	local GL_ROOT="/usr/$(get_libdir)"
-	local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
-	local nv_libdir="${S}"
-
-	if has_multilib_profile && [[ ${ABI} == "x86" ]]; then
-		nv_libdir="${S}"/32
-	fi
-
-	if use X; then
-		NV_GLX_LIBRARIES=(
-			"libEGL_nvidia.so.${PV} ${GL_ROOT}"
-			"libGLESv1_CM_nvidia.so.${PV} ${GL_ROOT}"
-			"libGLESv2_nvidia.so.${PV} ${GL_ROOT}"
-			"libGLX_nvidia.so.${PV} ${GL_ROOT}"
-			"libOpenCL.so.1.0.0 ${CL_ROOT}"
-			"libcuda.so.${PV}"
-			"libnvcuvid.so.${PV}"
-			"libnvidia-compiler.so.${PV}"
-			"libnvidia-eglcore.so.${PV}"
-			"libnvidia-encode.so.${PV}"
-			"libnvidia-fatbinaryloader.so.${PV}"
-			"libnvidia-fbc.so.${PV}"
-			"libnvidia-glcore.so.${PV}"
-			"libnvidia-glsi.so.${PV}"
-			"libnvidia-ifr.so.${PV}"
-			"libnvidia-opencl.so.${PV}"
-			"libnvidia-ptxjitcompiler.so.${PV}"
-			"libvdpau_nvidia.so.${PV}"
-		)
-
-		if use wayland && [[ ${ABI} == "amd64" ]]; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-egl-wayland.so.1.0.2"
-			)
-		fi
-
-		if [[ ${ABI} == "amd64" ]]; then
-			NV_GLX_LIBRARIES+=(
-				"libnvidia-wfb.so.${PV}"
-			)
-		fi
-
-		NV_GLX_LIBRARIES+=(
-			"libnvidia-ml.so.${PV}"
-			"tls/libnvidia-tls.so.${PV}"
-		)
-
-		local nv_lib
-		for nv_lib in "${NV_GLX_LIBRARIES[@]}"; do
-			donvidia "${nv_libdir}"/${nv_lib}
-		done
-	fi
-}
-
-pkg_preinst() {
-	if use driver; then
-		linux-mod_pkg_preinst
-
-		local videogroup="$(getent group video | cut -d ':' -f 3)"
-		if [[ -z ${videogroup} ]]; then
-			eerror "Failed to determine the video group gid"
-			die "Failed to determine the video group gid"
-		else
-			sed -i \
-				-e "s:PACKAGE:${PF}:g" \
-				-e "s:VIDEOGID:${videogroup}:" \
-				"${ED}"/etc/modprobe.d/nvidia.conf || die
-		fi
-	fi
-
-	# Clean the dynamic libGL stuff's home to ensure
-	# we dont have stale libs floating around
-	rm -rf "${EROOT}"/usr/lib/opengl/nvidia/* || die
-	# Make sure we nuke the old nvidia-glx's env.d file
-	rm -f "${EROOT}"/etc/env.d/09nvidia || die
-}
-
-pkg_postinst() {
-	use driver && linux-mod_pkg_postinst
-
-	readme.gentoo_print_elog
-
-	if ! use X; then
-		elog "You have elected to not install the X.org driver. Along with"
-		elog "this the OpenGL libraries and VDPAU libraries were not"
-		elog "installed. Additionally, once the driver is loaded your card"
-		elog "and fan will run at max speed which may not be desirable."
-		elog "Use the 'nvidia-smi' init script to have your card and fan"
-		elog "speed scale appropriately."
-		elog
-	fi
-	if ! use tools; then
-		elog "USE=tools controls whether the nvidia-settings application"
-		elog "is installed. If you would like to use it, enable that"
-		elog "flag and re-emerge this ebuild. Optionally you can install"
-		elog "media-video/nvidia-settings"
-		elog
-	fi
-}
-
-pkg_postrm() {
-	use driver && linux-mod_pkg_postrm
-}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2021-07-20  1:23 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2021-07-20  1:23 UTC (permalink / raw
  To: gentoo-commits

commit:     5bacb36e4a3d08961a9446fd82d3429062bb7443
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 19 20:40:07 2021 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Jul 20 01:20:45 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5bacb36e

x11-drivers/nvidia-drivers: add IUSE=wayland, revamp nvidia.conf

In order use wayland features with nvidia-drivers, there's
currently a need to both emerge egl-wayland (optfeature), and
set nvidia-drm.modeset=1 manually.

To provide a more reliable out-of-the-box experience with global
USE=wayland, perform these actions if the flag is set. Should
notably be useful for gnome profiles.

To better handle such module settings, creating a new nvidia-470.conf
that combines nvidia-{460,rmmod,blacklist-nouveau}.conf and the
nvidia-drm.conf formerly suggested by the egl-wayland package.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/files/nvidia-470.conf   | 31 ++++++++++++
 .../nvidia-drivers/nvidia-drivers-470.57.02.ebuild | 56 +++++++++++++++-------
 2 files changed, 69 insertions(+), 18 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-470.conf b/x11-drivers/nvidia-drivers/files/nvidia-470.conf
new file mode 100644
index 00000000000..4e363d2b278
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-470.conf
@@ -0,0 +1,31 @@
+# NVIDIA modules options
+# See /usr/share/doc/nvidia-drivers-*/README.txt* for more information.
+
+# nvidia-drivers and nouveau cannot be used at same time.
+# Comment out the following line if you wish to allow nouveau.
+blacklist nouveau
+
+# Kernel Mode Setting (needed for PRIME offloading, and EGLStream/Wayland)
+# This may need to be disabled if using SLI (Scalable Link Interface).
+#options nvidia-drm modeset=1
+
+# Suspend options. Allocations=0 recommended over =1 unless enable nvidia's
+# systemd sleep services (nvidia-hibernate, nvidia-resume, nvidia-suspend).
+options nvidia \
+	NVreg_PreserveVideoMemoryAllocations=0 \
+	NVreg_TemporaryFilePath=/var/tmp
+
+# !!! Security Warning !!!
+# Do not change the DeviceFile options unless you know what you are doing.
+# Only add trusted users to the 'video' group, these users may be able to
+# crash, compromise, or irreparably damage the machine.
+options nvidia \
+	NVreg_DeviceFileGID=@VIDEOGID@ \
+	NVreg_DeviceFileMode=432 \
+	NVreg_DeviceFileUID=0 \
+	NVreg_ModifyDeviceFiles=1
+
+# Should be no need to touch anything below.
+alias char-major-195 nvidia
+alias /dev/nvidiactl char-major-195
+remove nvidia modprobe -r --ignore-remove nvidia-drm nvidia-modeset nvidia-uvm nvidia

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild
index e93f07b1e50..ea8905ecfe0 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild
@@ -4,7 +4,7 @@
 EAPI=7
 
 MODULES_OPTIONAL_USE="driver"
-inherit desktop linux-info linux-mod multilib-build optfeature \
+inherit desktop linux-info linux-mod multilib-build \
 	readme.gentoo-r1 systemd toolchain-funcs unpacker
 
 NV_KERNEL_MAX="5.13"
@@ -26,7 +26,7 @@ S="${WORKDIR}"
 LICENSE="GPL-2 MIT NVIDIA-r2 ZLIB"
 SLOT="0/${PV%%.*}"
 KEYWORDS="-* ~amd64"
-IUSE="+X +driver static-libs +tools"
+IUSE="+X +driver static-libs +tools wayland"
 
 COMMON_DEPEND="
 	acct-group/video
@@ -50,7 +50,8 @@ RDEPEND="
 		media-libs/libglvnd[X,${MULTILIB_USEDEP}]
 		x11-libs/libX11[${MULTILIB_USEDEP}]
 		x11-libs/libXext[${MULTILIB_USEDEP}]
-	)"
+	)
+	wayland? ( >=gui-libs/egl-wayland-1.1.7-r1 )"
 DEPEND="
 	${COMMON_DEPEND}
 	static-libs? (
@@ -74,19 +75,13 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 PATCHES=(
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 )
+
 DOCS=(
 	README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json
 	nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
 )
 HTML_DOCS=( html/. )
 
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="Users should be in the 'video' group to use NVIDIA devices.
-You can add yourself by using: gpasswd -a my-user video
-
-For general information on using nvidia-drivers, please see:
-https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
-
 pkg_setup() {
 	use driver || return
 
@@ -166,6 +161,12 @@ src_prepare() {
 		nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \
 		> nvidia-persistenced.service || die
 
+	# enable nvidia-drm.modeset=1 by default with USE=wayland
+	cp "${FILESDIR}"/nvidia-470.conf "${T}"/nvidia.conf || die
+	if use wayland; then
+		sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die
+	fi
+
 	gzip -d nvidia-{cuda-mps-control,smi}.1.gz || die
 }
 
@@ -274,9 +275,7 @@ src_install() {
 		linux-mod_src_install
 
 		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-460.conf nvidia.conf
-		doins "${FILESDIR}"/nvidia-blacklist-nouveau.conf
-		doins "${FILESDIR}"/nvidia-rmmod.conf
+		doins "${T}"/nvidia.conf
 
 		insinto /lib/firmware/nvidia/${PV}
 		doins firmware/gsp.bin
@@ -370,8 +369,19 @@ src_install() {
 	dobin systemd/nvidia-sleep.sh
 	systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend}.service
 
-	einstalldocs
+	# create README.gentoo
+	local DISABLE_AUTOFORMATTING="yes"
+	local DOC_CONTENTS=\
+"Trusted users should be in the 'video' group to use NVIDIA devices.
+You can add yourself by using: gpasswd -a my-user video
+
+See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.
+
+For general information on using nvidia-drivers, please see:
+https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
 	readme.gentoo_create_doc
+
+	einstalldocs
 }
 
 pkg_preinst() {
@@ -381,8 +391,7 @@ pkg_preinst() {
 	# set video group id based on live system (bug #491414)
 	local g=$(getent group video | cut -d: -f3)
 	[[ ${g} ]] || die "Failed to determine video group id"
-	sed "s/PACKAGE/${PF}/;s/VIDEOGID/${g}/" \
-		-i "${ED}"/etc/modprobe.d/nvidia.conf || die
+	sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
 
 	# try to find driver mismatches using temporary supported-gpus.json
 	for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do
@@ -397,6 +406,8 @@ pkg_preinst() {
 		fi
 	done
 	rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
+
+	has_version "x11-drivers/nvidia-drivers[wayland]" && NV_HAD_WAYLAND=1
 }
 
 pkg_postinst() {
@@ -404,8 +415,6 @@ pkg_postinst() {
 
 	readme.gentoo_print_elog
 
-	optfeature "wayland EGLStream with nvidia-drm.modeset=1" gui-libs/egl-wayland
-
 	if [[ -r /proc/driver/nvidia/version &&
 		$(grep -o '  [0-9.]*  ' /proc/driver/nvidia/version) != "  ${PV}  " ]]; then
 		ewarn "Currently loaded NVIDIA modules do not match the newly installed"
@@ -425,6 +434,17 @@ pkg_postinst() {
 		ewarn "https://www.nvidia.com/object/IO_32667.html"
 	fi
 
+	if use wayland && use driver && [[ ! ${NV_HAD_WAYLAND} ]]; then
+		elog
+		elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
+		elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. This feature is considered"
+		elog "experimental but is required for EGLStream (used for wayland acceleration"
+		elog "in compositors that support it) and PRIME offloading."
+		elog
+		elog "If you experience issues, please comment out the option from nvidia.conf."
+		elog "It is notably known to cause problems with SLI (Scalable Link Interface)."
+	fi
+
 	# Try to show this message only to users that may really need it
 	# given the workaround is discouraged and usage isn't widespread.
 	if use X && [[ ${REPLACING_VERSIONS} ]] &&


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2021-07-21 19:44 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2021-07-21 19:44 UTC (permalink / raw
  To: gentoo-commits

commit:     153367194a0cbacdcb70c4c25a8bc351e1c3d29e
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 21 18:42:12 2021 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Jul 21 19:42:51 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=15336719

x11-drivers/nvidia-drivers: extend USE=wayland warnings a bit

Can't test this myself, but adding the warning for
Reverse PRIME to be on the safe side, plus a note
about gdm.

Closes: https://bugs.gentoo.org/803209
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/files/nvidia-450.conf           | 2 +-
 x11-drivers/nvidia-drivers/files/nvidia-470.conf           | 2 +-
 x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild | 7 ++++++-
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-450.conf b/x11-drivers/nvidia-drivers/files/nvidia-450.conf
index fe162045a13..d9b1e7d7010 100644
--- a/x11-drivers/nvidia-drivers/files/nvidia-450.conf
+++ b/x11-drivers/nvidia-drivers/files/nvidia-450.conf
@@ -6,7 +6,7 @@
 blacklist nouveau
 
 # Kernel Mode Setting (needed for PRIME offloading, and EGLStream/Wayland)
-# This may need to be disabled if using SLI (Scalable Link Interface).
+# Enabling may possibly cause issues with SLI and Reverse PRIME.
 #options nvidia-drm modeset=1
 
 # Suspend options.

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-470.conf b/x11-drivers/nvidia-drivers/files/nvidia-470.conf
index 2c1ffd715f0..51127be44e7 100644
--- a/x11-drivers/nvidia-drivers/files/nvidia-470.conf
+++ b/x11-drivers/nvidia-drivers/files/nvidia-470.conf
@@ -6,7 +6,7 @@
 blacklist nouveau
 
 # Kernel Mode Setting (needed for PRIME offloading, and EGLStream/Wayland)
-# This may need to be disabled if using SLI (Scalable Link Interface).
+# Enabling may possibly cause issues with SLI and Reverse PRIME.
 #options nvidia-drm modeset=1
 
 # Suspend options. Allocations=0 recommended over =1 unless enable nvidia's

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild
index a972835bc8a..78c29cdf3b6 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild
@@ -449,7 +449,12 @@ pkg_postinst() {
 		elog "in compositors that support it) and PRIME offloading."
 		elog
 		elog "If you experience issues, please comment out the option from nvidia.conf."
-		elog "It is notably known to cause problems with SLI (Scalable Link Interface)."
+		elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
+		if has_version "gnome-base/gdm[wayland]"; then
+			elog
+			elog "This also cause gnome-base/gdm to use a wayland session by default,"
+			elog "select 'GNOME on Xorg' if you wish to continue using it."
+		fi
 	fi
 
 	# Try to show this message only to users that may really need it


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2021-07-21 19:44 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2021-07-21 19:44 UTC (permalink / raw
  To: gentoo-commits

commit:     1ba9301cc981065ed7f229cb28db7544a35c18e4
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 21 15:07:28 2021 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Jul 21 19:42:50 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1ba9301c

x11-drivers/nvidia-drivers: normalize nvidia-*.conf contents

Options are unchanged (no real need for revbump), but
merges files not to pollute systems.

Also update README.gentoo so users are aware of this file.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/files/nvidia-390.conf   | 31 +++++++++++++---------
 x11-drivers/nvidia-drivers/files/nvidia-430.conf   | 20 --------------
 .../files/{nvidia-470.conf => nvidia-450.conf}     |  7 +++--
 x11-drivers/nvidia-drivers/files/nvidia-460.conf   | 20 --------------
 x11-drivers/nvidia-drivers/files/nvidia-470.conf   |  2 +-
 .../files/nvidia-blacklist-nouveau.conf            |  3 ---
 x11-drivers/nvidia-drivers/files/nvidia-rmmod.conf |  3 ---
 .../nvidia-drivers-390.143-r1.ebuild               | 26 +++++++++---------
 .../nvidia-drivers-450.119.03.ebuild               | 28 ++++++++++---------
 .../nvidia-drivers/nvidia-drivers-460.67.ebuild    | 28 ++++++++++---------
 .../nvidia-drivers/nvidia-drivers-460.84.ebuild    | 28 ++++++++++---------
 .../nvidia-drivers/nvidia-drivers-470.42.01.ebuild | 28 ++++++++++---------
 12 files changed, 97 insertions(+), 127 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-390.conf b/x11-drivers/nvidia-drivers/files/nvidia-390.conf
index a96b0cd1e40..c873f00c462 100644
--- a/x11-drivers/nvidia-drivers/files/nvidia-390.conf
+++ b/x11-drivers/nvidia-drivers/files/nvidia-390.conf
@@ -1,14 +1,21 @@
-# Nvidia drivers support
+# NVIDIA drivers options
+# See /usr/share/doc/nvidia-drivers-*/README.txt* for more information.
+
+# nvidia-drivers and nouveau cannot be used at same time.
+# Comment out the following line if you wish to allow nouveau.
+blacklist nouveau
+
+# !!! Security Warning !!!
+# Do not change the DeviceFile options unless you know what you are doing.
+# Only add trusted users to the 'video' group, these users may be able to
+# crash, compromise, or irreparably damage the machine.
+options nvidia \
+	NVreg_DeviceFileGID=@VIDEOGID@ \
+	NVreg_DeviceFileMode=432 \
+	NVreg_DeviceFileUID=0 \
+	NVreg_ModifyDeviceFiles=1
+
+# Should be no need to touch anything below.
 alias char-major-195 nvidia
 alias /dev/nvidiactl char-major-195
-
-# To tweak the driver the following options can be used, note that
-# you should be careful, as it could cause instability!! For more 
-# options see /usr/share/doc/PACKAGE/README 
-#
-# !!! SECURITY WARNING !!!
-# DO NOT MODIFY OR REMOVE THE DEVICE FILE RELATED OPTIONS UNLESS YOU KNOW
-# WHAT YOU ARE DOING.
-# ONLY ADD TRUSTED USERS TO THE VIDEO GROUP, THESE USERS MAY BE ABLE TO CRASH,
-# COMPROMISE, OR IRREPARABLY DAMAGE THE MACHINE.
-options nvidia NVreg_DeviceFileMode=432 NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=VIDEOGID NVreg_ModifyDeviceFiles=1
+remove nvidia modprobe -r --ignore-remove nvidia-drm nvidia-modeset nvidia-uvm nvidia

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-430.conf b/x11-drivers/nvidia-drivers/files/nvidia-430.conf
deleted file mode 100644
index edd957b58c4..00000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-430.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-# Nvidia drivers support
-alias char-major-195 nvidia
-alias /dev/nvidiactl char-major-195
-
-# To tweak the driver the following options can be used, note that
-# you should be careful, as it could cause instability!! For more
-# options see README.txt in /usr/share/doc/PACKAGE
-#
-# !!! SECURITY WARNING !!!
-# DO NOT MODIFY OR REMOVE THE DEVICE FILE RELATED OPTIONS UNLESS YOU KNOW
-# WHAT YOU ARE DOING.
-# ONLY ADD TRUSTED USERS TO THE VIDEO GROUP, THESE USERS MAY BE ABLE TO CRASH,
-# COMPROMISE, OR IRREPARABLY DAMAGE THE MACHINE.
-options nvidia \
-	NVreg_DeviceFileGID=VIDEOGID \
-	NVreg_DeviceFileMode=432 \
-	NVreg_DeviceFileUID=0 \
-	NVreg_ModifyDeviceFiles=1 \
-	NVreg_PreserveVideoMemoryAllocations=1 \
-	NVreg_TemporaryFilePath=/var/tmp

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-470.conf b/x11-drivers/nvidia-drivers/files/nvidia-450.conf
similarity index 82%
copy from x11-drivers/nvidia-drivers/files/nvidia-470.conf
copy to x11-drivers/nvidia-drivers/files/nvidia-450.conf
index 4e363d2b278..fe162045a13 100644
--- a/x11-drivers/nvidia-drivers/files/nvidia-470.conf
+++ b/x11-drivers/nvidia-drivers/files/nvidia-450.conf
@@ -1,4 +1,4 @@
-# NVIDIA modules options
+# NVIDIA drivers options
 # See /usr/share/doc/nvidia-drivers-*/README.txt* for more information.
 
 # nvidia-drivers and nouveau cannot be used at same time.
@@ -9,10 +9,9 @@ blacklist nouveau
 # This may need to be disabled if using SLI (Scalable Link Interface).
 #options nvidia-drm modeset=1
 
-# Suspend options. Allocations=0 recommended over =1 unless enable nvidia's
-# systemd sleep services (nvidia-hibernate, nvidia-resume, nvidia-suspend).
+# Suspend options.
 options nvidia \
-	NVreg_PreserveVideoMemoryAllocations=0 \
+	NVreg_PreserveVideoMemoryAllocations=1 \
 	NVreg_TemporaryFilePath=/var/tmp
 
 # !!! Security Warning !!!

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-460.conf b/x11-drivers/nvidia-drivers/files/nvidia-460.conf
deleted file mode 100644
index 03967faa577..00000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-460.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-# Nvidia drivers support
-alias char-major-195 nvidia
-alias /dev/nvidiactl char-major-195
-
-# To tweak the driver the following options can be used, note that
-# you should be careful, as it could cause instability!! For more
-# options see README.txt in /usr/share/doc/PACKAGE
-#
-# !!! SECURITY WARNING !!!
-# DO NOT MODIFY OR REMOVE THE DEVICE FILE RELATED OPTIONS UNLESS YOU KNOW
-# WHAT YOU ARE DOING.
-# ONLY ADD TRUSTED USERS TO THE VIDEO GROUP, THESE USERS MAY BE ABLE TO CRASH,
-# COMPROMISE, OR IRREPARABLY DAMAGE THE MACHINE.
-options nvidia \
-	NVreg_DeviceFileGID=VIDEOGID \
-	NVreg_DeviceFileMode=432 \
-	NVreg_DeviceFileUID=0 \
-	NVreg_ModifyDeviceFiles=1 \
-	NVreg_PreserveVideoMemoryAllocations=0 \
-	NVreg_TemporaryFilePath=/var/tmp

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-470.conf b/x11-drivers/nvidia-drivers/files/nvidia-470.conf
index 4e363d2b278..2c1ffd715f0 100644
--- a/x11-drivers/nvidia-drivers/files/nvidia-470.conf
+++ b/x11-drivers/nvidia-drivers/files/nvidia-470.conf
@@ -1,4 +1,4 @@
-# NVIDIA modules options
+# NVIDIA drivers options
 # See /usr/share/doc/nvidia-drivers-*/README.txt* for more information.
 
 # nvidia-drivers and nouveau cannot be used at same time.

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-blacklist-nouveau.conf b/x11-drivers/nvidia-drivers/files/nvidia-blacklist-nouveau.conf
deleted file mode 100644
index b15fe0a3d92..00000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-blacklist-nouveau.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-# NVIDIA's official drivers and nouveau cannot be used at same time.
-# Comment out the following line if you wish to allow nouveau.
-blacklist nouveau

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-rmmod.conf b/x11-drivers/nvidia-drivers/files/nvidia-rmmod.conf
deleted file mode 100644
index 618b9b30b86..00000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-rmmod.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-# Nvidia UVM support
-
-remove nvidia modprobe -r --ignore-remove nvidia-drm nvidia-modeset nvidia-uvm nvidia

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.143-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.143-r1.ebuild
index 4d8f0d912d0..d90fd0158f5 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.143-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.143-r1.ebuild
@@ -76,19 +76,13 @@ PATCHES=(
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.141-fno-common.patch
 )
+
 DOCS=(
 	README.txt NVIDIA_Changelog
 	nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
 )
 HTML_DOCS=( html/. )
 
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="Users should be in the 'video' group to use NVIDIA devices.
-You can add yourself by using: gpasswd -a my-user video
-
-For general information on using nvidia-drivers, please see:
-https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
-
 pkg_setup() {
 	use driver || return
 
@@ -269,8 +263,6 @@ src_install() {
 
 		insinto /etc/modprobe.d
 		newins "${FILESDIR}"/nvidia-390.conf nvidia.conf
-		doins "${FILESDIR}"/nvidia-blacklist-nouveau.conf
-		doins "${FILESDIR}"/nvidia-rmmod.conf
 	fi
 
 	if use X; then
@@ -345,8 +337,19 @@ src_install() {
 	# install prebuilt-only libraries
 	multilib_foreach_abi nvidia-drivers_libs_install
 
-	einstalldocs
+	# create README.gentoo
+	local DISABLE_AUTOFORMATTING="yes"
+	local DOC_CONTENTS=\
+"Trusted users should be in the 'video' group to use NVIDIA devices.
+You can add yourself by using: gpasswd -a my-user video
+
+See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.
+
+For general information on using nvidia-drivers, please see:
+https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
 	readme.gentoo_create_doc
+
+	einstalldocs
 }
 
 pkg_preinst() {
@@ -358,8 +361,7 @@ pkg_preinst() {
 	# set video group id based on live system (bug #491414)
 	local g=$(getent group video | cut -d: -f3)
 	[[ ${g} ]] || die "Failed to determine video group id"
-	sed "s/PACKAGE/${PF}/;s/VIDEOGID/${g}/" \
-		-i "${ED}"/etc/modprobe.d/nvidia.conf || die
+	sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
 }
 
 pkg_postinst() {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-450.119.03.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-450.119.03.ebuild
index 5ca8a76ea97..00288233805 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-450.119.03.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-450.119.03.ebuild
@@ -75,19 +75,13 @@ QA_PREBUILT="opt/* usr/lib*"
 PATCHES=(
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 )
+
 DOCS=(
 	README.txt NVIDIA_Changelog supported-gpus.json
 	nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
 )
 HTML_DOCS=( html/. )
 
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="Users should be in the 'video' group to use NVIDIA devices.
-You can add yourself by using: gpasswd -a my-user video
-
-For general information on using nvidia-drivers, please see:
-https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
-
 pkg_setup() {
 	use driver || return
 
@@ -263,9 +257,7 @@ src_install() {
 		linux-mod_src_install
 
 		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-430.conf nvidia.conf
-		doins "${FILESDIR}"/nvidia-blacklist-nouveau.conf
-		doins "${FILESDIR}"/nvidia-rmmod.conf
+		newins "${FILESDIR}"/nvidia-450.conf nvidia.conf
 
 		# used for gpu verification with binpkgs (not kept)
 		insinto /usr/share/nvidia
@@ -352,8 +344,19 @@ src_install() {
 	dobin nvidia-sleep.sh
 	systemd_dounit nvidia-{hibernate,resume,suspend}.service
 
-	einstalldocs
+	# create README.gentoo
+	local DISABLE_AUTOFORMATTING="yes"
+	local DOC_CONTENTS=\
+"Trusted users should be in the 'video' group to use NVIDIA devices.
+You can add yourself by using: gpasswd -a my-user video
+
+See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.
+
+For general information on using nvidia-drivers, please see:
+https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
 	readme.gentoo_create_doc
+
+	einstalldocs
 }
 
 pkg_preinst() {
@@ -363,8 +366,7 @@ pkg_preinst() {
 	# set video group id based on live system (bug #491414)
 	local g=$(getent group video | cut -d: -f3)
 	[[ ${g} ]] || die "Failed to determine video group id"
-	sed "s/PACKAGE/${PF}/;s/VIDEOGID/${g}/" \
-		-i "${ED}"/etc/modprobe.d/nvidia.conf || die
+	sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
 
 	# try to find driver mismatches using temporary supported-gpus.json
 	for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild
index 81f6e62f3d3..44fb2c8fbf5 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild
@@ -75,19 +75,13 @@ QA_PREBUILT="opt/* usr/lib*"
 PATCHES=(
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 )
+
 DOCS=(
 	README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json
 	nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
 )
 HTML_DOCS=( html/. )
 
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="Users should be in the 'video' group to use NVIDIA devices.
-You can add yourself by using: gpasswd -a my-user video
-
-For general information on using nvidia-drivers, please see:
-https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
-
 pkg_setup() {
 	use driver || return
 
@@ -262,9 +256,7 @@ src_install() {
 		linux-mod_src_install
 
 		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-460.conf nvidia.conf
-		doins "${FILESDIR}"/nvidia-blacklist-nouveau.conf
-		doins "${FILESDIR}"/nvidia-rmmod.conf
+		newins "${FILESDIR}"/nvidia-470.conf nvidia.conf
 
 		# used for gpu verification with binpkgs (not kept)
 		insinto /usr/share/nvidia
@@ -351,8 +343,19 @@ src_install() {
 	dobin nvidia-sleep.sh
 	systemd_dounit nvidia-{hibernate,resume,suspend}.service
 
-	einstalldocs
+	# create README.gentoo
+	local DISABLE_AUTOFORMATTING="yes"
+	local DOC_CONTENTS=\
+"Trusted users should be in the 'video' group to use NVIDIA devices.
+You can add yourself by using: gpasswd -a my-user video
+
+See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.
+
+For general information on using nvidia-drivers, please see:
+https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
 	readme.gentoo_create_doc
+
+	einstalldocs
 }
 
 pkg_preinst() {
@@ -362,8 +365,7 @@ pkg_preinst() {
 	# set video group id based on live system (bug #491414)
 	local g=$(getent group video | cut -d: -f3)
 	[[ ${g} ]] || die "Failed to determine video group id"
-	sed "s/PACKAGE/${PF}/;s/VIDEOGID/${g}/" \
-		-i "${ED}"/etc/modprobe.d/nvidia.conf || die
+	sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
 
 	# try to find driver mismatches using temporary supported-gpus.json
 	for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-460.84.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-460.84.ebuild
index ffd73239e93..8931c3443b4 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-460.84.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-460.84.ebuild
@@ -74,19 +74,13 @@ QA_PREBUILT="opt/* usr/lib*"
 PATCHES=(
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 )
+
 DOCS=(
 	README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json
 	nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
 )
 HTML_DOCS=( html/. )
 
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="Users should be in the 'video' group to use NVIDIA devices.
-You can add yourself by using: gpasswd -a my-user video
-
-For general information on using nvidia-drivers, please see:
-https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
-
 pkg_setup() {
 	use driver || return
 
@@ -256,9 +250,7 @@ src_install() {
 		linux-mod_src_install
 
 		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-460.conf nvidia.conf
-		doins "${FILESDIR}"/nvidia-blacklist-nouveau.conf
-		doins "${FILESDIR}"/nvidia-rmmod.conf
+		newins "${FILESDIR}"/nvidia-470.conf nvidia.conf
 
 		# used for gpu verification with binpkgs (not kept)
 		insinto /usr/share/nvidia
@@ -345,8 +337,19 @@ src_install() {
 	dobin nvidia-sleep.sh
 	systemd_dounit nvidia-{hibernate,resume,suspend}.service
 
-	einstalldocs
+	# create README.gentoo
+	local DISABLE_AUTOFORMATTING="yes"
+	local DOC_CONTENTS=\
+"Trusted users should be in the 'video' group to use NVIDIA devices.
+You can add yourself by using: gpasswd -a my-user video
+
+See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.
+
+For general information on using nvidia-drivers, please see:
+https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
 	readme.gentoo_create_doc
+
+	einstalldocs
 }
 
 pkg_preinst() {
@@ -356,8 +359,7 @@ pkg_preinst() {
 	# set video group id based on live system (bug #491414)
 	local g=$(getent group video | cut -d: -f3)
 	[[ ${g} ]] || die "Failed to determine video group id"
-	sed "s/PACKAGE/${PF}/;s/VIDEOGID/${g}/" \
-		-i "${ED}"/etc/modprobe.d/nvidia.conf || die
+	sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
 
 	# try to find driver mismatches using temporary supported-gpus.json
 	for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-470.42.01.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-470.42.01.ebuild
index e93f07b1e50..20b2a56e4ec 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-470.42.01.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-470.42.01.ebuild
@@ -74,19 +74,13 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 PATCHES=(
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 )
+
 DOCS=(
 	README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json
 	nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
 )
 HTML_DOCS=( html/. )
 
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="Users should be in the 'video' group to use NVIDIA devices.
-You can add yourself by using: gpasswd -a my-user video
-
-For general information on using nvidia-drivers, please see:
-https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
-
 pkg_setup() {
 	use driver || return
 
@@ -274,9 +268,7 @@ src_install() {
 		linux-mod_src_install
 
 		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-460.conf nvidia.conf
-		doins "${FILESDIR}"/nvidia-blacklist-nouveau.conf
-		doins "${FILESDIR}"/nvidia-rmmod.conf
+		newins "${FILESDIR}"/nvidia-470.conf nvidia.conf
 
 		insinto /lib/firmware/nvidia/${PV}
 		doins firmware/gsp.bin
@@ -370,8 +362,19 @@ src_install() {
 	dobin systemd/nvidia-sleep.sh
 	systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend}.service
 
-	einstalldocs
+	# create README.gentoo
+	local DISABLE_AUTOFORMATTING="yes"
+	local DOC_CONTENTS=\
+"Trusted users should be in the 'video' group to use NVIDIA devices.
+You can add yourself by using: gpasswd -a my-user video
+
+See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.
+
+For general information on using nvidia-drivers, please see:
+https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
 	readme.gentoo_create_doc
+
+	einstalldocs
 }
 
 pkg_preinst() {
@@ -381,8 +384,7 @@ pkg_preinst() {
 	# set video group id based on live system (bug #491414)
 	local g=$(getent group video | cut -d: -f3)
 	[[ ${g} ]] || die "Failed to determine video group id"
-	sed "s/PACKAGE/${PF}/;s/VIDEOGID/${g}/" \
-		-i "${ED}"/etc/modprobe.d/nvidia.conf || die
+	sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
 
 	# try to find driver mismatches using temporary supported-gpus.json
 	for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2021-07-22 15:08 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2021-07-22 15:08 UTC (permalink / raw
  To: gentoo-commits

commit:     26bc27ab8c9db458f770f4110597534c5563b064
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 22 15:03:22 2021 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Thu Jul 22 15:06:54 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=26bc27ab

x11-drivers/nvidia-drivers: drop vuln 450.119.03, end of 450 branch

There is little reason for this branch to be supported anymore,
please use 460 or 470 instead.

Bug: https://bugs.gentoo.org/803389
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/Manifest                |   7 -
 x11-drivers/nvidia-drivers/files/nvidia-450.conf   |  30 --
 .../nvidia-drivers-450.119.03.ebuild               | 427 ---------------------
 3 files changed, 464 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index b70087d112c..636b34b5443 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -1,4 +1,3 @@
-DIST NVIDIA-Linux-aarch64-450.119.03.run 80498137 BLAKE2B 1834fb1d1f6254665339b7c0476466223240e8e8fc61223825d7aa51b23becef0c88106dc0b01a59922f815309836f5c03bd6c0dc44096ca150432a83a6201f3 SHA512 60d757be68714aa8d0da754ccdd760858ad787216822766f34ec3c1b85feef37b247feb4d369eef1f2c73be08c99f5d9d6acd344a15058f6d7f71a6eccc2ce25
 DIST NVIDIA-Linux-aarch64-460.67.run 112551235 BLAKE2B cc1166454f6e8771c7fe97010906919e9f2afd74ac86321006628f90f4d8dee033c3e09b2d9cac9063fe3fd313c0b529b347bcf38c051588ca7a972617c45026 SHA512 6ba17844dd215967f2f55a6620535464f244075a13f4b2b6d0ffaeeb6d97397fae0ba0de032d971847556d7b78ac8a1010ecec5127f45eb7ec73db87b1507ca1
 DIST NVIDIA-Linux-aarch64-460.84.run 112602151 BLAKE2B 7c8fee69c61f94d461286b2e96577b20da7e3ecfbb32fa9791e14006797bcc02d3123cb2101e718998fbc04d081f35c5802ddc52c71bc5eb51aefc27f45b8233 SHA512 76516a880fa5f28020ff7cb7a92d216f79ef9d510e0a1e696b614c1eb01702381f04bb1456588d43ff0a6c2824710f8b11f2e9788219207bd8b61821401306de
 DIST NVIDIA-Linux-aarch64-460.91.03.run 111886330 BLAKE2B 24ab316e216caa61f7edb4dbcb34541709d3229d495e6ead95e99db7403cddee03467ee28d007f0fa3c4f2fa267e1994533c90a7a67885e9e76d501ab0f8aaa5 SHA512 edcfd3b11afe625c8996cda488a8de2e0e40eb4b95c8cf0ead9e1226d7cee8140a83c247d745ceefe997a39cfcf3e3f9bde575d97aa39090f97f88817d89cb28
@@ -8,7 +7,6 @@ DIST NVIDIA-Linux-x86-390.143.run 49327068 BLAKE2B c6e0600885bfd834be6dca1834625
 DIST NVIDIA-Linux-x86-390.144.run 49210937 BLAKE2B b7e6edb55af88be74e4322ff1d270388a60a9d9809314c3a0502f86ed97edb99dfcdd3c81c5f51e681c8fcc47ecbfecd124b4d733141d23726226a3965b4c1f1 SHA512 d962c7e7b4b9c4635a887767d34a49c401a89e5975a5e57fa83366ca824ab70d5b8a81f3dce2e05e0528afddc72d70b2fcd69a216bd16d75e7b88ec704390546
 DIST NVIDIA-Linux-x86_64-390.143.run 85686808 BLAKE2B 0ad3ec661565cc52553c0b4f73256665fd3b505e39bffbfbffb3d148193369471b5160d59717dbecbd5f00bd28d9d17c9c7b5284e493f57f84ce19e310e477dc SHA512 79b61bd274964ed2e6a7ce99f0066d616d65b5a074de2ed84cdebb9ec6e8a608f71e511105e9a03e0c6e6d259f0111fed5772638ea72b08951eb2712c80505d0
 DIST NVIDIA-Linux-x86_64-390.144.run 85000417 BLAKE2B 8ecfa768fb8fe92170ff5b82698a7fb22da8bc557ab2036464bf5650b6fffc7028e25a68e1f5638f6bc171eb45a4aba459465490c7a99aacd36dc769994062e8 SHA512 9503ebf41037a14deba995288a364768cb03fb682de8653a4b0c05955b23603443c41c4216c93eac7d7efc301734416012864ede728324ab47b93ff167d93da4
-DIST NVIDIA-Linux-x86_64-450.119.03.run 141295706 BLAKE2B 854dd0063ea1f11e052f6ba5454792ebeb41dc50cd5cde17260d8c715b4401fa19514cfd3d2fad905564607244748e8083880bc2e360a86f8dbca970ebe5e744 SHA512 5557328f445381e23358c8bce220da062cdd3b5d396764228f7eb285e8dd6419bfc3943fc9e98516ad8cd2db13d0d7c125fc9c94c1e565668f76c872140d9082
 DIST NVIDIA-Linux-x86_64-460.67.run 177691692 BLAKE2B 25a7d87cc128933a98100d7c5ef37f93c3a870c096eea3228a28ef79d712ce104608f9422221cc1eadc21dccbbc8bc41ab1832795cfee75e217600ed0d76489e SHA512 80fdc023a8ce80e3a103896f28a5564bb43903af6bfc719f755c48eb225e79ec6abf219ab20eb80ada5808ef932ef5fa0fe710c6e0a07dd8a248daff2ba3b898
 DIST NVIDIA-Linux-x86_64-460.84.run 177840337 BLAKE2B fbaa295c59f1af79c59c28845b79924812ac1386cf2e42aa762120a618253686f1249d777cc6c8df88b52afa34b96131663962bf0b6621dea6dcbc1bad7f9e22 SHA512 2483a4d251da63334363f4ba9f7b5d2cbf310afdf16fbcfecf1269f65beaed0325f825472feea26ddca2455ed44f284f57a73662600a3b4a270167baeb33e4fb
 DIST NVIDIA-Linux-x86_64-460.91.03.run 178201292 BLAKE2B 4d407b7bb3a99ab71c62c3cd18dc3549c98a24e7af28276e6e6a21dd33efcab017fed3f782f6dfb060c4437cd718f19c2f9900de367cc47bf19fa2718a18ad55 SHA512 4ac11130fe5a8f1c26f459e9c19660b3ff6f23011e9f77b09ca948fc42609e523ecea70d3bf6def50a75b4a3079ab280018753fb6e53875d9bb8093a033e3b70
@@ -16,7 +14,6 @@ DIST NVIDIA-Linux-x86_64-470.42.01.run 271781957 BLAKE2B c85b7fc77c1d104f0b3279f
 DIST NVIDIA-Linux-x86_64-470.57.02.run 273219658 BLAKE2B 4e9b6d0f08226f38e76157a64923a4b4bb07b46e1b37879da353a4ff39bcf6a3aa0689a04e16ebcb2ff19f453d9b265c53546f101f34cca998a5da4dba5c2826 SHA512 7123ee05aa0cc94c4cf1f0717daf85b116f0200b8f78f9322ea847db70e56386a065e0085959f27cbf0a8f9befe6fc7a0145d1bf2a28616df9bc8b5effd812f8
 DIST nvidia-installer-390.143.tar.gz 205320 BLAKE2B 5c27dd769ec5a2effc56ea86474ee45b86362c26844d2f902d7bb2ab8e58b2763f4f761341ce4051e85cfd8189eab9d441744f1b9946a6dc46105888dc5ba58a SHA512 a45cbae70e8d9f1108d5e2c04b4beee350b8469df987ff80793dda7fc4e6efe3a787db0d47e7dfe22b88b29647b99cc24ab418666d1ef2fc038143f574faba36
 DIST nvidia-installer-390.144.tar.bz2 150017 BLAKE2B 1a633594ecb9b54ee5a1e3620263a95db30c1ddebf547ecc7f267e1f0b799bcdb44cc3ddd6c96eda085d9be5c8f691e92556296f250495d80eec0c2f155f5bd5 SHA512 e4c624afc18bd1d61264f93bdcbc72afe42687baadf31683a6dd11a45c6257f6a5185b91f4b3d4c0316b8eb03ed79511f9ad260ee9e6f299fc136f5dc2178e42
-DIST nvidia-installer-450.119.03.tar.gz 197635 BLAKE2B 01581676e11622e3c6c32171e699f13483e08a9b5256f6248cad190008a875b0b06561ff4d6732265c35b2429aaf6ba4cddf1a618d46730c88c5de63550bca9e SHA512 7491873e6324aefbe0dcbe57edeb2d1194352c6a9738c3b47f2562eb9e3ad58ca9519e5499f56d1208c2151900e2b43582fdbbe8ca80b6ebee824f8f8050c552
 DIST nvidia-installer-460.67.tar.gz 198484 BLAKE2B 0eaf3e3eccd6749e4fe89394905dded58e739f42cbc33c8a91575f4505030a216670fc8c0fd4d1d42659acf301c9ba59d4052a80c6eba6c5db84ed022acb2620 SHA512 8fff0fa13a82cb7eaf2fd1d05be509e9124e67bb05810f8937fb1f16c4a2362a5c1a50bc9a5155cfc90a9bbcee38a54fb5ae0ae164e205900a49f6d21779d54f
 DIST nvidia-installer-460.84.tar.bz2 144516 BLAKE2B 1da114e13d675198d1c011d4f32cc5da350b0d10ffaa49634c06d91d520d40bd24be60d032fd0988e7be54691dbe9755e3b7297596bd4ab88c72c0fb831aa894 SHA512 afab294eddfea19a0d70b7193d40438c209ede757d614e96a6028b2569797a24cc26c4eafb41a4f35fff4496bfa7529f276ae054c9060b714f43ac0e9d3cf301
 DIST nvidia-installer-460.91.03.tar.bz2 144463 BLAKE2B b8c381158f614331fbfd04dcfdd7227fcb3eb16cbe4e3cbcbb34ba6af2370b05ebd72dc46375b2099b950817e6a0565c418e62b6364f1d7269f78c1dce5f5535 SHA512 10c873597202a1d8aa0dc4629b1e64f8c1f65a68c91f6babe312cf9fabbb9257b77d03a3917c0f4f5d6994e90cf58c6c7d9a802a675ea3ef60b571c9b7abc391
@@ -24,7 +21,6 @@ DIST nvidia-installer-470.42.01.tar.bz2 145890 BLAKE2B 8073cc77ec240778afb66c9fa
 DIST nvidia-installer-470.57.02.tar.bz2 145923 BLAKE2B c0350e143ca3d4bd1f18c2f137df363c57f6c4bf87f1f3dd92e2dd62d1e79de5efba850fcd3638b2b25ab5c07f3b5f8484863350a35a358a764ef27cf96817e2 SHA512 8a72ae9643acaa566b05bbc400cae02dcfbad00da9084ea441ec65f3895efdb224e16075a5f4e373eac048e91b7c8fcdd877425bf76e573b4bff0233dfd5519d
 DIST nvidia-modprobe-390.143.tar.gz 39968 BLAKE2B 09f043521f195327630c0ca575473da42e051e2d34def22dcfb54295a94ca85e95ff41ee9564765567df19b88f90aba3d8cfffd489054779f2ce7d29f6e64b76 SHA512 066aaf031907fe2ba424e3b92e677ae78b4a938308bea82b7aa20cf0ba5c3678f93b6c9bf8a41fcd4fadcdcc870674a2be777ddcc2a5018974bd56b09a9ef271
 DIST nvidia-modprobe-390.144.tar.bz2 35308 BLAKE2B 1930c315aeb0e296c0d4795170d44a275da5ff8838fd8230559227852001b679fbca2830142ca7abcfa9c84626c9d9f222f7ab0cb3984d8d517f5ce431e5a9ea SHA512 d542c1a7634a8c5ff803ca79f2fc02b17b129185177226ad60625a4d246bbaf740719ff024dbde0f5aa8273949446561261d700a27cf88217c2572e69882142c
-DIST nvidia-modprobe-450.119.03.tar.gz 42137 BLAKE2B 054879187d33fbaaf4debdaa530b5f70bf19347891b905ac519bcb612146f0c4481629b88b07a872a4aed0f13e25fbbba3d1ed7f96ec3bb8a5c8da0855a1822a SHA512 c299d08c82b3f226f5861a61c523100809eeca90f4573ef5c2d3968f74945aae652b7ad07c859ef31f1df5c3a8687f34af6cf1f5f26e45b928a702de4bc19e73
 DIST nvidia-modprobe-460.67.tar.gz 43140 BLAKE2B 8243d355f9d51495c9d09f25ccbcb39c0a6ef472cbfaded98f10818fae655e1cf62ff2edcf40baea72b8cca9eebc947742b2516bb057410239193201bb843538 SHA512 16c8239b54988622196e0eea113173e44ff8b60cdcdf585bf859e6440aff2c6699bb107962776e69056dd7d5e3bbd6289ea628a2255ac27e22ef79521e9baad3
 DIST nvidia-modprobe-460.84.tar.bz2 38114 BLAKE2B 5e08860d3fa1a3025b413ccc9e5c24f64deab475852ca725104eea76f1e919f70a76f99809fe3d92d024f9aecb8fb9622ddced926bc51bebe663422959d358ba SHA512 4bf971b7fa3b155a25123c8a0c0305c53da1d2d3bb509f31698d1db2b821517836bdd111faccca5fb1d998dc13771568e3cee5c56f73ff497ca36fc55ade4a00
 DIST nvidia-modprobe-460.91.03.tar.bz2 38144 BLAKE2B 660b381f8757fe8862f7c4a971e44d3124afa3783d52af29543b8ed67486ba03b76c0b5d8dfadc5da8fdcc2c8799ec5f9c3016fd58e9c209fcc3ae897fb0436b SHA512 aa47a9c0744b8e11e87d2c0f300b13fee435cd5225444be7fb0b6bea49af33811dfa723a9ccfe904c7de2b5a8da36b707c1024eb495e3f0b587e3231a4bc4f39
@@ -32,7 +28,6 @@ DIST nvidia-modprobe-470.42.01.tar.bz2 38362 BLAKE2B fd00d7200d7f6423ea8accb5786
 DIST nvidia-modprobe-470.57.02.tar.bz2 38363 BLAKE2B a718d9ac5c34ee66136e7471f7ede65d268183935088d85b9fd69a0a3a5109e10ef2d2da2f8d07896aee219ca17647bbe38831cf81457f5d4f33e6bf74d4c08d SHA512 be4ade3425dd9557d4759889b1376e20c158c34136386c87b944ba24776fb056792be9bf449f04075e4e5ccc150fd065321fcc0e7c1af2d2b0be4d0a1bba7e4c
 DIST nvidia-persistenced-390.143.tar.gz 55994 BLAKE2B 1cfa469b84ecc9abdf0423d624244e7023a63225dfb16ac93223c462230b50099e4b59493be2d10cd6f2717e31c02655c76797e3222947d561f02ff72a52dd46 SHA512 37c3eb0bcce83e9b9ac5bdefa736e26e94b82de379a0f5c29e1611631c79103a797e58f5d1dea34221dd3a3f1a521b6db556eed48b1f38465481da2509d2f21a
 DIST nvidia-persistenced-390.144.tar.bz2 48672 BLAKE2B 82a92a33eb40971e56b772ffab121214f5675d0a8c618e356e7b55bc38ff9605fd2701d740d00a1e26c158c9df0ab38d0ba10891a3850f8e8cbee8fb231ba52d SHA512 4432f2dd18c7c91fd0d59e4f2bdf7254f58ed2a6b652d319c4f7ce674522da1797a68dd6939c38e71710dcd3b754ae7cc8c6e7acb47a76e13d2091e8a8ee99c8
-DIST nvidia-persistenced-450.119.03.tar.gz 52488 BLAKE2B bb6c759ce73f8c143d04e0cc5cb05cd0cb39f12f330485a0a4fc628b0ba3752f0bdee686f55675e60c1365ee7d9e0f9dd8c3c883ecb6fab9a1b78903664c20c9 SHA512 b8040d8bff15cb97252b6a7311c1cd0dbcf3dda17f91e8b46a1f950a388a0e2ed72d9ac59c808376dfdb1d1fd64fc721b55b95022f59afef17a37c20c646171b
 DIST nvidia-persistenced-460.67.tar.gz 53334 BLAKE2B 1354ec98fd2b95d264fd7df6219f639cf5d73173e6f0843a0880e6b18953904412cb756bd2c60432f6ae4c253d047515a9e32a128210fd94386ae6bc9a341b5c SHA512 0b4f7d8aa781c3536f6cd020225d2a3bab4b83498090419198488a2bec811534e61ba90461ae846bd09f4530f19984d77ca41edf0a851b1b700d1c0e053d537f
 DIST nvidia-persistenced-460.84.tar.bz2 46048 BLAKE2B e3dc6168458d5da3517167cca43373b815104894f8e01785baa3c654717f4eb4841db014a7f8c73d4c24a1e849b86ffee51c33e457fcb4804cae856cd630100c SHA512 43fbc5caa13f1e47d59054ddb4ff6129cd464dd558f8166b1103a9238b42205695e78c75aa89af89921d928bf9be07d2a9593306ce53d29a5bfaf90699917b13
 DIST nvidia-persistenced-460.91.03.tar.bz2 46160 BLAKE2B f7f34cc12de2a4d69184c60caf7a8e8025b58005ade0a3e9a1a0e95856055f7211a710a1145d674d8a2e97cf70a43175cbc5c9a5dabc49ce378623be1720c6ea SHA512 c3ff5875353c264cb224b3f512ff8308bf1b0b95282e34500d88da2574719c3c514581e5900841b089c2e6f0fe29198fa06a11668de8e21c59f9f96244a74757
@@ -40,7 +35,6 @@ DIST nvidia-persistenced-470.42.01.tar.bz2 46695 BLAKE2B 28f51ba8a09ab9d51d0a13c
 DIST nvidia-persistenced-470.57.02.tar.bz2 46533 BLAKE2B 8a9660b1838dd4096237200974cc8d21f9f12864b346abbb52671c84a3f4612af550905643324699d6dc6ba068e7d7b373079e8493646b58051bb85e21f386fa SHA512 774fea16044838480d809423ca498f517d95d1225b455a6e1a1a95254c7761eaab33e33fb19d407e3ed80cabaeb7de2d150de60360761b5e61f01fc27c6556a5
 DIST nvidia-settings-390.143.tar.gz 1297258 BLAKE2B d63b48c03069d4d2ae7f7034b4bc13ff3a1004bd64ce54ee553e614cb88cb081842b6c1428fd556e031ce69361927074822c5c620d2cde8d37a5887051ff56de SHA512 7bbef03e77e73bb1e05585cfaf6823913e2446b1df8353044ae01f80693bb884fdcc1b38fa51b171756edaa234479cda027d6569d025b120b7b64f226f8eedce
 DIST nvidia-settings-390.144.tar.bz2 1109104 BLAKE2B 6724f49c7e469f580206fc17308190bd346b6167348a8b8b3886209f58aca61b65eff30658484c1fee40af8c0d89fb62f73329b05a6ac45178ea4a6870e5aa85 SHA512 90afe201361d492c3152057d3ec46d68c0cd722fe0ea0587aa1156718017d59fb5f26f3db89d91d4680b2390617867dbe93bd14e1fb3dc70402527bfacf0ae5c
-DIST nvidia-settings-450.119.03.tar.gz 1229730 BLAKE2B 17c7f4803b1a5ead8ea6616f3575325459aa6abb4759f7146bd99b4cac8c4cde80b92fa2d82897392a5fed20d4f324418ac9990caa4557b0d457e7f3b24fcb71 SHA512 f0c2226e05063bfd78453b561a92e28f64711ba3ce3d82026c39db3cd44959a2cf98f8a781fb604108bf6ef9dfe52cad4a9270b94005d8e4e5134f6ea4966da7
 DIST nvidia-settings-460.67.tar.gz 1233189 BLAKE2B 33ffceefea4e184cb1873cdce97db26637e87cd20c82bcabcbfe88bcb084ac3d833ac5688cafa33a5a89383040d5c1c5d46de9c3f9a8ba6174574aa57aea2e46 SHA512 d1828379aa477394747ae3e5d3505e864d38a349dd159a04cb263613380afea9aea2081300b0d2b8ae205b800bfe6e8ba504e612989da394d757f00e4399b617
 DIST nvidia-settings-460.84.tar.bz2 1061100 BLAKE2B 9098116b29dcb3124dfa2e8ae6e6e62e865ece37c4307843570753ecef1541feece3a945e0b2671da9273ec53fd97b75d6b07ed5db01a1ebb9e65a08b06f1fab SHA512 9cb7dbe97bd15e722d151cd6131c56e23eafbd8b491b774b7940165cefb446253c50d8794fcec5809d1e6c82cdf4236bc06b25059a28bdfa0dc17ce77eaf6476
 DIST nvidia-settings-460.91.03.tar.bz2 1061093 BLAKE2B 13f1da07eda3a0e7e96ac69091e4a34fcd75a8f459a4db3840c64272dd54080694c4df3b7c326884ff032eb1b8708b5e19107b112afee2c80eed242281292b02 SHA512 172ea3366065aa30e71a5a47b31366d076477b8801a8a37e0d76972406e69c8872daa80011ee020960bc5e00163c4e9e5f63aa4f0dc726065671d76851b4ad71
@@ -48,7 +42,6 @@ DIST nvidia-settings-470.42.01.tar.bz2 1061961 BLAKE2B 0b9f368ccc68b2399d1eafb2d
 DIST nvidia-settings-470.57.02.tar.bz2 1062237 BLAKE2B aace056c25027ba9f139fc2a5c7714fe8207eb32e6cfbdc9ee7d64b49277ab588249fb87a1d8049c24e8d46b77e4f5ba198a7b4519078ce094f5712b486e29d3 SHA512 91e03cf7e1ed974204425e7223587987101934ddbcce52717990de244840d89b37b7f84b0222e96e85844c9ac4f3812771303ec285a32d0339f519bf38813be0
 DIST nvidia-xconfig-390.143.tar.gz 140282 BLAKE2B 3de0fe4bc0a049381e4504002bbe94887334310ca7b17d83add1237d7c15b7783e4f418acba3e261da564b1c00ca244f4ad02f3d2cbca0f0f68ee2900098fb36 SHA512 0c82dda4dd6db0c21cd9a2b88e4a77129bc4a0be8a17b398497328f4f1cb5c319f0428d7fbc3b0177d69246d55f96b03dd740d3480d67bb03049cd0cbe190132
 DIST nvidia-xconfig-390.144.tar.bz2 107147 BLAKE2B 1b6ea6dfbe33474cd3e9409a7559a38716c4ce8d2583354232225a2a7ec10c7dbc2163f07c6849f4929e16c2fad179d583daad8a67d9cba950a62209b8ebebfa SHA512 09bb3558be178deda4b26031560ebad4e98e68b6186e247d4638cbcb4bb5dc05937c6baeaf1cd4db5a7b7433af97c3150c526ed972ff51b6e1c7552235ec6b51
-DIST nvidia-xconfig-450.119.03.tar.gz 141079 BLAKE2B 15200bdc8cfecb2575d95803b62fd110c4ff5bbfbe529ffda35455caba1ce3de91b26b21e40604cf5f57bdca0d6da2754a578ffb376a5582d46c6bbdf0adccbe SHA512 d30f46d56dc3dc0e2ee4c26acb8a229ffb47b5fc45dc288c1c25d197d0138b2cc0a0e94f4a821d5613b359f12b5a34872d7631a9d606916e9f92c61e87cfb0cb
 DIST nvidia-xconfig-460.67.tar.gz 142323 BLAKE2B 09c7281de09a2c2968b5f4a48eca63110e6db988429c844b55f8efc28fbcd9d44c79ad47149c25f657c2a98ae7576c01b2c9b7f643b8321fe1393adc571ebcaa SHA512 0e65c81ec40d3eaeec036fbd8f46a3052a75ff0ad200c58438ff6c782a5764e62e51d03b4a2080770c32522894641288ac495f62bc39c3d5658b1ff87c9f6cdd
 DIST nvidia-xconfig-460.84.tar.bz2 108471 BLAKE2B cc3f100902778b66088bca3ff74df19f9ec47f45b4137a60c702f6c6742f011af890d67cbee685f1d3e27d337e3dbf9c23b0ba0b46e5bd341c4c679e7ff54584 SHA512 0c1060d7107a9557e90291829dd0f8728b0c7d6315a898ea17485c8932db528439aa84cb769f5c14d3c70f57942ca6e4cc4248807ffd43c961f3c145752aa5a3
 DIST nvidia-xconfig-460.91.03.tar.bz2 108477 BLAKE2B d95505e508ca16d8ebe8c22c445a1b686c32a626c379b1b48e2a8101969fc03b90446953cc30e945da9388237fa1b9e5f83417aba1fb062d58866a523c256769 SHA512 4bb8f7fc42e7fa5e3897884bd7e722c4fe8ab1e4a87cad4136e1764cdd91d4795f817dcee63a20279315b4839d92fe5244d073ea2310c704f8aacd38bacb28a4

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-450.conf b/x11-drivers/nvidia-drivers/files/nvidia-450.conf
deleted file mode 100644
index d9b1e7d7010..00000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-450.conf
+++ /dev/null
@@ -1,30 +0,0 @@
-# NVIDIA drivers options
-# See /usr/share/doc/nvidia-drivers-*/README.txt* for more information.
-
-# nvidia-drivers and nouveau cannot be used at same time.
-# Comment out the following line if you wish to allow nouveau.
-blacklist nouveau
-
-# Kernel Mode Setting (needed for PRIME offloading, and EGLStream/Wayland)
-# Enabling may possibly cause issues with SLI and Reverse PRIME.
-#options nvidia-drm modeset=1
-
-# Suspend options.
-options nvidia \
-	NVreg_PreserveVideoMemoryAllocations=1 \
-	NVreg_TemporaryFilePath=/var/tmp
-
-# !!! Security Warning !!!
-# Do not change the DeviceFile options unless you know what you are doing.
-# Only add trusted users to the 'video' group, these users may be able to
-# crash, compromise, or irreparably damage the machine.
-options nvidia \
-	NVreg_DeviceFileGID=@VIDEOGID@ \
-	NVreg_DeviceFileMode=432 \
-	NVreg_DeviceFileUID=0 \
-	NVreg_ModifyDeviceFiles=1
-
-# Should be no need to touch anything below.
-alias char-major-195 nvidia
-alias /dev/nvidiactl char-major-195
-remove nvidia modprobe -r --ignore-remove nvidia-drm nvidia-modeset nvidia-uvm nvidia

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-450.119.03.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-450.119.03.ebuild
deleted file mode 100644
index 00288233805..00000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-450.119.03.ebuild
+++ /dev/null
@@ -1,427 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-MODULES_OPTIONAL_USE="driver"
-inherit desktop linux-info linux-mod multilib-build optfeature \
-	readme.gentoo-r1 systemd toolchain-funcs unpacker
-
-NV_KERNEL_MAX="5.12"
-NV_BIN_URI="https://download.nvidia.com/XFree86/Linux-"
-NV_GIT_URI="https://github.com/NVIDIA/nvidia-"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="https://www.nvidia.com/download/index.aspx"
-SRC_URI="
-	amd64? ( ${NV_BIN_URI}x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run )
-	arm64? ( ${NV_BIN_URI}aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run )
-	${NV_GIT_URI}installer/archive/${PV}.tar.gz -> nvidia-installer-${PV}.tar.gz
-	${NV_GIT_URI}modprobe/archive/${PV}.tar.gz -> nvidia-modprobe-${PV}.tar.gz
-	${NV_GIT_URI}persistenced/archive/${PV}.tar.gz -> nvidia-persistenced-${PV}.tar.gz
-	${NV_GIT_URI}settings/archive/${PV}.tar.gz -> nvidia-settings-${PV}.tar.gz
-	${NV_GIT_URI}xconfig/archive/${PV}.tar.gz -> nvidia-xconfig-${PV}.tar.gz"
-# nvidia-installer is unused but here for GPL-2's "distribute sources"
-S="${WORKDIR}"
-
-LICENSE="GPL-2 MIT NVIDIA-r2 ZLIB"
-SLOT="0/${PV%%.*}"
-KEYWORDS="-* amd64"
-IUSE="+X +driver static-libs +tools"
-
-COMMON_DEPEND="
-	acct-group/video
-	acct-user/nvpd
-	net-libs/libtirpc
-	tools? (
-		dev-libs/atk
-		dev-libs/glib:2
-		dev-libs/jansson
-		x11-libs/cairo
-		x11-libs/gdk-pixbuf:2
-		x11-libs/gtk+:3
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXxf86vm
-		x11-libs/pango
-	)"
-RDEPEND="
-	${COMMON_DEPEND}
-	X? (
-		media-libs/libglvnd[X,${MULTILIB_USEDEP}]
-		x11-libs/libX11[${MULTILIB_USEDEP}]
-		x11-libs/libXext[${MULTILIB_USEDEP}]
-	)"
-DEPEND="
-	${COMMON_DEPEND}
-	static-libs? (
-		x11-libs/libX11
-		x11-libs/libXext
-	)
-	tools? (
-		media-libs/libglvnd
-		sys-apps/dbus
-		x11-base/xorg-proto
-		x11-libs/libXrandr
-		x11-libs/libXv
-		x11-libs/libvdpau
-	)"
-BDEPEND="
-	app-misc/pax-utils
-	virtual/pkgconfig"
-
-QA_PREBUILT="opt/* usr/lib*"
-
-PATCHES=(
-	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
-)
-
-DOCS=(
-	README.txt NVIDIA_Changelog supported-gpus.json
-	nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
-)
-HTML_DOCS=( html/. )
-
-pkg_setup() {
-	use driver || return
-
-	local CONFIG_CHECK="
-		PROC_FS
-		~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."
-
-	if kernel_is -lt 5 10; then
-		CONFIG_CHECK+=" PM" # needed for 460.67 backport (bug #778920)
-		local ERROR_PM="CONFIG_PM: is not set but needed with kernel version <5.10"
-	fi
-
-	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="
-		nvidia(video:kernel)
-		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
-		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}"
-		ewarn "  <=sys-kernel/gentoo-sources-${NV_KERNEL_MAX}"
-		ewarn "You are free to try or use /etc/portage/patches, but support will"
-		ewarn "not be given and issues wait until NVIDIA releases a fixed version."
-		ewarn
-		ewarn "Do _not_ file a bug report if run into issues."
-		ewarn
-	fi
-}
-
-src_prepare() {
-	# make user patches usable across versions
-	rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die
-	rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die
-	rm nvidia-settings && mv nvidia-settings{-${PV},} || die
-	rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die
-
-	default
-
-	# prevent detection of incomplete kernel DRM support (bug #603818)
-	sed 's/defined(CONFIG_DRM)/defined(CONFIG_DRM_KMS_HELPER)/' \
-		-i kernel/conftest.sh || die
-
-	sed -e '/Exec=\|Icon=/s/_.*/nvidia-settings/' \
-		-e '/Categories=/s/_.*/System;Settings;/' \
-		-i nvidia-settings/doc/nvidia-settings.desktop || die
-
-	# remove gtk2 support (bug #592730)
-	sed '/^GTK2LIB = /d;/INSTALL.*GTK2LIB/,+1d' \
-		-i nvidia-settings/src/Makefile || die
-
-	sed 's/__USER__/nvpd/' \
-		nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \
-		> nvidia-persistenced.service || die
-
-	gzip -d nvidia-{cuda-mps-control,smi}.1.gz || die
-}
-
-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
-
-	use driver && linux-mod_src_compile
-
-	nvidia-drivers_make modprobe
-	nvidia-drivers_make persistenced
-	use X && nvidia-drivers_make xconfig
-
-	if use tools; then
-		nvidia-drivers_make settings
-	elif use static-libs; then
-		nvidia-drivers_make settings/src out/libXNVCtrl.a
-	fi
-}
-
-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
-		)
-		use amd64 && libs+=( nvidia-compiler )
-
-		if use X; then
-			libs+=(
-				GLX_nvidia
-				vdpau_nvidia
-			)
-			if use amd64; then
-				libs+=(
-					nvidia-fbc
-					nvidia-ifr
-				)
-			fi
-		fi
-
-		local libdir=.
-		if [[ ${ABI} == x86 ]]; then
-			libdir+=/32
-		else
-			libs+=(
-				nvidia-cbl
-				nvidia-cfg
-				nvidia-rtcore
-				nvoptix
-			)
-			use amd64 && libs+=( nvidia-ngx )
-		fi
-
-		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
-	}
-
-	if use driver; then
-		linux-mod_src_install
-
-		insinto /etc/modprobe.d
-		newins "${FILESDIR}"/nvidia-450.conf nvidia.conf
-
-		# used for gpu verification with binpkgs (not kept)
-		insinto /usr/share/nvidia
-		doins supported-gpus.json
-	fi
-
-	if use X; then
-		exeinto /usr/$(get_libdir)/xorg/modules/drivers
-		doexe nvidia_drv.so
-
-		exeinto /usr/$(get_libdir)/xorg/modules/extensions
-		newexe libglxserver_nvidia.so{.${PV},}
-
-		insinto /usr/share/X11/xorg.conf.d
-		newins {,50-}nvidia-drm-outputclass.conf
-
-		# vulkan icd uses libGLX_nvidia.so and so requires X
-		insinto /usr/share/vulkan/icd.d
-		doins nvidia_icd.json
-		insinto /usr/share/vulkan/implicit_layer.d
-		doins nvidia_layers.json
-	fi
-
-	insinto /usr/share/glvnd/egl_vendor.d
-	doins 10_nvidia.json
-
-	insinto /etc/OpenCL/vendors
-	doins nvidia.icd
-
-	insinto /etc/nvidia
-	newins nvidia-application-profiles{-${PV},}-rc
-
-	# install built helpers
-	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_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_install xconfig
-
-	if use tools; then
-		nvidia-drivers_make_install settings
-		doicon nvidia-settings/doc/nvidia-settings.png
-		domenu nvidia-settings/doc/nvidia-settings.desktop
-
-		insinto /usr/share/nvidia
-		newins nvidia-application-profiles{-${PV},}-key-documentation
-
-		exeinto /etc/X11/xinit/xinitrc.d
-		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-	fi
-
-	if use static-libs; then
-		dolib.a nvidia-settings/src/out/libXNVCtrl.a
-
-		insinto /usr/include/NVCtrl
-		doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
-	fi
-
-	# install prebuilt-only helpers
-	exeinto /opt/bin
-
-	doexe nvidia-cuda-mps-control
-	doman nvidia-cuda-mps-control.1
-	doexe nvidia-cuda-mps-server
-
-	doexe nvidia-debugdump
-	dobin nvidia-bug-report.sh
-
-	doexe nvidia-smi
-	doman nvidia-smi.1
-
-	# 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 nvidia-{hibernate,resume,suspend}.service
-
-	# create README.gentoo
-	local DISABLE_AUTOFORMATTING="yes"
-	local DOC_CONTENTS=\
-"Trusted users should be in the 'video' group to use NVIDIA devices.
-You can add yourself by using: gpasswd -a my-user video
-
-See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.
-
-For general information on using nvidia-drivers, please see:
-https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
-	readme.gentoo_create_doc
-
-	einstalldocs
-}
-
-pkg_preinst() {
-	use driver || return
-	linux-mod_pkg_preinst
-
-	# set video group id based on live system (bug #491414)
-	local g=$(getent group video | cut -d: -f3)
-	[[ ${g} ]] || die "Failed to determine video group id"
-	sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
-
-	# try to find driver mismatches using temporary supported-gpus.json
-	for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do
-		g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \
-			"${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null)
-		if [[ ${g} ]]; then
-			g=$((${g##*\"}+1))
-			if ver_test -ge ${g}; then
-				NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}"
-				break
-			fi
-		fi
-	done
-	rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
-}
-
-pkg_postinst() {
-	use driver && linux-mod_pkg_postinst
-
-	readme.gentoo_print_elog
-
-	optfeature "wayland EGLStream with nvidia-drm.modeset=1" gui-libs/egl-wayland
-
-	if [[ -r /proc/driver/nvidia/version &&
-		$(grep -o '  [0-9.]*  ' /proc/driver/nvidia/version) != "  ${PV}  " ]]; then
-		ewarn "Currently loaded NVIDIA modules do not match the newly installed"
-		ewarn "libraries and will lead to GPU-using application issues."
-		use driver && ewarn "The easiest way to fix this is usually to reboot."
-	fi
-
-	if [[ ${NV_LEGACY_MASK} ]]; then
-		ewarn "You are installing a version of nvidia-drivers known not to work"
-		ewarn "with a GPU of the current system. If unwanted, add the mask:"
-		if [[ -d ${EROOT}/etc/portage/package.mask ]]; then
-			ewarn "  echo '${NV_LEGACY_MASK}' > ${EROOT}/etc/portage/package.mask/${PN}"
-		else
-			ewarn "  echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask"
-		fi
-		ewarn "...then downgrade to a legacy branch if possible. For details, see:"
-		ewarn "https://www.nvidia.com/object/IO_32667.html"
-	fi
-
-	# Try to show this message only to users that may really need it
-	# given the workaround is discouraged and usage isn't widespread.
-	if use X && [[ ${REPLACING_VERSIONS} ]] &&
-		ver_test ${REPLACING_VERSIONS} -lt 450.119.03 &&
-		grep -qr Coolbits "${EROOT}"/etc/X11/{xorg.conf,xorg.conf.d/*.conf} 2>/dev/null; then
-		elog
-		elog "Coolbits support with ${PN} has been restricted to require Xorg"
-		elog "with root privilege by NVIDIA (being in video group is not sufficient)."
-		elog "e.g. attempting to change fan speed with nvidia-settings would fail."
-		elog
-		elog "Depending on your display manager (e.g. sddm starts X as root, gdm doesn't)"
-		elog "or if using startx, it may be necessary to emerge x11-base/xorg-server with"
-		elog 'USE="suid -elogind -systemd" if wish to keep using this feature.'
-		elog "Bug: https://bugs.gentoo.org/784248"
-	fi
-}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2021-07-23 15:39 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2021-07-23 15:39 UTC (permalink / raw
  To: gentoo-commits

commit:     1d842522a1650c0bf0be2107aeeb1a8e3656d907
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 23 15:34:47 2021 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Fri Jul 23 15:38:13 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1d842522

x11-drivers/nvidia-drivers: adjust 470 notes for accuracy

nvidia's documentation was a bit misleading, it shouldn't
be actually needed for offloading.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/files/nvidia-470.conf           | 2 +-
 x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-470.conf b/x11-drivers/nvidia-drivers/files/nvidia-470.conf
index 51127be44e7..f5b187ae530 100644
--- a/x11-drivers/nvidia-drivers/files/nvidia-470.conf
+++ b/x11-drivers/nvidia-drivers/files/nvidia-470.conf
@@ -5,7 +5,7 @@
 # Comment out the following line if you wish to allow nouveau.
 blacklist nouveau
 
-# Kernel Mode Setting (needed for PRIME offloading, and EGLStream/Wayland)
+# Kernel Mode Setting (needed EGLStream/Wayland)
 # Enabling may possibly cause issues with SLI and Reverse PRIME.
 #options nvidia-drm modeset=1
 

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild
index 78c29cdf3b6..dc6c66192c9 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild
@@ -446,7 +446,7 @@ pkg_postinst() {
 		elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
 		elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. This feature is considered"
 		elog "experimental but is required for EGLStream (used for wayland acceleration"
-		elog "in compositors that support it) and PRIME offloading."
+		elog "in compositors that support it)."
 		elog
 		elog "If you experience issues, please comment out the option from nvidia.conf."
 		elog "Of note, may possibly cause issues with SLI and Reverse PRIME."


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2021-12-14 15:56 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2021-12-14 15:56 UTC (permalink / raw
  To: gentoo-commits

commit:     0023d464ce869d0d80fc7847dea9ed40a348d1d4
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Mon Nov  1 20:24:52 2021 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Dec 14 15:54:19 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0023d464

x11-drivers/nvidia-drivers: add 495.46{,-r10} with revamped ebuild

495.46 release is almost identical to 495.44 beside adding support
for a few additional cards, so the same issues (e.g. dbus spam) exist
which is patched in -r10 and left alone in -r0.

ebuild-wise, now reads .manifest to mimic nvidia-installer.

For a few advantages:
* less unused .so links or using scanelf to find sonames, matches
  nvidia's intended links
* can bump without constantly adjusting for every new/removed files
* warns if something entirely new needs work (e.g. GBM support)
* more solid when using different .run, e.g. amd64 vs arm64, not
  keyworded yet (waiting for confirmation that it works), but arm64
  install broke in the past because of this

Other changes:
* IUSE=persistenced: add to control installing nvidia-persistenced
  which allows libtirpc and acct-user/nvpd to be optional
 (off by default given primarily intended for headless)
* nvidia-drm_gbm.so: install unconditionally to avoid spurious
  errors with vaapi (no extra dependencies).
* nvidia-settings: hide gtk deprecation noise as it makes the log
  hard to follow, considerably bigger, and the issue is already well
  known (NVIDIA is hopefully due to revamp this tool, e.g. wayland).
* README.gentoo: add abi_x86_32 warning for new users given no longer
  default, the "flip" elog may be removed in the future after users
  had time to adapt with the profile change.
* drop multilib-build eclass as it doesn't make that much sense with
  a binary-only package, compat32 libraries are still installed with
  USE=abi_x86_32 (abi_x86_64 kept for compatibility with ebuilds
  using ${MULTILIB_USEDEP} but is unused)
* fix build if /usr/bin/ld or LD points to ld.lld
* replaced .desktop and gtk2 seds by patches

Various other small adjustments/cleanups, changes will be rolled
out to older branches in time (patches are already based on 390.xx).

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/Manifest                |   7 +
 .../files/nvidia-settings-390.144-desktop.patch    |  12 +
 .../files/nvidia-settings-390.144-no-gtk2.patch    |  11 +
 .../nvidia-settings-390.144-raw-ldflags.patch      |   9 +
 x11-drivers/nvidia-drivers/metadata.xml            |   1 +
 .../nvidia-drivers-495.46-r10.ebuild               | 479 +++++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-495.46.ebuild    | 463 ++++++++++++++++++++
 7 files changed, 982 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index 2a697fe87d6a..f39baeeae3d6 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -1,34 +1,41 @@
 DIST NVIDIA-Linux-aarch64-460.91.03.run 111886330 BLAKE2B 24ab316e216caa61f7edb4dbcb34541709d3229d495e6ead95e99db7403cddee03467ee28d007f0fa3c4f2fa267e1994533c90a7a67885e9e76d501ab0f8aaa5 SHA512 edcfd3b11afe625c8996cda488a8de2e0e40eb4b95c8cf0ead9e1226d7cee8140a83c247d745ceefe997a39cfcf3e3f9bde575d97aa39090f97f88817d89cb28
 DIST NVIDIA-Linux-aarch64-470.86.run 183560501 BLAKE2B dab90940b4259ef65eedf775b4aaf5b25775241b78e7cff6181137dc580531ad96eff0f5c5a1c4f38797d0e4e05414384d00a11c6532105af63f087c2160d328 SHA512 785414e120b5abbc97b4af2645fef8ac8be586eeaf9c759cc2083a0ac0ae62a8c869afdea4e79cdc4f0c3e2de1700f7e0949441943ccc3176e2a42ceaa364245
 DIST NVIDIA-Linux-aarch64-495.44.run 210477242 BLAKE2B 8fb5419be19ab4feab158fb43f142fdc1471b756f7d43afac1c9e787465a991e291cac725dda266b2f454022aea7cb3e249c6f132963a89c97564ef378e876b4 SHA512 4d2ed853bc3d7812652f3e677ca1cf56f1b2563bc0a43cee2cf4544f8d3b30d8f29ccc994fc8f95e2c8b40b04efdca066b616983bf2e2fb9247d2d9a8503d4ea
+DIST NVIDIA-Linux-aarch64-495.46.run 211122869 BLAKE2B 2193f9de186b727af4f22999f6890c1b06a89e88308d5f0cc317b5b1088c62313b34efb4cbd782bc9565083191c443e5cd10b6c8cf89a988153c1abff4e9b1ec SHA512 c830482fa75e841f33a32bd28e842892613968e3e23928f1e1fa45672ef2349fbd33af59341cc4e789f702163b17b10a861b071b42f90e037050769c83ae53b9
 DIST NVIDIA-Linux-x86-390.144.run 49210937 BLAKE2B b7e6edb55af88be74e4322ff1d270388a60a9d9809314c3a0502f86ed97edb99dfcdd3c81c5f51e681c8fcc47ecbfecd124b4d733141d23726226a3965b4c1f1 SHA512 d962c7e7b4b9c4635a887767d34a49c401a89e5975a5e57fa83366ca824ab70d5b8a81f3dce2e05e0528afddc72d70b2fcd69a216bd16d75e7b88ec704390546
 DIST NVIDIA-Linux-x86_64-390.144.run 85000417 BLAKE2B 8ecfa768fb8fe92170ff5b82698a7fb22da8bc557ab2036464bf5650b6fffc7028e25a68e1f5638f6bc171eb45a4aba459465490c7a99aacd36dc769994062e8 SHA512 9503ebf41037a14deba995288a364768cb03fb682de8653a4b0c05955b23603443c41c4216c93eac7d7efc301734416012864ede728324ab47b93ff167d93da4
 DIST NVIDIA-Linux-x86_64-460.91.03.run 178201292 BLAKE2B 4d407b7bb3a99ab71c62c3cd18dc3549c98a24e7af28276e6e6a21dd33efcab017fed3f782f6dfb060c4437cd718f19c2f9900de367cc47bf19fa2718a18ad55 SHA512 4ac11130fe5a8f1c26f459e9c19660b3ff6f23011e9f77b09ca948fc42609e523ecea70d3bf6def50a75b4a3079ab280018753fb6e53875d9bb8093a033e3b70
 DIST NVIDIA-Linux-x86_64-470.62.13.run 272974366 BLAKE2B 08f8e5828adf3823f0988abb67c0a2b92b80637b2a28e24f056884aabad69c7ac929c8c32594c3d63d8a1ee69f58f9a99cadab9b1a2bc3e42ddab3146ab7376c SHA512 5228bdb88a005bec9cd66f23197b0f1ee8b9d7c5c68b3d13352102125d21da67c6800cbe18215d77f2b3dc59a7ab9cdaf78f42b21e87b7eb8123bbc9f3b6a42e
 DIST NVIDIA-Linux-x86_64-470.86.run 273149806 BLAKE2B c7f5a64dfb6547856d5bccdce0fcce0f6180966961245508cdc96e672ae500940f35fad0a9b8e8e9692b5cc67d68504371e041364e3a367deb4e1c3c75222c20 SHA512 e541549967ee992b8e6812cb6a294307217e66c7380ec17ff143ddc637f6e3a5b6c807ba8e29bf4c3d6813d7589a41aa124e8a5709a484ecf7fedfe420598a06
 DIST NVIDIA-Linux-x86_64-495.44.run 282259831 BLAKE2B ca11406a5b1b25d9691ec61d4125457c22438b8f0af0651043235f72ee75c4b264cfde7b04840bbec15c22bc5eb657a46326b49941e6c776a8990430cf052818 SHA512 bc9054e6028ba172906e6eb9a0b8f5cfc3ae74d57f3e95e0f9057879e3af07a4b19479e80d81e948872bc47bbd674f77f5f81d4debd2e2c3ce45058cd9211802
+DIST NVIDIA-Linux-x86_64-495.46.run 280886811 BLAKE2B 156917245f37a5da9121cf570616d6367eec66998a50136f1db0c521fc725e68db27acd5741a9fc3e3d502a2c7e90ccde68a7e56346cb8f5fc65ea419c2f0576 SHA512 859548fa81478acb994b40434fc85824976b1f83bc15846290898854db84ea3c6550586a1d7e89ff3afa248310d2bcf4d2d52d5d8e91cf74e3f7e4108a7002ad
 DIST nvidia-installer-390.144.tar.bz2 150017 BLAKE2B 1a633594ecb9b54ee5a1e3620263a95db30c1ddebf547ecc7f267e1f0b799bcdb44cc3ddd6c96eda085d9be5c8f691e92556296f250495d80eec0c2f155f5bd5 SHA512 e4c624afc18bd1d61264f93bdcbc72afe42687baadf31683a6dd11a45c6257f6a5185b91f4b3d4c0316b8eb03ed79511f9ad260ee9e6f299fc136f5dc2178e42
 DIST nvidia-installer-460.91.03.tar.bz2 144463 BLAKE2B b8c381158f614331fbfd04dcfdd7227fcb3eb16cbe4e3cbcbb34ba6af2370b05ebd72dc46375b2099b950817e6a0565c418e62b6364f1d7269f78c1dce5f5535 SHA512 10c873597202a1d8aa0dc4629b1e64f8c1f65a68c91f6babe312cf9fabbb9257b77d03a3917c0f4f5d6994e90cf58c6c7d9a802a675ea3ef60b571c9b7abc391
 DIST nvidia-installer-470.63.01.tar.bz2 146093 BLAKE2B 49f16fd7b27552013067410e3cfc80d44a4ec9c454d5db542caaa84b34e20cddabdeba2391d451aab39c832745fc2fbfc5bda3876a67859027d83b482d55118f SHA512 92d680d845abb39d77a51ccc47f1102825387b664e87fb2f5d976a0a4cc6baee508fe86bc92f5f0c77f1cec61506826b155ca1ef02708c39d145c9d897868397
 DIST nvidia-installer-470.86.tar.bz2 146359 BLAKE2B e1df27887ef7168dc50d54fd688fa04e80f79065c26386aa8f5f2b0726302a0dde51093d93c24d4145d0ff72cea14e76eee4fb9503c16a562c211dab9b2fdeaf SHA512 8bcc9a32d9f6c3cb778838124be5b112edf1b38753842bb436db74ae6448b4b7a367b79585f28bee9f2a41844e71083cea9b59beab99c14598a8d855ac432113
 DIST nvidia-installer-495.44.tar.bz2 147036 BLAKE2B a340d1629ab133d072cd7d673a474ec834c2cd71f35b2e98d837deaa6535a784c93978ec484c5060ff28cf845d5cffa08b368b3b8b18a7ddabb4a7cb1c7a0ad0 SHA512 9f9f592b2d73515a484720eb421774a28b39af0ba3fbea127d1987533ed0f42104f640da6211f9eee63cc1063aad68dddfe8d378e3ef590c7f77d54e56bbb8bd
+DIST nvidia-installer-495.46.tar.gz 202462 BLAKE2B 2ad427e0c4df3ba1ef2faa7b92c4a21465961b6fb6d5f6f1997a8d1039b35341789168f82c0b9397f57f1574cb97418b69823fe5b5d321188a841e7347bb0f8c SHA512 c2fc5935e6736ea6e146a711ff05267ec42da6b1f7286589556a77f97fa02e30dacf098f9e23319ebf70808ae93275bdf3309740c6210a7d57636b483f11be74
 DIST nvidia-modprobe-390.144.tar.bz2 35308 BLAKE2B 1930c315aeb0e296c0d4795170d44a275da5ff8838fd8230559227852001b679fbca2830142ca7abcfa9c84626c9d9f222f7ab0cb3984d8d517f5ce431e5a9ea SHA512 d542c1a7634a8c5ff803ca79f2fc02b17b129185177226ad60625a4d246bbaf740719ff024dbde0f5aa8273949446561261d700a27cf88217c2572e69882142c
 DIST nvidia-modprobe-460.91.03.tar.bz2 38144 BLAKE2B 660b381f8757fe8862f7c4a971e44d3124afa3783d52af29543b8ed67486ba03b76c0b5d8dfadc5da8fdcc2c8799ec5f9c3016fd58e9c209fcc3ae897fb0436b SHA512 aa47a9c0744b8e11e87d2c0f300b13fee435cd5225444be7fb0b6bea49af33811dfa723a9ccfe904c7de2b5a8da36b707c1024eb495e3f0b587e3231a4bc4f39
 DIST nvidia-modprobe-470.63.01.tar.bz2 38357 BLAKE2B 906f966df5aafe5478550bb30b4d624247c2c621ecc5e21fa9aa0e37f1ffe39b3e44d70f24864d49c99c63d5a5045057f46b9b364f6f662bd5676b242fa3c265 SHA512 f41a168fe4b2278cd4cc53dd0e334e7e7dfccc91abd818b7e2b5d67c3a806d2ce5d1b11cd3cdc2f4507cc0baf42c3c5985784e19665c7a3bafb9ab433132271e
 DIST nvidia-modprobe-470.86.tar.bz2 38361 BLAKE2B eacef469888392d5993d018421e50cc594fadfcbe1367f13b68519c15d097759a91d3e294e3dc7391d2e3f93783fcd2e696ef25a7b4aad90abd18d992c480623 SHA512 5478bdd01aa7af79fcc6264b347b78bf68d2ade77eac388eb6968db72056859443778d0aad7bae1d5d63c01af332a21504fff13ac3e226446c8a71beef777860
 DIST nvidia-modprobe-495.44.tar.bz2 38377 BLAKE2B f1695c778c25d41795b1bda43df68a1dea9c3d16fc00acebe5948aeffd8aef174cb864d85260565fad8ac8c454ad3ad0cfb76529d9f88c3f10547de11492c61c SHA512 cdf7331609ce2a400f2b0e987bdbd2450a07e837971ac94b5ab746874259e6e7a4bff5eb8b9518f786365af74e8650f1c5ddfb745f867a6777825f550a6a74c0
+DIST nvidia-modprobe-495.46.tar.gz 43480 BLAKE2B 32b6592ca1df822227adc9a05848e98b09cfbde676b152d432aaea43ba753ccd8451515b37e275ef58159c468502b7e6d8020ce82d140c63176cd2bbdc65d1aa SHA512 1b6ba93ea72a6dbe345d360fc189ab3be038e2bf1bc93c8be2656aaaf0a81cd3a71aeefc244a71ad20db42a9e5f3145934a6c4cae70f0e8935d9891fe784676b
 DIST nvidia-persistenced-390.144.tar.bz2 48672 BLAKE2B 82a92a33eb40971e56b772ffab121214f5675d0a8c618e356e7b55bc38ff9605fd2701d740d00a1e26c158c9df0ab38d0ba10891a3850f8e8cbee8fb231ba52d SHA512 4432f2dd18c7c91fd0d59e4f2bdf7254f58ed2a6b652d319c4f7ce674522da1797a68dd6939c38e71710dcd3b754ae7cc8c6e7acb47a76e13d2091e8a8ee99c8
 DIST nvidia-persistenced-460.91.03.tar.bz2 46160 BLAKE2B f7f34cc12de2a4d69184c60caf7a8e8025b58005ade0a3e9a1a0e95856055f7211a710a1145d674d8a2e97cf70a43175cbc5c9a5dabc49ce378623be1720c6ea SHA512 c3ff5875353c264cb224b3f512ff8308bf1b0b95282e34500d88da2574719c3c514581e5900841b089c2e6f0fe29198fa06a11668de8e21c59f9f96244a74757
 DIST nvidia-persistenced-470.63.01.tar.bz2 46544 BLAKE2B c2bbc76bc06db1dc963ed34731fc9ca9ad2145dad4326586a7e37a395ff8ffac940800138bec08cdfafa9eb8ab5b79412e66e78cb5ef58aca4ee476d31ce0c89 SHA512 6ae699cae67911f92ac2dae82856e0a4d31a8d47a3d2e8e6fbae6469f28960caab4a56aae1a1ac3de0339c78dedc344c09136ec922690abd9fb5abc96afba5ca
 DIST nvidia-persistenced-470.86.tar.bz2 46523 BLAKE2B 29b60ff1a4e7db8ff8a2b32ab6ff2efd5d5010cb66ba1678e76a55fbe4b9f51ced06f9939ee2b44d5e073d7cc5b7b246fd2a531d9607b452a9a85cf6519c783e SHA512 6194ebc246d305ad5cc4276c1d2fa06c383e28ee8accef0e39ef3dedf637684837c10b78ee2b96a0b77d3e6e5e3c3555fe12629984f8ebc6358b96e303cb81a2
 DIST nvidia-persistenced-495.44.tar.bz2 46259 BLAKE2B ed34bb3b82a24fe7e651eaf671469988f32a9fa4782f0a8d8f08499b85cee596996611f08fe8e26a295a3073ae6a5bd59c44a1d9c6db41138339656e932aa7df SHA512 d295caaad65336495e22ebf890f6a1d323b9fabd0fb4900c8d4e37044f472836327743fceb6d433bd1ef61dffe8a84a655ddf81b2eff085c7e913105a05cb47e
+DIST nvidia-persistenced-495.46.tar.gz 53692 BLAKE2B 0c449f2a870d3e29d7119250ecab962dca55a81f6cbbd110be05a7b8a739ca1f130ba255712425fe7f3d770a83f819c40c2464df2ca4c03b94df075d33f034b5 SHA512 402db637fff090dfea2bf26d44060297e21f53c23bb2abdd22e945f90d2fb5141621fa73b732257bb2fab488522b669af9b03c821467dc23f6b9f4dc00998917
 DIST nvidia-settings-390.144.tar.bz2 1109104 BLAKE2B 6724f49c7e469f580206fc17308190bd346b6167348a8b8b3886209f58aca61b65eff30658484c1fee40af8c0d89fb62f73329b05a6ac45178ea4a6870e5aa85 SHA512 90afe201361d492c3152057d3ec46d68c0cd722fe0ea0587aa1156718017d59fb5f26f3db89d91d4680b2390617867dbe93bd14e1fb3dc70402527bfacf0ae5c
 DIST nvidia-settings-460.91.03.tar.bz2 1061093 BLAKE2B 13f1da07eda3a0e7e96ac69091e4a34fcd75a8f459a4db3840c64272dd54080694c4df3b7c326884ff032eb1b8708b5e19107b112afee2c80eed242281292b02 SHA512 172ea3366065aa30e71a5a47b31366d076477b8801a8a37e0d76972406e69c8872daa80011ee020960bc5e00163c4e9e5f63aa4f0dc726065671d76851b4ad71
 DIST nvidia-settings-470.63.01.tar.bz2 1062399 BLAKE2B b3193ef94cf3cde41cf2b5f38cc39c090e54b5c0f980bdf6bff318554d155cb3639d5d65baf7148b5a5d378f483b3235aaa4ffa0cd625b44e7dd4ffcb7156f00 SHA512 d8458f8e103de0a5026857009da6cd55e969fbc2481d526b7e22fac92e865f9f226a2670bd984b743be093acd0fcd1970c1a20819ca736b0582b645a5c4c6e1e
 DIST nvidia-settings-470.86.tar.bz2 1062317 BLAKE2B 348c0346cb224eacceb570c833d74dbafc79be0fa54cf1953a96ba4198e0c76784e482284fc6790edab31bdcff3a70fe870e4634c5442b455db9c92332b28747 SHA512 4a53f4d3f52e569c4957890fbc4a4c7b2429bbca5ec07901ebb20f1848cc9a5da3e36e206719419462076793bba0b51d37a11e0856be371a19f5b7f0f2da26e7
 DIST nvidia-settings-495.44.tar.bz2 1062420 BLAKE2B 98d5ac73f279bc3d415e3902946eca15fe4d61978dde5b21a96e9e1367129b9949078bd2c3778d344237ff4b9cf65a2921025a6410394f007dd97f441dc320f4 SHA512 e69bb32e47a43368de1959a0c8a877281bba0139119b1a34f6da86e006a8b0dce5bafe0fd017221be40a6bddcd93934e9479cbb8f04fb979b84f5f206835118e
+DIST nvidia-settings-495.46.tar.gz 1235052 BLAKE2B aa4396b56a41f19f0876a135b6c2de0f74b3d8a50fb7ad51b00394868c3354cb85d0cb54dac146537010ea4d091daf02149e5ffc5d59f8ca27f2e08b9d798dd3 SHA512 f9019d651f482aa35ccade111dabcc6d21e2dcb229a6102d5b8c9c72df648fa053a01bf0d3efef27d974aed2a23cbfc5022ebb6e9a93eba309b0863068d2423a
 DIST nvidia-xconfig-390.144.tar.bz2 107147 BLAKE2B 1b6ea6dfbe33474cd3e9409a7559a38716c4ce8d2583354232225a2a7ec10c7dbc2163f07c6849f4929e16c2fad179d583daad8a67d9cba950a62209b8ebebfa SHA512 09bb3558be178deda4b26031560ebad4e98e68b6186e247d4638cbcb4bb5dc05937c6baeaf1cd4db5a7b7433af97c3150c526ed972ff51b6e1c7552235ec6b51
 DIST nvidia-xconfig-460.91.03.tar.bz2 108477 BLAKE2B d95505e508ca16d8ebe8c22c445a1b686c32a626c379b1b48e2a8101969fc03b90446953cc30e945da9388237fa1b9e5f83417aba1fb062d58866a523c256769 SHA512 4bb8f7fc42e7fa5e3897884bd7e722c4fe8ab1e4a87cad4136e1764cdd91d4795f817dcee63a20279315b4839d92fe5244d073ea2310c704f8aacd38bacb28a4
 DIST nvidia-xconfig-470.63.01.tar.bz2 109078 BLAKE2B 786d4be4e1aa23ecdd51b0c5628e27a42472f4f119979acc62d100e094d077be6c7b893353d7d31ea4a47fe99135c01ea4ca0b539da62379295644fcd7b38c79 SHA512 5a3b599cba4be7e272fb1fc3c1dc31c09b1f101f81e7d24a27cf88d96746d42c84ba89f5ebeb4f602e012e0aa04804015cab5cf24947e60131652f1e010e96e2
 DIST nvidia-xconfig-470.86.tar.bz2 108946 BLAKE2B 8711d46e18db89c94fe9986e3ea296504d1d4795be745f9ab9eac35e499220335fe882258bc52c1a9dedd7848c9715f8bf481e3690913204db71584b0913b85e SHA512 ea658567b7532ae3a33a1783ef224b7f57db34391280f529352cce042b8104ee8092b3585b7eef8cd5b295e4f8246e872d935c32edf746ca38651b2df21e7e6a
 DIST nvidia-xconfig-495.44.tar.bz2 108699 BLAKE2B 8027d9b14f16c792e0839746c549979017e52724a5826cad3b53cda0fa2638b6f7dfe72353e36b84084f4a56a004cd91f87ff1d1d9e542b5d760e47092268993 SHA512 624aa71f319d7d8e3383580eda5c6cfc986ef4c3a9c14493cd561cd3ba758763d79731bb7e7e03fc89d3b8a3a8b65cee324de1d9980b5725678ccd50cb26175e
+DIST nvidia-xconfig-495.46.tar.gz 142633 BLAKE2B 1df2a080dba81b3c9e984a1d2e7d49f3e8adf9f1afb28dfe6a41a9f54b03e4830d42851a16583703c2bf88f11989851aaf23fc8dad0d3b5f2f8c3885dbb5db7e SHA512 b60d65e421460e4bdad579b36a141e82b869d34ca21849bdc33a445466c1b8ab505ab4ab82d6801e05f85dcac286566ec792d8c7708ba511aebfebc29ec0447d

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-settings-390.144-desktop.patch b/x11-drivers/nvidia-drivers/files/nvidia-settings-390.144-desktop.patch
new file mode 100644
index 000000000000..a00545ad6044
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-settings-390.144-desktop.patch
@@ -0,0 +1,12 @@
+For icon: https://github.com/NVIDIA/nvidia-settings/pull/56
+--- a/nvidia-settings/doc/nvidia-settings.desktop
++++ b/nvidia-settings/doc/nvidia-settings.desktop
+@@ -5,5 +5,5 @@
+ Comment=Configure NVIDIA X Server Settings
+-Exec=__UTILS_PATH__/nvidia-settings
+-Icon=__PIXMAP_PATH__/nvidia-settings.png
+-Categories=__NVIDIA_SETTINGS_DESKTOP_CATEGORIES__
++Exec=nvidia-settings
++Icon=nvidia-settings
++Categories=System;HardwareSettings;
+ 

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-settings-390.144-no-gtk2.patch b/x11-drivers/nvidia-drivers/files/nvidia-settings-390.144-no-gtk2.patch
new file mode 100644
index 000000000000..d1689ee27280
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-settings-390.144-no-gtk2.patch
@@ -0,0 +1,11 @@
+--- a/nvidia-settings/src/Makefile
++++ b/nvidia-settings/src/Makefile
+@@ -132,3 +132,2 @@
+ GTK2LIB_DIR  = $(OUTPUTDIR)/gtk2
+-GTK2LIB = $(OUTPUTDIR)/$(GTK2LIB_NAME)
+ GTK2LIB_SONAME = $(GTK2LIB_NAME).$(NVIDIA_SETTINGS_VERSION)
+@@ -276,4 +275,2 @@
+ 	$(MKDIR) $(LIBDIR)
+-	$(INSTALL) $(INSTALL_LIB_ARGS) $(GTK2LIB) \
+-	    $(LIBDIR)/$(GTK2LIB_SONAME)
+ ifdef BUILD_GTK3LIB

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-settings-390.144-raw-ldflags.patch b/x11-drivers/nvidia-drivers/files/nvidia-settings-390.144-raw-ldflags.patch
new file mode 100644
index 000000000000..f815dadce704
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-settings-390.144-raw-ldflags.patch
@@ -0,0 +1,9 @@
+Currently need to pass ABI flags if LD is ld.lld for USE=tools
+ld.lld: error: target emulation unknown: -m or at least one .o file required
+--- a/nvidia-settings/utils.mk
++++ b/nvidia-settings/utils.mk
+@@ -477,3 +477,3 @@
+ 	$(at_if_quiet)cd $$(dir $(1)); \
+-	$$(call quiet_cmd_no_at,LD) -r -z noexecstack --format=binary \
++	$$(call quiet_cmd_no_at,LD) $$(RAW_LDFLAGS) -r -z noexecstack --format=binary \
+ 	    $$(notdir $(1)) -o $$(OUTPUTDIR_ABSOLUTE)/$$(notdir $$@)

diff --git a/x11-drivers/nvidia-drivers/metadata.xml b/x11-drivers/nvidia-drivers/metadata.xml
index a216893a49e5..ed2291926c60 100644
--- a/x11-drivers/nvidia-drivers/metadata.xml
+++ b/x11-drivers/nvidia-drivers/metadata.xml
@@ -11,6 +11,7 @@
 	</maintainer>
 	<use>
 		<flag name="driver">Install kernel driver modules</flag>
+		<flag name="persistenced">Install the persistence daemon for keeping devices state when unused</flag>
 		<flag name="tools">Install additional tools such as nvidia-settings</flag>
 	</use>
 	<upstream>

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-495.46-r10.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-495.46-r10.ebuild
new file mode 100644
index 000000000000..ca77b3dba138
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-495.46-r10.ebuild
@@ -0,0 +1,479 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MODULES_OPTIONAL_USE="driver"
+inherit desktop flag-o-matic linux-mod multilib readme.gentoo-r1 \
+	systemd toolchain-funcs unpacker
+
+NV_KERNEL_MAX="5.15"
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="https://www.nvidia.com/download/index.aspx"
+SRC_URI="
+	amd64? ( https://us.download.nvidia.com/XFree86/Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run )
+	arm64? ( https://us.download.nvidia.com/XFree86/aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run )
+	$(printf "https://github.com/NVIDIA/%s/archive/refs/tags/${PV}.tar.gz -> %s-${PV}.tar.gz " \
+		nvidia-{installer,modprobe,persistenced,settings,xconfig}{,})"
+# nvidia-installer is unused but here for GPL-2's "distribute sources"
+S="${WORKDIR}"
+
+LICENSE="NVIDIA-r2 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
+SLOT="0/${PV%%.*}"
+KEYWORDS="-* ~amd64"
+IUSE="+X abi_x86_32 abi_x86_64 +driver persistenced static-libs +tools wayland"
+RESTRICT="bindist"
+
+COMMON_DEPEND="
+	acct-group/video
+	persistenced? (
+		acct-user/nvpd
+		net-libs/libtirpc:=
+	)
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		dev-libs/jansson:=
+		media-libs/harfbuzz:=
+		x11-libs/cairo
+		x11-libs/gdk-pixbuf:2
+		x11-libs/gtk+:3
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXxf86vm
+		x11-libs/pango
+	)"
+RDEPEND="
+	${COMMON_DEPEND}
+	X? (
+		media-libs/libglvnd[X,abi_x86_32(-)?]
+		x11-libs/libX11[abi_x86_32(-)?]
+		x11-libs/libXext[abi_x86_32(-)?]
+	)
+	wayland? (
+		>=gui-libs/egl-wayland-1.1.7-r1
+		media-libs/libglvnd
+		>=media-libs/mesa-21.2[gbm(+)]
+		x11-libs/libdrm
+	)"
+DEPEND="
+	${COMMON_DEPEND}
+	static-libs? (
+		x11-libs/libX11
+		x11-libs/libXext
+	)
+	tools? (
+		media-libs/libglvnd
+		sys-apps/dbus
+		x11-base/xorg-proto
+		x11-libs/libXrandr
+		x11-libs/libXv
+		x11-libs/libvdpau
+	)"
+BDEPEND="
+	sys-devel/m4
+	virtual/pkgconfig"
+
+QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
+
+PATCHES=(
+	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
+	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
+	"${FILESDIR}"/nvidia-settings-390.144-no-gtk2.patch
+	"${FILESDIR}"/nvidia-settings-390.144-raw-ldflags.patch
+)
+
+pkg_setup() {
+	use driver || return
+
+	local CONFIG_CHECK="
+		PROC_FS
+		~DRM_KMS_HELPER
+		~SYSVIPC
+		~!DRM_SIMPLEDRM
+		~!LOCKDEP
+		~!SLUB_DEBUG_ON
+		!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 for wayland / nvidia-drm.modeset=1.
+	Cannot be directly selected in the kernel's menuconfig, and may need
+	selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or
+	DRM_I915=y, DRM_NOUVEAU=m also acceptable if a module and not built-in.
+	Note: DRM_SIMPLEDRM may cause issues and is better disabled for now."
+
+	use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764
+
+	MODULE_NAMES="
+		nvidia(video:kernel)
+		nvidia-drm(video:kernel)
+		nvidia-modeset(video:kernel)
+		nvidia-peermem(video:kernel)
+		nvidia-uvm(video:kernel)"
+
+	linux-mod_pkg_setup
+
+	[[ ${MERGE_TYPE} == binary ]] && return
+
+	BUILD_PARAMS='NV_VERBOSE=1 IGNORE_CC_MISMATCH=yes SYSSRC="${KV_DIR}" SYSOUT="${KV_OUT_DIR}"'
+	BUILD_TARGETS="modules"
+
+	if linux_chkconfig_present CC_IS_CLANG; then
+		ewarn "Warning: building ${PN} with a clang-built kernel is experimental"
+
+		BUILD_PARAMS+=' CC=${CHOST}-clang'
+		if linux_chkconfig_present LD_IS_LLD; then
+			BUILD_PARAMS+=' LD=ld.lld'
+			if linux_chkconfig_present LTO_CLANG_THIN; then
+				# kernel enables cache by default leading to sandbox violations
+				BUILD_PARAMS+=' ldflags-y=--thinlto-cache-dir= LDFLAGS_MODULE=--thinlto-cache-dir='
+			fi
+		fi
+	fi
+
+	if kernel_is -gt ${NV_KERNEL_MAX/./ }; then
+		ewarn "Kernel ${KV_MAJOR}.${KV_MINOR} is either known to break this version of ${PN}"
+		ewarn "or was not tested with it. It is recommended to use one of:"
+		ewarn "  <=sys-kernel/gentoo-kernel-${NV_KERNEL_MAX}"
+		ewarn "  <=sys-kernel/gentoo-sources-${NV_KERNEL_MAX}"
+		ewarn "You are free to try or use /etc/portage/patches, but support will"
+		ewarn "not be given and issues wait until NVIDIA releases a fixed version."
+		ewarn
+		ewarn "Do _not_ file a bug report if run into issues."
+		ewarn
+	fi
+}
+
+src_prepare() {
+	# make patches usable across versions
+	rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die
+	rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die
+	rm nvidia-settings && mv nvidia-settings{-${PV},} || die
+	rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die
+
+	default
+
+	# prevent detection of incomplete kernel DRM support (bug #603818)
+	sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
+		-i kernel/conftest.sh || die
+
+	sed 's/__USER__/nvpd/' \
+		nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \
+		> "${T}"/nvidia-persistenced.service || die
+
+	# enable nvidia-drm.modeset=1 by default with USE=wayland
+	cp "${FILESDIR}"/nvidia-470.conf "${T}"/nvidia.conf || die
+	use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die
+
+	# temporary workaround for dbus powerd spam in 495 series
+	# (jz -> jmp after nvidia.powerd.server, need RESTRICT=bindist)
+	# https://forums.developer.nvidia.com/t/bug-nvidia-v495-29-05-driver-spamming-dbus-enabled-applications-with-invalid-messages/192892/14
+	if use amd64; then
+		sed 's/\x0f\x84\[\x01\x00\x00\x4c\x8d/\xe9\x5c\x01\x00\x00\x00\x4c\x8d/' \
+			-i libnvidia-glcore.so.495.46 || die
+		sed 's/\x0f\x84\x65\x01\x00\x00\x83\xec\x08\x89/\xe9\x66\x01\x00\x00\x00\x83\xec\x08\x89/' \
+			-i 32/libnvidia-glcore.so.495.46 || die
+	fi
+}
+
+src_compile() {
+	tc-export AR CC LD OBJCOPY
+
+	NV_ARGS=(
+		PREFIX="${EPREFIX}"/usr
+		HOST_CC="$(tc-getBUILD_CC)"
+		HOST_LD="$(tc-getBUILD_LD)"
+		NV_USE_BUNDLED_LIBJANSSON=0
+		NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
+	)
+
+	use driver && linux-mod_src_compile
+
+	emake "${NV_ARGS[@]}" -C nvidia-modprobe
+	use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced
+	use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig
+
+	if use tools; then
+		# cflags: avoid noisy logs, only use here and set first to let override
+		# ldflags: abi currently needed if LD=ld.lld
+		CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
+			RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" \
+			emake "${NV_ARGS[@]}" -C nvidia-settings
+	elif use static-libs; then
+		emake "${NV_ARGS[@]}" -C nvidia-settings/src out/libXNVCtrl.a
+	fi
+}
+
+src_install() {
+	local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir)
+
+	NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} )
+
+	local -A paths=(
+		[APPLICATION_PROFILE]=/usr/share/nvidia
+		[CUDA_ICD]=/etc/OpenCL/vendors
+		[EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d
+		[FIRMWARE]=/lib/firmware/nvidia/${PV}
+		[GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm
+		[GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d
+		[VULKAN_ICD_JSON]=/usr/share/vulkan
+		[WINE_LIB]=/usr/${libdir}/nvidia/wine
+		[XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d
+
+		[GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions
+		[GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules
+		[XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules
+	)
+
+	local skip_files=(
+		$(usex X '' '
+			libGLX_nvidia libglxserver_nvidia
+			nvidia_icd.json nvidia_layers.json')
+		$(usex wayland '' '
+			libnvidia-egl-gbm 15_nvidia_gbm
+			libnvidia-vulkan-producer')
+		libGLX_indirect # non-glvnd unused fallback
+		libnvidia-gtk nvidia-{settings,xconfig} # built from source
+		libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland
+	)
+	local skip_modules=(
+		$(usex X '' 'nvfbc vdpau xdriver')
+		$(usex driver '' 'gsp')
+		installer nvpd # handled separately / built from source
+	)
+	local skip_types=(
+		GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd
+		OPENCL_WRAPPER.\* # virtual/opencl
+		DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF # handled separately / unused
+	)
+
+	local DOCS=(
+		README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json
+		nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
+	)
+	local HTML_DOCS=( html/. )
+	einstalldocs
+
+	local DISABLE_AUTOFORMATTING=yes
+	local DOC_CONTENTS="\
+Trusted users should be in the 'video' group to use NVIDIA devices.
+You can add yourself by using: gpasswd -a my-user video
+
+See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.\
+$(use amd64 && usex abi_x86_32 '' "
+
+Note that without USE=abi_x86_32 on ${PN}, 32bit applications
+(typically using wine / steam) will not be able to use GPU acceleration.")
+
+For general information on using ${PN}, please see:
+https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
+	readme.gentoo_create_doc
+
+	if use driver; then
+		linux-mod_src_install
+
+		insinto /etc/modprobe.d
+		doins "${T}"/nvidia.conf
+
+		# used for gpu verification with binpkgs (not kept, see pkg_preinst)
+		insinto /usr/share/nvidia
+		doins supported-gpus/supported-gpus.json
+	fi
+
+	emake "${NV_ARGS[@]}" -C nvidia-modprobe install
+	fowners :video /usr/bin/nvidia-modprobe #505092
+	fperms 4710 /usr/bin/nvidia-modprobe
+
+	if use persistenced; then
+		emake "${NV_ARGS[@]}" -C nvidia-persistenced install
+		newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced
+		newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced
+		systemd_dounit "${T}"/nvidia-persistenced.service
+	fi
+
+	if use tools; then
+		emake "${NV_ARGS[@]}" -C nvidia-settings install
+
+		doicon nvidia-settings/doc/nvidia-settings.png
+		domenu nvidia-settings/doc/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+	fi
+
+	if use static-libs; then
+		dolib.a nvidia-settings/src/out/libXNVCtrl.a
+
+		insinto /usr/include/NVCtrl
+		doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
+	fi
+
+	use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install
+
+	# mimic nvidia-installer by reading .manifest to install files
+	# 0:file 1:perms 2:type 3+:subtype/arguments -:module
+	local m into
+	while IFS=' ' read -ra m; do
+		! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] ||
+			eval '[[ " ${m[0]##*/}" =~ ^(\ '${skip_files[*]/%/.*|\\}' )$ ]]' ||
+			eval '[[ " ${m[2]}" =~ ^(\ '${skip_types[*]/%/|\\}' )$ ]]' ||
+			has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue
+
+		case ${m[2]} in
+			MANPAGE)
+				gzip -dc ${m[0]} | newman - ${m[0]%.gz}; assert
+				continue
+			;;
+			GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../
+			VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/
+		esac
+
+		if [[ -v paths[${m[2]}] ]]; then
+			into=${paths[${m[2]}]}
+		elif [[ ${m[2]} =~ _BINARY$ ]]; then
+			into=/opt/bin
+		elif [[ ${m[3]} == COMPAT32 ]]; then
+			use abi_x86_32 || continue
+			into=/usr/${libdir32}
+		elif [[ ${m[2]} =~ _LIB$|_SYMLINK$ ]]; then
+			into=/usr/${libdir}
+		else
+			die "No known installation path for ${m[0]}"
+		fi
+		[[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/}
+		[[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/}
+
+		if [[ ${m[2]} =~ _SYMLINK$ ]]; then
+			[[ ${m[4]: -1} == / ]] && m[4]=${m[5]}
+			dosym ${m[4]} ${into}/${m[0]}
+			continue
+		fi
+		[[ ${m[0]} =~ ^libnvidia-ngx.so|^libnvidia-egl-gbm.so ]] &&
+			dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 # soname not in .manifest
+
+		printf -v m[1] %o $((m[1] | 0200)) # 444->644
+		insopts -m${m[1]}
+		insinto ${into}
+		doins ${m[0]}
+	done < .manifest || die
+
+	# MODULE:installer non-skipped extras
+	exeinto /lib/systemd/system-sleep
+	doexe systemd/system-sleep/nvidia
+	dobin systemd/nvidia-sleep.sh
+	systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend}.service
+
+	dobin nvidia-bug-report.sh
+}
+
+pkg_preinst() {
+	has_version "${CATEGORY}/${PN}[abi_x86_32]" && NV_HAD_ABI32=
+	has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND=
+
+	use driver || return
+	linux-mod_pkg_preinst
+
+	# set video group id based on live system (bug #491414)
+	local g=$(getent group video | cut -d: -f3)
+	[[ ${g} ]] || die "Failed to determine video group id"
+	sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
+
+	# try to find driver mismatches using temporary supported-gpus.json
+	for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do
+		g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \
+			"${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null)
+		if [[ ${g} ]]; then
+			g=$((${g##*\"}+1))
+			if ver_test -ge ${g}; then
+				NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}"
+				break
+			fi
+		fi
+	done
+	rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
+}
+
+pkg_postinst() {
+	use driver && linux-mod_pkg_postinst
+
+	readme.gentoo_print_elog
+
+	if [[ -r /proc/driver/nvidia/version &&
+		$(</proc/driver/nvidia/version) != *"  ${PV}  "* ]]; then
+		ewarn "Currently loaded NVIDIA modules do not match the newly installed"
+		ewarn "libraries and may prevent launching GPU-accelerated applications."
+		use driver && ewarn "The easiest way to fix this is usually to reboot."
+	fi
+
+	if [[ $(</proc/cmdline) == *slub_debug=[!-]* ]]; then
+		ewarn "Detected that the current kernel command line is using 'slub_debug=',"
+		ewarn "this may lead to system instability/freezes with this version of"
+		ewarn "${PN}. Bug: https://bugs.gentoo.org/796329"
+	fi
+
+	if [[ -v NV_LEGACY_MASK ]]; then
+		ewarn
+		ewarn "***WARNING***"
+		ewarn
+		ewarn "You are installing a version of ${PN} known not to work"
+		ewarn "with a GPU of the current system. If unwanted, add the mask:"
+		if [[ -d ${EROOT}/etc/portage/package.mask ]]; then
+			ewarn "  echo '${NV_LEGACY_MASK}' > ${EROOT}/etc/portage/package.mask/${PN}"
+		else
+			ewarn "  echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask"
+		fi
+		ewarn "...then downgrade to a legacy branch if possible. For details, see:"
+		ewarn "https://www.nvidia.com/object/IO_32667.html"
+	fi
+
+	if use !abi_x86_32 && [[ -v NV_HAD_ABI32 ]]; then
+		elog
+		elog "USE=abi_x86_32 is disabled, 32bit applications will not be able to"
+		elog "use nvidia-drivers for acceleration without it (e.g. commonly used"
+		elog "with app-emulation/wine-* or steam). Re-enable if needed."
+	fi
+
+	if use wayland && use driver && [[ ! -v NV_HAD_WAYLAND ]]; then
+		elog
+		elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
+		elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. This feature is considered"
+		elog "experimental but is required for wayland."
+		elog
+		elog "If you experience issues, either disable wayland or edit nvidia.conf."
+		elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
+	fi
+
+	if use wayland && [[ ${REPLACING_VERSIONS} ]] &&
+		ver_test ${REPLACING_VERSIONS} -lt 495.29.05; then
+		elog
+		elog "While this version of ${PN} adds GBM support (allowing a"
+		elog "wider range of wayland compositors, such as sway), be warned it is"
+		elog "very experimental and many applications are known to have issues."
+		elog
+		elog "While not essential, some features also need >=egl-wayland-1.1.8"
+		elog "which is known to cause regressions with EGLStream (GBM alternative)."
+		elog
+		elog "If lacking a cursor with wlroots, try WLR_NO_HARDWARE_CURSORS=1"
+	fi
+
+	# Try to show this message only to users that may really need it
+	# given the workaround is discouraged and usage isn't widespread.
+	if use X && [[ ${REPLACING_VERSIONS} ]] &&
+		ver_test ${REPLACING_VERSIONS} -lt 460.73.01 &&
+		grep -qr Coolbits "${EROOT}"/etc/X11/{xorg.conf,xorg.conf.d/*.conf} 2>/dev/null; then
+		elog
+		elog "Coolbits support with ${PN} has been restricted to require Xorg"
+		elog "with root privilege by NVIDIA (being in video group is not sufficient)."
+		elog "e.g. attempting to change fan speed with nvidia-settings would fail."
+		elog
+		elog "Depending on your display manager (e.g. sddm starts X as root, gdm doesn't)"
+		elog "or if using startx, it may be necessary to emerge x11-base/xorg-server with"
+		elog 'USE="suid -elogind -systemd" if wish to keep using this feature.'
+		elog "Bug: https://bugs.gentoo.org/784248"
+	fi
+
+	ewarn
+	ewarn "This revision of ${PN} is applying a binary patch to prevent heavy"
+	ewarn "dbus spamming while using OpenGL. If you experience issues, please try to"
+	ewarn "mask =${CATEGORY}/${PN}-${PVR} to use NVIDIA's intended version."
+}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-495.46.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-495.46.ebuild
new file mode 100644
index 000000000000..8fec48824818
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-495.46.ebuild
@@ -0,0 +1,463 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MODULES_OPTIONAL_USE="driver"
+inherit desktop flag-o-matic linux-mod multilib readme.gentoo-r1 \
+	systemd toolchain-funcs unpacker
+
+NV_KERNEL_MAX="5.15"
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="https://www.nvidia.com/download/index.aspx"
+SRC_URI="
+	amd64? ( https://us.download.nvidia.com/XFree86/Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run )
+	arm64? ( https://us.download.nvidia.com/XFree86/aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run )
+	$(printf "https://github.com/NVIDIA/%s/archive/refs/tags/${PV}.tar.gz -> %s-${PV}.tar.gz " \
+		nvidia-{installer,modprobe,persistenced,settings,xconfig}{,})"
+# nvidia-installer is unused but here for GPL-2's "distribute sources"
+S="${WORKDIR}"
+
+LICENSE="NVIDIA-r2 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
+SLOT="0/${PV%%.*}"
+KEYWORDS="-* ~amd64"
+IUSE="+X abi_x86_32 abi_x86_64 +driver persistenced static-libs +tools wayland"
+
+COMMON_DEPEND="
+	acct-group/video
+	persistenced? (
+		acct-user/nvpd
+		net-libs/libtirpc:=
+	)
+	tools? (
+		dev-libs/atk
+		dev-libs/glib:2
+		dev-libs/jansson:=
+		media-libs/harfbuzz:=
+		x11-libs/cairo
+		x11-libs/gdk-pixbuf:2
+		x11-libs/gtk+:3
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXxf86vm
+		x11-libs/pango
+	)"
+RDEPEND="
+	${COMMON_DEPEND}
+	X? (
+		media-libs/libglvnd[X,abi_x86_32(-)?]
+		x11-libs/libX11[abi_x86_32(-)?]
+		x11-libs/libXext[abi_x86_32(-)?]
+	)
+	wayland? (
+		>=gui-libs/egl-wayland-1.1.7-r1
+		media-libs/libglvnd
+		>=media-libs/mesa-21.2[gbm(+)]
+		x11-libs/libdrm
+	)"
+DEPEND="
+	${COMMON_DEPEND}
+	static-libs? (
+		x11-libs/libX11
+		x11-libs/libXext
+	)
+	tools? (
+		media-libs/libglvnd
+		sys-apps/dbus
+		x11-base/xorg-proto
+		x11-libs/libXrandr
+		x11-libs/libXv
+		x11-libs/libvdpau
+	)"
+BDEPEND="
+	sys-devel/m4
+	virtual/pkgconfig"
+
+QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
+
+PATCHES=(
+	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
+	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
+	"${FILESDIR}"/nvidia-settings-390.144-no-gtk2.patch
+	"${FILESDIR}"/nvidia-settings-390.144-raw-ldflags.patch
+)
+
+pkg_setup() {
+	use driver || return
+
+	local CONFIG_CHECK="
+		PROC_FS
+		~DRM_KMS_HELPER
+		~SYSVIPC
+		~!DRM_SIMPLEDRM
+		~!LOCKDEP
+		~!SLUB_DEBUG_ON
+		!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 for wayland / nvidia-drm.modeset=1.
+	Cannot be directly selected in the kernel's menuconfig, and may need
+	selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or
+	DRM_I915=y, DRM_NOUVEAU=m also acceptable if a module and not built-in.
+	Note: DRM_SIMPLEDRM may cause issues and is better disabled for now."
+
+	use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764
+
+	MODULE_NAMES="
+		nvidia(video:kernel)
+		nvidia-drm(video:kernel)
+		nvidia-modeset(video:kernel)
+		nvidia-peermem(video:kernel)
+		nvidia-uvm(video:kernel)"
+
+	linux-mod_pkg_setup
+
+	[[ ${MERGE_TYPE} == binary ]] && return
+
+	BUILD_PARAMS='NV_VERBOSE=1 IGNORE_CC_MISMATCH=yes SYSSRC="${KV_DIR}" SYSOUT="${KV_OUT_DIR}"'
+	BUILD_TARGETS="modules"
+
+	if linux_chkconfig_present CC_IS_CLANG; then
+		ewarn "Warning: building ${PN} with a clang-built kernel is experimental"
+
+		BUILD_PARAMS+=' CC=${CHOST}-clang'
+		if linux_chkconfig_present LD_IS_LLD; then
+			BUILD_PARAMS+=' LD=ld.lld'
+			if linux_chkconfig_present LTO_CLANG_THIN; then
+				# kernel enables cache by default leading to sandbox violations
+				BUILD_PARAMS+=' ldflags-y=--thinlto-cache-dir= LDFLAGS_MODULE=--thinlto-cache-dir='
+			fi
+		fi
+	fi
+
+	if kernel_is -gt ${NV_KERNEL_MAX/./ }; then
+		ewarn "Kernel ${KV_MAJOR}.${KV_MINOR} is either known to break this version of ${PN}"
+		ewarn "or was not tested with it. It is recommended to use one of:"
+		ewarn "  <=sys-kernel/gentoo-kernel-${NV_KERNEL_MAX}"
+		ewarn "  <=sys-kernel/gentoo-sources-${NV_KERNEL_MAX}"
+		ewarn "You are free to try or use /etc/portage/patches, but support will"
+		ewarn "not be given and issues wait until NVIDIA releases a fixed version."
+		ewarn
+		ewarn "Do _not_ file a bug report if run into issues."
+		ewarn
+	fi
+}
+
+src_prepare() {
+	# make patches usable across versions
+	rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die
+	rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die
+	rm nvidia-settings && mv nvidia-settings{-${PV},} || die
+	rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die
+
+	default
+
+	# prevent detection of incomplete kernel DRM support (bug #603818)
+	sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
+		-i kernel/conftest.sh || die
+
+	sed 's/__USER__/nvpd/' \
+		nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \
+		> "${T}"/nvidia-persistenced.service || die
+
+	# enable nvidia-drm.modeset=1 by default with USE=wayland
+	cp "${FILESDIR}"/nvidia-470.conf "${T}"/nvidia.conf || die
+	use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die
+}
+
+src_compile() {
+	tc-export AR CC LD OBJCOPY
+
+	NV_ARGS=(
+		PREFIX="${EPREFIX}"/usr
+		HOST_CC="$(tc-getBUILD_CC)"
+		HOST_LD="$(tc-getBUILD_LD)"
+		NV_USE_BUNDLED_LIBJANSSON=0
+		NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
+	)
+
+	use driver && linux-mod_src_compile
+
+	emake "${NV_ARGS[@]}" -C nvidia-modprobe
+	use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced
+	use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig
+
+	if use tools; then
+		# cflags: avoid noisy logs, only use here and set first to let override
+		# ldflags: abi currently needed if LD=ld.lld
+		CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
+			RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" \
+			emake "${NV_ARGS[@]}" -C nvidia-settings
+	elif use static-libs; then
+		emake "${NV_ARGS[@]}" -C nvidia-settings/src out/libXNVCtrl.a
+	fi
+}
+
+src_install() {
+	local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir)
+
+	NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} )
+
+	local -A paths=(
+		[APPLICATION_PROFILE]=/usr/share/nvidia
+		[CUDA_ICD]=/etc/OpenCL/vendors
+		[EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d
+		[FIRMWARE]=/lib/firmware/nvidia/${PV}
+		[GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm
+		[GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d
+		[VULKAN_ICD_JSON]=/usr/share/vulkan
+		[WINE_LIB]=/usr/${libdir}/nvidia/wine
+		[XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d
+
+		[GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions
+		[GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules
+		[XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules
+	)
+
+	local skip_files=(
+		$(usex X '' '
+			libGLX_nvidia libglxserver_nvidia
+			nvidia_icd.json nvidia_layers.json')
+		$(usex wayland '' '
+			libnvidia-egl-gbm 15_nvidia_gbm
+			libnvidia-vulkan-producer')
+		libGLX_indirect # non-glvnd unused fallback
+		libnvidia-gtk nvidia-{settings,xconfig} # built from source
+		libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland
+	)
+	local skip_modules=(
+		$(usex X '' 'nvfbc vdpau xdriver')
+		$(usex driver '' 'gsp')
+		installer nvpd # handled separately / built from source
+	)
+	local skip_types=(
+		GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd
+		OPENCL_WRAPPER.\* # virtual/opencl
+		DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF # handled separately / unused
+	)
+
+	local DOCS=(
+		README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json
+		nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
+	)
+	local HTML_DOCS=( html/. )
+	einstalldocs
+
+	local DISABLE_AUTOFORMATTING=yes
+	local DOC_CONTENTS="\
+Trusted users should be in the 'video' group to use NVIDIA devices.
+You can add yourself by using: gpasswd -a my-user video
+
+See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.\
+$(use amd64 && usex abi_x86_32 '' "
+
+Note that without USE=abi_x86_32 on ${PN}, 32bit applications
+(typically using wine / steam) will not be able to use GPU acceleration.")
+
+For general information on using ${PN}, please see:
+https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
+	readme.gentoo_create_doc
+
+	if use driver; then
+		linux-mod_src_install
+
+		insinto /etc/modprobe.d
+		doins "${T}"/nvidia.conf
+
+		# used for gpu verification with binpkgs (not kept, see pkg_preinst)
+		insinto /usr/share/nvidia
+		doins supported-gpus/supported-gpus.json
+	fi
+
+	emake "${NV_ARGS[@]}" -C nvidia-modprobe install
+	fowners :video /usr/bin/nvidia-modprobe #505092
+	fperms 4710 /usr/bin/nvidia-modprobe
+
+	if use persistenced; then
+		emake "${NV_ARGS[@]}" -C nvidia-persistenced install
+		newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced
+		newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced
+		systemd_dounit "${T}"/nvidia-persistenced.service
+	fi
+
+	if use tools; then
+		emake "${NV_ARGS[@]}" -C nvidia-settings install
+
+		doicon nvidia-settings/doc/nvidia-settings.png
+		domenu nvidia-settings/doc/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+	fi
+
+	if use static-libs; then
+		dolib.a nvidia-settings/src/out/libXNVCtrl.a
+
+		insinto /usr/include/NVCtrl
+		doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
+	fi
+
+	use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install
+
+	# mimic nvidia-installer by reading .manifest to install files
+	# 0:file 1:perms 2:type 3+:subtype/arguments -:module
+	local m into
+	while IFS=' ' read -ra m; do
+		! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] ||
+			eval '[[ " ${m[0]##*/}" =~ ^(\ '${skip_files[*]/%/.*|\\}' )$ ]]' ||
+			eval '[[ " ${m[2]}" =~ ^(\ '${skip_types[*]/%/|\\}' )$ ]]' ||
+			has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue
+
+		case ${m[2]} in
+			MANPAGE)
+				gzip -dc ${m[0]} | newman - ${m[0]%.gz}; assert
+				continue
+			;;
+			GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../
+			VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/
+		esac
+
+		if [[ -v paths[${m[2]}] ]]; then
+			into=${paths[${m[2]}]}
+		elif [[ ${m[2]} =~ _BINARY$ ]]; then
+			into=/opt/bin
+		elif [[ ${m[3]} == COMPAT32 ]]; then
+			use abi_x86_32 || continue
+			into=/usr/${libdir32}
+		elif [[ ${m[2]} =~ _LIB$|_SYMLINK$ ]]; then
+			into=/usr/${libdir}
+		else
+			die "No known installation path for ${m[0]}"
+		fi
+		[[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/}
+		[[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/}
+
+		if [[ ${m[2]} =~ _SYMLINK$ ]]; then
+			[[ ${m[4]: -1} == / ]] && m[4]=${m[5]}
+			dosym ${m[4]} ${into}/${m[0]}
+			continue
+		fi
+		[[ ${m[0]} =~ ^libnvidia-ngx.so|^libnvidia-egl-gbm.so ]] &&
+			dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 # soname not in .manifest
+
+		printf -v m[1] %o $((m[1] | 0200)) # 444->644
+		insopts -m${m[1]}
+		insinto ${into}
+		doins ${m[0]}
+	done < .manifest || die
+
+	# MODULE:installer non-skipped extras
+	exeinto /lib/systemd/system-sleep
+	doexe systemd/system-sleep/nvidia
+	dobin systemd/nvidia-sleep.sh
+	systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend}.service
+
+	dobin nvidia-bug-report.sh
+}
+
+pkg_preinst() {
+	has_version "${CATEGORY}/${PN}[abi_x86_32]" && NV_HAD_ABI32=
+	has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND=
+
+	use driver || return
+	linux-mod_pkg_preinst
+
+	# set video group id based on live system (bug #491414)
+	local g=$(getent group video | cut -d: -f3)
+	[[ ${g} ]] || die "Failed to determine video group id"
+	sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
+
+	# try to find driver mismatches using temporary supported-gpus.json
+	for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do
+		g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \
+			"${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null)
+		if [[ ${g} ]]; then
+			g=$((${g##*\"}+1))
+			if ver_test -ge ${g}; then
+				NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}"
+				break
+			fi
+		fi
+	done
+	rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
+}
+
+pkg_postinst() {
+	use driver && linux-mod_pkg_postinst
+
+	readme.gentoo_print_elog
+
+	if [[ -r /proc/driver/nvidia/version &&
+		$(</proc/driver/nvidia/version) != *"  ${PV}  "* ]]; then
+		ewarn "Currently loaded NVIDIA modules do not match the newly installed"
+		ewarn "libraries and may prevent launching GPU-accelerated applications."
+		use driver && ewarn "The easiest way to fix this is usually to reboot."
+	fi
+
+	if [[ $(</proc/cmdline) == *slub_debug=[!-]* ]]; then
+		ewarn "Detected that the current kernel command line is using 'slub_debug=',"
+		ewarn "this may lead to system instability/freezes with this version of"
+		ewarn "${PN}. Bug: https://bugs.gentoo.org/796329"
+	fi
+
+	if [[ -v NV_LEGACY_MASK ]]; then
+		ewarn
+		ewarn "***WARNING***"
+		ewarn
+		ewarn "You are installing a version of ${PN} known not to work"
+		ewarn "with a GPU of the current system. If unwanted, add the mask:"
+		if [[ -d ${EROOT}/etc/portage/package.mask ]]; then
+			ewarn "  echo '${NV_LEGACY_MASK}' > ${EROOT}/etc/portage/package.mask/${PN}"
+		else
+			ewarn "  echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask"
+		fi
+		ewarn "...then downgrade to a legacy branch if possible. For details, see:"
+		ewarn "https://www.nvidia.com/object/IO_32667.html"
+	fi
+
+	if use !abi_x86_32 && [[ -v NV_HAD_ABI32 ]]; then
+		elog
+		elog "USE=abi_x86_32 is disabled, 32bit applications will not be able to"
+		elog "use nvidia-drivers for acceleration without it (e.g. commonly used"
+		elog "with app-emulation/wine-* or steam). Re-enable if needed."
+	fi
+
+	if use wayland && use driver && [[ ! -v NV_HAD_WAYLAND ]]; then
+		elog
+		elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
+		elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. This feature is considered"
+		elog "experimental but is required for wayland."
+		elog
+		elog "If you experience issues, either disable wayland or edit nvidia.conf."
+		elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
+	fi
+
+	if use wayland && [[ ${REPLACING_VERSIONS} ]] &&
+		ver_test ${REPLACING_VERSIONS} -lt 495.29.05; then
+		elog
+		elog "While this version of ${PN} adds GBM support (allowing a"
+		elog "wider range of wayland compositors, such as sway), be warned it is"
+		elog "very experimental and many applications are known to have issues."
+		elog
+		elog "While not essential, some features also need >=egl-wayland-1.1.8"
+		elog "which is known to cause regressions with EGLStream (GBM alternative)."
+		elog
+		elog "If lacking a cursor with wlroots, try WLR_NO_HARDWARE_CURSORS=1"
+	fi
+
+	# Try to show this message only to users that may really need it
+	# given the workaround is discouraged and usage isn't widespread.
+	if use X && [[ ${REPLACING_VERSIONS} ]] &&
+		ver_test ${REPLACING_VERSIONS} -lt 460.73.01 &&
+		grep -qr Coolbits "${EROOT}"/etc/X11/{xorg.conf,xorg.conf.d/*.conf} 2>/dev/null; then
+		elog
+		elog "Coolbits support with ${PN} has been restricted to require Xorg"
+		elog "with root privilege by NVIDIA (being in video group is not sufficient)."
+		elog "e.g. attempting to change fan speed with nvidia-settings would fail."
+		elog
+		elog "Depending on your display manager (e.g. sddm starts X as root, gdm doesn't)"
+		elog "or if using startx, it may be necessary to emerge x11-base/xorg-server with"
+		elog 'USE="suid -elogind -systemd" if wish to keep using this feature.'
+		elog "Bug: https://bugs.gentoo.org/784248"
+	fi
+}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2022-05-21  0:38 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2022-05-21  0:38 UTC (permalink / raw
  To: gentoo-commits

commit:     f56310fc9f3542319950e223dacfcbf301f596ec
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Sat May 21 00:05:42 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Sat May 21 00:18:50 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f56310fc

x11-drivers/nvidia-drivers: install PM udev rules from README.txt

User reported it solved some power management issues (e.g. oddities
followed by Xorg segfault when using sleep with GNOME), and other
distros like Fedora install these unconditionally. Only for 470+
given wasn't included in nvidia's README for 390.xx and likely not
relevant.

Skip revbump, not known(?) to affect many and will propagate on
kernel upgrades + rebuild.

Thanks-to: Randall T. Vasquez
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/files/nvidia-470.rules           |  7 +++++++
 x11-drivers/nvidia-drivers/nvidia-drivers-470.129.06.ebuild | 13 +++++++++++--
 x11-drivers/nvidia-drivers/nvidia-drivers-470.62.29.ebuild  | 13 +++++++++++--
 x11-drivers/nvidia-drivers/nvidia-drivers-510.73.05.ebuild  | 13 +++++++++++--
 x11-drivers/nvidia-drivers/nvidia-drivers-515.43.04.ebuild  | 13 +++++++++++--
 5 files changed, 51 insertions(+), 8 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-470.rules b/x11-drivers/nvidia-drivers/files/nvidia-470.rules
new file mode 100644
index 000000000000..ba3cefef9876
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-470.rules
@@ -0,0 +1,7 @@
+# Enable runtime PM for NVIDIA VGA/3D controller devices on driver bind
+ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto"
+ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="auto"
+
+# Disable runtime PM for NVIDIA VGA/3D controller devices on driver unbind
+ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="on"
+ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on"

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-470.129.06.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-470.129.06.ebuild
index ba4807bf5a9c..7a1897471468 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-470.129.06.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-470.129.06.ebuild
@@ -5,7 +5,7 @@ EAPI=8
 
 MODULES_OPTIONAL_USE="driver"
 inherit desktop flag-o-matic linux-mod multilib readme.gentoo-r1 \
-	systemd toolchain-funcs unpacker user-info
+	systemd toolchain-funcs udev unpacker user-info
 
 NV_KERNEL_MAX="5.17"
 NV_URI="https://download.nvidia.com/XFree86/"
@@ -367,6 +367,9 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
 	# symlink non-versioned so nvidia-settings can use it even if misdetected
 	dosym nvidia-application-profiles-${PV}-key-documentation \
 		${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation
+
+	# udev rules taken from nvidia's README.txt to help with power management
+	use driver && udev_newrules "${FILESDIR}"/nvidia-470.rules 60-nvidia.rules
 }
 
 pkg_preinst() {
@@ -397,7 +400,8 @@ pkg_preinst() {
 }
 
 pkg_postinst() {
-	use driver && linux-mod_pkg_postinst
+	linux-mod_pkg_postinst
+	use driver && udev_reload
 
 	readme.gentoo_print_elog
 
@@ -449,3 +453,8 @@ pkg_postinst() {
 		elog "supported by a few wayland compositors (e.g. kwin / mutter, not sway)."
 	fi
 }
+
+pkg_postrm() {
+	linux-mod_pkg_postrm
+	use driver && udev_reload
+}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-470.62.29.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-470.62.29.ebuild
index cab98353f284..f2528612b9fc 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-470.62.29.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-470.62.29.ebuild
@@ -5,7 +5,7 @@ EAPI=8
 
 MODULES_OPTIONAL_USE="driver"
 inherit desktop flag-o-matic linux-mod multilib readme.gentoo-r1 \
-	systemd toolchain-funcs unpacker user-info
+	systemd toolchain-funcs udev unpacker user-info
 
 NV_KERNEL_MAX="5.15"
 NV_PIN="470.103.01"
@@ -363,6 +363,9 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
 	systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend}.service
 
 	dobin nvidia-bug-report.sh
+
+	# udev rules taken from nvidia's README.txt to help with power management
+	use driver && udev_newrules "${FILESDIR}"/nvidia-470.rules 60-nvidia.rules
 }
 
 pkg_preinst() {
@@ -393,7 +396,8 @@ pkg_preinst() {
 }
 
 pkg_postinst() {
-	use driver && linux-mod_pkg_postinst
+	linux-mod_pkg_postinst
+	use driver && udev_reload
 
 	readme.gentoo_print_elog
 
@@ -445,3 +449,8 @@ pkg_postinst() {
 		elog "supported by a few wayland compositors (e.g. kwin / mutter, not sway)."
 	fi
 }
+
+pkg_postrm() {
+	linux-mod_pkg_postrm
+	use driver && udev_reload
+}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-510.73.05.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-510.73.05.ebuild
index 043bb8ba2030..60d3a7e68313 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-510.73.05.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-510.73.05.ebuild
@@ -5,7 +5,7 @@ EAPI=8
 
 MODULES_OPTIONAL_USE="driver"
 inherit desktop flag-o-matic linux-mod multilib readme.gentoo-r1 \
-	systemd toolchain-funcs unpacker user-info
+	systemd toolchain-funcs udev unpacker user-info
 
 NV_KERNEL_MAX="5.17"
 NV_URI="https://download.nvidia.com/XFree86/"
@@ -382,6 +382,9 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
 	# symlink non-versioned so nvidia-settings can use it even if misdetected
 	dosym nvidia-application-profiles-${PV}-key-documentation \
 		${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation
+
+	# udev rules taken from nvidia's README.txt to help with power management
+	use driver && udev_newrules "${FILESDIR}"/nvidia-470.rules 60-nvidia.rules
 }
 
 pkg_preinst() {
@@ -412,7 +415,8 @@ pkg_preinst() {
 }
 
 pkg_postinst() {
-	use driver && linux-mod_pkg_postinst
+	linux-mod_pkg_postinst
+	use driver && udev_reload
 
 	readme.gentoo_print_elog
 
@@ -461,3 +465,8 @@ pkg_postinst() {
 		elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
 	fi
 }
+
+pkg_postrm() {
+	linux-mod_pkg_postrm
+	use driver && udev_reload
+}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-515.43.04.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-515.43.04.ebuild
index 2894896e70c1..d9a29874e5ad 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-515.43.04.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-515.43.04.ebuild
@@ -5,7 +5,7 @@ EAPI=8
 
 MODULES_OPTIONAL_USE="driver"
 inherit desktop flag-o-matic linux-mod multilib readme.gentoo-r1 \
-	systemd toolchain-funcs unpacker user-info
+	systemd toolchain-funcs udev unpacker user-info
 
 NV_KERNEL_MAX="5.17"
 NV_URI="https://download.nvidia.com/XFree86/"
@@ -406,6 +406,9 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
 	# fails to detect version (i.e. mismatch, or with kernel-open)
 	dosym nvidia-application-profiles-${PV}-key-documentation \
 		${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation
+
+	# udev rules taken from nvidia's README.txt to help with power management
+	use driver && udev_newrules "${FILESDIR}"/nvidia-470.rules 60-nvidia.rules
 }
 
 pkg_preinst() {
@@ -436,7 +439,8 @@ pkg_preinst() {
 }
 
 pkg_postinst() {
-	use driver && linux-mod_pkg_postinst
+	linux-mod_pkg_postinst
+	use driver && udev_reload
 
 	readme.gentoo_print_elog
 
@@ -496,3 +500,8 @@ pkg_postinst() {
 		elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
 	fi
 }
+
+pkg_postrm() {
+	linux-mod_pkg_postrm
+	use driver && udev_reload
+}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2022-09-19 11:36 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2022-09-19 11:36 UTC (permalink / raw
  To: gentoo-commits

commit:     8515921a8520f68595376bf2b131a6b3928358a6
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 19 11:13:58 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Mon Sep 19 11:36:25 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8515921a

x11-drivers/nvidia-drivers: early clang16 fixes

Or more specifically, -Werror=strict-prototypes fixes. This is
for the extras (settings/modprobe/persistenced) given modules
already needed to be fixed with clang15 even post-revert given
they pass -Werror=strict-prototypes themselves.

Done as a separate patch given the clang15 one need to be re-applied
without the extras to open source drivers.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../files/nvidia-extras-390.154-clang16.patch      | 41 ++++++++++++++++++++++
 .../files/nvidia-extras-470.141.03-clang16.patch   | 36 +++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-390.154.ebuild   |  1 +
 .../nvidia-drivers-470.141.03.ebuild               |  1 +
 .../nvidia-drivers/nvidia-drivers-510.85.02.ebuild |  1 +
 .../nvidia-drivers/nvidia-drivers-515.49.15.ebuild |  1 +
 .../nvidia-drivers/nvidia-drivers-515.65.01.ebuild |  1 +
 7 files changed, 82 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-extras-390.154-clang16.patch b/x11-drivers/nvidia-drivers/files/nvidia-extras-390.154-clang16.patch
new file mode 100644
index 000000000000..63e33af9d0db
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-extras-390.154-clang16.patch
@@ -0,0 +1,41 @@
+https://bugs.gentoo.org/870412
+--- a/nvidia-modprobe/common-utils/msg.c
++++ b/nvidia-modprobe/common-utils/msg.c
+@@ -45 +45 @@
+-NvVerbosity nv_get_verbosity()
++NvVerbosity nv_get_verbosity(void)
+--- a/nvidia-persistenced/common-utils/msg.c
++++ b/nvidia-persistenced/common-utils/msg.c
+@@ -45 +45 @@
+-NvVerbosity nv_get_verbosity()
++NvVerbosity nv_get_verbosity(void)
+--- a/nvidia-persistenced/nvidia-persistenced.c
++++ b/nvidia-persistenced/nvidia-persistenced.c
+@@ -502 +502 @@
+-static NvPdStatus setup_rpc()
++static NvPdStatus setup_rpc(void)
+--- a/nvidia-settings/src/common-unix/virtual-resolutions/nvvr.c
++++ b/nvidia-settings/src/common-unix/virtual-resolutions/nvvr.c
+@@ -107 +107 @@
+-const NVVRSize* NVVRGetCommonResolutions()
++const NVVRSize* NVVRGetCommonResolutions(void)
+--- a/nvidia-settings/src/common-utils/msg.c
++++ b/nvidia-settings/src/common-utils/msg.c
+@@ -45 +45 @@
+-NvVerbosity nv_get_verbosity()
++NvVerbosity nv_get_verbosity(void)
+--- a/nvidia-settings/src/gtk+-2.x/ctkslimm.c
++++ b/nvidia-settings/src/gtk+-2.x/ctkslimm.c
+@@ -129 +129 @@
+-GType ctk_slimm_get_type()
++GType ctk_slimm_get_type(void)
+--- a/nvidia-settings/src/gtk+-2.x/ctkutils.c
++++ b/nvidia-settings/src/gtk+-2.x/ctkutils.c
+@@ -251 +251 @@
+-GtkWidget *ctk_combo_box_text_new_with_entry()
++GtkWidget *ctk_combo_box_text_new_with_entry(void)
+--- a/nvidia-xconfig/common-utils/msg.c
++++ b/nvidia-xconfig/common-utils/msg.c
+@@ -45 +45 @@
+-NvVerbosity nv_get_verbosity()
++NvVerbosity nv_get_verbosity(void)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-extras-470.141.03-clang16.patch b/x11-drivers/nvidia-drivers/files/nvidia-extras-470.141.03-clang16.patch
new file mode 100644
index 000000000000..c0a1f138dd79
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-extras-470.141.03-clang16.patch
@@ -0,0 +1,36 @@
+https://bugs.gentoo.org/870412
+--- a/nvidia-modprobe/common-utils/msg.c
++++ b/nvidia-modprobe/common-utils/msg.c
+@@ -47 +47 @@
+-NvVerbosity nv_get_verbosity()
++NvVerbosity nv_get_verbosity(void)
+--- a/nvidia-persistenced/common-utils/msg.c
++++ b/nvidia-persistenced/common-utils/msg.c
+@@ -47 +47 @@
+-NvVerbosity nv_get_verbosity()
++NvVerbosity nv_get_verbosity(void)
+--- a/nvidia-persistenced/nvidia-persistenced.c
++++ b/nvidia-persistenced/nvidia-persistenced.c
+@@ -625 +625 @@
+-static NvPdStatus setup_rpc()
++static NvPdStatus setup_rpc(void)
+--- a/nvidia-settings/src/common-unix/virtual-resolutions/nvvr.c
++++ b/nvidia-settings/src/common-unix/virtual-resolutions/nvvr.c
+@@ -107 +107 @@
+-const NVVRSize* NVVRGetCommonResolutions()
++const NVVRSize* NVVRGetCommonResolutions(void)
+--- a/nvidia-settings/src/common-utils/msg.c
++++ b/nvidia-settings/src/common-utils/msg.c
+@@ -47 +47 @@
+-NvVerbosity nv_get_verbosity()
++NvVerbosity nv_get_verbosity(void)
+--- a/nvidia-settings/src/gtk+-2.x/ctkutils.c
++++ b/nvidia-settings/src/gtk+-2.x/ctkutils.c
+@@ -260 +260 @@
+-GtkWidget *ctk_combo_box_text_new_with_entry()
++GtkWidget *ctk_combo_box_text_new_with_entry(void)
+--- a/nvidia-xconfig/common-utils/msg.c
++++ b/nvidia-xconfig/common-utils/msg.c
+@@ -47 +47 @@
+-NvVerbosity nv_get_verbosity()
++NvVerbosity nv_get_verbosity(void)

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.154.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.154.ebuild
index b73a7c2ccd4e..14d1ff0122f7 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.154.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.154.ebuild
@@ -74,6 +74,7 @@ QA_PREBUILT="opt/bin/* usr/lib*"
 
 PATCHES=(
 	"${FILESDIR}"/nvidia-drivers-390.154-clang15.patch
+	"${FILESDIR}"/nvidia-extras-390.154-clang16.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.141-fno-common.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-470.141.03.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-470.141.03.ebuild
index cc7b2513a5a3..dbd9393ea0bf 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-470.141.03.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-470.141.03.ebuild
@@ -77,6 +77,7 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
 	"${FILESDIR}"/nvidia-drivers-470.141.03-clang15.patch
+	"${FILESDIR}"/nvidia-extras-470.141.03-clang16.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
 	"${FILESDIR}"/nvidia-settings-390.144-no-gtk2.patch

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-510.85.02.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-510.85.02.ebuild
index 632cee27f396..50cb0bbc6344 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-510.85.02.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-510.85.02.ebuild
@@ -80,6 +80,7 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
 	"${FILESDIR}"/nvidia-drivers-470.141.03-clang15.patch
+	"${FILESDIR}"/nvidia-extras-470.141.03-clang16.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
 	"${FILESDIR}"/nvidia-settings-390.144-no-gtk2.patch

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.15.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.15.ebuild
index 628cd1a50969..353d32365a63 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.15.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.15.ebuild
@@ -82,6 +82,7 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
 	"${FILESDIR}"/nvidia-drivers-470.141.03-clang15.patch
+	"${FILESDIR}"/nvidia-extras-470.141.03-clang16.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
 	"${FILESDIR}"/nvidia-settings-390.144-no-gtk2.patch

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-515.65.01.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-515.65.01.ebuild
index c95218f51107..b90995aadf68 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-515.65.01.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-515.65.01.ebuild
@@ -82,6 +82,7 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
 	"${FILESDIR}"/nvidia-drivers-470.141.03-clang15.patch
+	"${FILESDIR}"/nvidia-extras-470.141.03-clang16.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
 	"${FILESDIR}"/nvidia-settings-390.144-no-gtk2.patch


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2022-09-23  2:05 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2022-09-23  2:05 UTC (permalink / raw
  To: gentoo-commits

commit:     7284a2f263a760c8b79254e382a9a95ab935df94
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 23 01:54:19 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Fri Sep 23 02:04:56 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7284a2f2

x11-drivers/nvidia-drivers: fix clang15 patch for x86

Oops, differs given x86 dropped support for the uvm module.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../files/nvidia-drivers-390.154-clang15-x86.patch | 28 ++++++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-390.154.ebuild   |  3 ++-
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-390.154-clang15-x86.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-390.154-clang15-x86.patch
new file mode 100644
index 000000000000..2038b3da157a
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-390.154-clang15-x86.patch
@@ -0,0 +1,28 @@
+Kernel's makefiles pass -Werror=strict-prototypes which
+trigger errors with clang15+
+https://bugs.gentoo.org/870238
+--- a/kernel/nvidia/nvlink_linux.c
++++ b/kernel/nvidia/nvlink_linux.c
+@@ -639 +639 @@
+-void * NVLINK_API_CALL nvlink_allocLock()
++void * NVLINK_API_CALL nvlink_allocLock(void)
+--- a/kernel/nvidia/os-interface.c
++++ b/kernel/nvidia/os-interface.c
+@@ -879 +879 @@
+-NV_STATUS NV_API_CALL os_flush_cpu_cache()
++NV_STATUS NV_API_CALL os_flush_cpu_cache(void)
+@@ -886 +886 @@
+-NV_STATUS NV_API_CALL os_flush_cpu_cache_all()
++NV_STATUS NV_API_CALL os_flush_cpu_cache_all(void)
+@@ -944 +944 @@
+-void NV_API_CALL os_flush_cpu_write_combine_buffer()
++void NV_API_CALL os_flush_cpu_write_combine_buffer(void)
+@@ -1073 +1073 @@
+-NvU32 NV_API_CALL os_get_cpu_number()
++NvU32 NV_API_CALL os_get_cpu_number(void)
+@@ -1080 +1080 @@
+-NvU32 NV_API_CALL os_get_cpu_count()
++NvU32 NV_API_CALL os_get_cpu_count(void)
+@@ -1155 +1155 @@
+-void NV_API_CALL os_dump_stack()
++void NV_API_CALL os_dump_stack(void)

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.154.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.154.ebuild
index 14d1ff0122f7..7a9cab0fed5d 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.154.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.154.ebuild
@@ -73,7 +73,6 @@ BDEPEND="
 QA_PREBUILT="opt/bin/* usr/lib*"
 
 PATCHES=(
-	"${FILESDIR}"/nvidia-drivers-390.154-clang15.patch
 	"${FILESDIR}"/nvidia-extras-390.154-clang16.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.141-fno-common.patch
@@ -152,6 +151,8 @@ src_prepare() {
 	rm nvidia-settings && mv nvidia-settings{-${PV},} || die
 	rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die
 
+	eapply "${FILESDIR}"/nvidia-drivers-390.154-clang15$(usev {,-}x86).patch
+
 	default
 
 	# prevent detection of incomplete kernel DRM support (bug #603818)


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2022-09-27 23:46 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2022-09-27 23:46 UTC (permalink / raw
  To: gentoo-commits

commit:     740e610ad134913961c7fb95b2467e774ec36c4c
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 27 21:05:57 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Sep 27 23:44:44 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=740e610a

x11-drivers/nvidia-drivers: drop unnecessary patches

Ended up using -Werror=strict-prototypes to test things, but as far
as I'm aware this shouldn't be "needed" with clang16 either unless
something passes that -Werror (so kernel module still need these
fixes). Not that it'd hurt to fix but don't want to maintain patches
on this end. Will revisit if needed.

nvidia is aware of modules issues regarding this, so clang15 patches
should be removable later

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../files/nvidia-extras-390.154-clang16.patch      | 41 ----------------------
 .../files/nvidia-extras-470.141.03-clang16.patch   | 36 -------------------
 .../nvidia-drivers/nvidia-drivers-390.154.ebuild   |  1 -
 .../nvidia-drivers-470.141.03.ebuild               |  1 -
 .../nvidia-drivers/nvidia-drivers-510.85.02.ebuild |  1 -
 .../nvidia-drivers/nvidia-drivers-515.49.15.ebuild |  1 -
 .../nvidia-drivers/nvidia-drivers-515.65.01.ebuild |  1 -
 .../nvidia-drivers/nvidia-drivers-515.76.ebuild    |  1 -
 8 files changed, 83 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-extras-390.154-clang16.patch b/x11-drivers/nvidia-drivers/files/nvidia-extras-390.154-clang16.patch
deleted file mode 100644
index 63e33af9d0db..000000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-extras-390.154-clang16.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-https://bugs.gentoo.org/870412
---- a/nvidia-modprobe/common-utils/msg.c
-+++ b/nvidia-modprobe/common-utils/msg.c
-@@ -45 +45 @@
--NvVerbosity nv_get_verbosity()
-+NvVerbosity nv_get_verbosity(void)
---- a/nvidia-persistenced/common-utils/msg.c
-+++ b/nvidia-persistenced/common-utils/msg.c
-@@ -45 +45 @@
--NvVerbosity nv_get_verbosity()
-+NvVerbosity nv_get_verbosity(void)
---- a/nvidia-persistenced/nvidia-persistenced.c
-+++ b/nvidia-persistenced/nvidia-persistenced.c
-@@ -502 +502 @@
--static NvPdStatus setup_rpc()
-+static NvPdStatus setup_rpc(void)
---- a/nvidia-settings/src/common-unix/virtual-resolutions/nvvr.c
-+++ b/nvidia-settings/src/common-unix/virtual-resolutions/nvvr.c
-@@ -107 +107 @@
--const NVVRSize* NVVRGetCommonResolutions()
-+const NVVRSize* NVVRGetCommonResolutions(void)
---- a/nvidia-settings/src/common-utils/msg.c
-+++ b/nvidia-settings/src/common-utils/msg.c
-@@ -45 +45 @@
--NvVerbosity nv_get_verbosity()
-+NvVerbosity nv_get_verbosity(void)
---- a/nvidia-settings/src/gtk+-2.x/ctkslimm.c
-+++ b/nvidia-settings/src/gtk+-2.x/ctkslimm.c
-@@ -129 +129 @@
--GType ctk_slimm_get_type()
-+GType ctk_slimm_get_type(void)
---- a/nvidia-settings/src/gtk+-2.x/ctkutils.c
-+++ b/nvidia-settings/src/gtk+-2.x/ctkutils.c
-@@ -251 +251 @@
--GtkWidget *ctk_combo_box_text_new_with_entry()
-+GtkWidget *ctk_combo_box_text_new_with_entry(void)
---- a/nvidia-xconfig/common-utils/msg.c
-+++ b/nvidia-xconfig/common-utils/msg.c
-@@ -45 +45 @@
--NvVerbosity nv_get_verbosity()
-+NvVerbosity nv_get_verbosity(void)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-extras-470.141.03-clang16.patch b/x11-drivers/nvidia-drivers/files/nvidia-extras-470.141.03-clang16.patch
deleted file mode 100644
index c0a1f138dd79..000000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-extras-470.141.03-clang16.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-https://bugs.gentoo.org/870412
---- a/nvidia-modprobe/common-utils/msg.c
-+++ b/nvidia-modprobe/common-utils/msg.c
-@@ -47 +47 @@
--NvVerbosity nv_get_verbosity()
-+NvVerbosity nv_get_verbosity(void)
---- a/nvidia-persistenced/common-utils/msg.c
-+++ b/nvidia-persistenced/common-utils/msg.c
-@@ -47 +47 @@
--NvVerbosity nv_get_verbosity()
-+NvVerbosity nv_get_verbosity(void)
---- a/nvidia-persistenced/nvidia-persistenced.c
-+++ b/nvidia-persistenced/nvidia-persistenced.c
-@@ -625 +625 @@
--static NvPdStatus setup_rpc()
-+static NvPdStatus setup_rpc(void)
---- a/nvidia-settings/src/common-unix/virtual-resolutions/nvvr.c
-+++ b/nvidia-settings/src/common-unix/virtual-resolutions/nvvr.c
-@@ -107 +107 @@
--const NVVRSize* NVVRGetCommonResolutions()
-+const NVVRSize* NVVRGetCommonResolutions(void)
---- a/nvidia-settings/src/common-utils/msg.c
-+++ b/nvidia-settings/src/common-utils/msg.c
-@@ -47 +47 @@
--NvVerbosity nv_get_verbosity()
-+NvVerbosity nv_get_verbosity(void)
---- a/nvidia-settings/src/gtk+-2.x/ctkutils.c
-+++ b/nvidia-settings/src/gtk+-2.x/ctkutils.c
-@@ -260 +260 @@
--GtkWidget *ctk_combo_box_text_new_with_entry()
-+GtkWidget *ctk_combo_box_text_new_with_entry(void)
---- a/nvidia-xconfig/common-utils/msg.c
-+++ b/nvidia-xconfig/common-utils/msg.c
-@@ -47 +47 @@
--NvVerbosity nv_get_verbosity()
-+NvVerbosity nv_get_verbosity(void)

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.154.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.154.ebuild
index 2ad4e5070ba9..12f9791b3462 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.154.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.154.ebuild
@@ -73,7 +73,6 @@ BDEPEND="
 QA_PREBUILT="opt/bin/* usr/lib*"
 
 PATCHES=(
-	"${FILESDIR}"/nvidia-extras-390.154-clang16.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.141-fno-common.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-470.141.03.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-470.141.03.ebuild
index 1a33c461bb33..f9289f18be17 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-470.141.03.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-470.141.03.ebuild
@@ -77,7 +77,6 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
 	"${FILESDIR}"/nvidia-drivers-470.141.03-clang15.patch
-	"${FILESDIR}"/nvidia-extras-470.141.03-clang16.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
 	"${FILESDIR}"/nvidia-settings-390.144-no-gtk2.patch

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-510.85.02.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-510.85.02.ebuild
index f90467ba3060..8046c6e58d68 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-510.85.02.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-510.85.02.ebuild
@@ -80,7 +80,6 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
 	"${FILESDIR}"/nvidia-drivers-470.141.03-clang15.patch
-	"${FILESDIR}"/nvidia-extras-470.141.03-clang16.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
 	"${FILESDIR}"/nvidia-settings-390.144-no-gtk2.patch

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.15.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.15.ebuild
index 92a3dc232374..e44164a54d05 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.15.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.15.ebuild
@@ -82,7 +82,6 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
 	"${FILESDIR}"/nvidia-drivers-470.141.03-clang15.patch
-	"${FILESDIR}"/nvidia-extras-470.141.03-clang16.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
 	"${FILESDIR}"/nvidia-settings-390.144-no-gtk2.patch

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-515.65.01.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-515.65.01.ebuild
index 7e9da0275ad5..e99ade1ee066 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-515.65.01.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-515.65.01.ebuild
@@ -82,7 +82,6 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
 	"${FILESDIR}"/nvidia-drivers-470.141.03-clang15.patch
-	"${FILESDIR}"/nvidia-extras-470.141.03-clang16.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
 	"${FILESDIR}"/nvidia-settings-390.144-no-gtk2.patch

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-515.76.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-515.76.ebuild
index b8881ceb9cd5..fc9b5ce2c880 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-515.76.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-515.76.ebuild
@@ -82,7 +82,6 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
 	"${FILESDIR}"/nvidia-drivers-470.141.03-clang15.patch
-	"${FILESDIR}"/nvidia-extras-470.141.03-clang16.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
 	"${FILESDIR}"/nvidia-settings-390.144-no-gtk2.patch


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2022-11-10 22:22 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2022-11-10 22:22 UTC (permalink / raw
  To: gentoo-commits

commit:     dd72910fc7dc0cd00cbb2c056c21abaed563af30
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 10 20:38:06 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Thu Nov 10 22:21:49 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dd72910f

x11-drivers/nvidia-drivers: add 525.53

Remove the IBT warning, should now work in-theory with this
version (untested, please report if still have issues).

Also get to replace the no-gtk2 patch by BUILD_GTK2LIB=

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/Manifest                |   8 +
 .../files/nvidia-drivers-525.23-clang15.patch      | 107 ++++
 .../nvidia-drivers/nvidia-drivers-525.53.ebuild    | 574 +++++++++++++++++++++
 3 files changed, 689 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index 2c4e70c82707..3b3338a7591c 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -1,6 +1,7 @@
 DIST NVIDIA-Linux-aarch64-510.85.02.run 211430737 BLAKE2B 80dbdae485a70c118bb4d6393fce80a0ac0392e38b959685428407b48786d543ec1651b5a38984c5218730e1766e4fb890a0afaa28a981a097cadaf516d9d135 SHA512 54faa9b68425dd046f42180560aaedf4805a7b9c5cfbb80b3729ed6eb61faf3ef619cce8fe0b2af30b810a1aa43279b0435decbdd5c35434a5aafc08b3354547
 DIST NVIDIA-Linux-aarch64-515.65.01.run 220195966 BLAKE2B f83292c15e1f2baf3e6d6460e4aa59a24e87787d5e5ed68e13bc2321b080582eb54392ca396406f35680d1f713926fd268617a13a1b0c7d9302aa6feb91bc9a0 SHA512 31ec7ba727bf14263eeadc3880bd8f2aaa0fe8c144aa216bb8af06a154dd1aa5f4a787fe386b20f5d739a49c80435bca5f6deba3010c593e1e54ecd29b4ab1b0
 DIST NVIDIA-Linux-aarch64-520.56.06.run 254864237 BLAKE2B a788bc48370401a7ad83d786830aad1be98b3587569c991515cbafef4b259e3bc4b8f90742125a86176030ef653e2b24e6d6bf8b0b8d064930b79ad16827a328 SHA512 d5839b5eed8b699ecc53133d8694c184e42ae23e8d365fb7c70fe680c54941e25d0ee0afa076ce9c417ddceb1f41b6a1884a13f32636983b83107701676bd784
+DIST NVIDIA-Linux-aarch64-525.53.run 262087180 BLAKE2B e2488aaf8084d30f3e7cb5287703d126313d61bcf0140d27d821a343a22af3f532b492237e9c0022cce5ef5ec6cca170a1723343df84c09d847cca2bd4b7cbb3 SHA512 95a70569344e8a91f0dbf811a8b3a5ebfc4587752dfdc3a49352539e1bccbc52ff47df87dad17a3fbb1b50635cc1516187bee2c3f97f5975416826407fa2488d
 DIST NVIDIA-Linux-x86-390.154.run 49362860 BLAKE2B 083d9dd234a37ec39a703ef7e0eb6ec165c24d2fcb5e92ca987c33df643d0604319eb65ef152c861acacd5a41858ab6b82c45c2c8ff270efc62b07727666daae SHA512 5064ae135d099a4b8b81cf4d29f0cc0dcbcd93f13cadb0378f5e20eefad47522bdab42c9130f22ac8a22a4bef22365321cb35dc53b0ba35374e2bedd44e5a5c2
 DIST NVIDIA-Linux-x86_64-390.154.run 84438529 BLAKE2B e1bd2982f9697e74b593380acf471e03192cd8d20f14bd9b43e6d5925421c518278e75515a0713be25b29bf99d7ea49c770adf2cede79736a03f323d5ed96a33 SHA512 cab7de6db783089c1e385da0296c43d2cbbe266bac2bc177044e279224a6ef9c76495b46c4b7056eb5a82b21932a2002e0c12f7659b446a2586f9df30a69a9a3
 DIST NVIDIA-Linux-x86_64-470.141.03.run 272986406 BLAKE2B 12ef580dd98146715442e6b8e9f27bab4a12121f3edb2e291961f8dea96ec1b81d2c974d380018223999c67a7bec9873675487f436e60aab34e83b1a5b7065f1 SHA512 07aca8ea6aac5592060b4177ef43e9a3a5b2e3bc1a2d5959bf2ae349763fc62ed80b987af5607bf2d9a48e25c4e38e64970bca0177d63bd57a703d47debf5e18
@@ -8,31 +9,38 @@ DIST NVIDIA-Linux-x86_64-510.85.02.run 329836795 BLAKE2B f9f56a2498d223ee5a27b78
 DIST NVIDIA-Linux-x86_64-515.49.24.run 361551549 BLAKE2B 65a4fa80446c2d4fb078293922d31c1bfe12284486eb7b6ac24ee226e523ae9af5a1b6b02ef5dcd2ead0a1424afc2d781851bdbb6ddb4eaefda6a55f560be2fb SHA512 30d697e02247698289410cc2a03a963d9031ec9a10acde1a34d79c8267e5c6dc5d82e7218c2a08c7c092d9d6428c9411395abed99ed7c02cc4e02494b70949d1
 DIST NVIDIA-Linux-x86_64-515.65.01.run 364182561 BLAKE2B 552084a5347c0388f5cb0a6eecf41fb3d401356cbbbe957569e3eb0a4ca03b3db0dea0f7f6a37a6b66cf6d5377677ee57a6df73668002a13efd8140b153fcf03 SHA512 5221a4ac071eb39a37a841f19cfe4983286dc35e918956b40604404ef36c122612475df7b9a391a9a70bd60f44e598c8a0e5ec54ccc3e90d51f01e1b2fbe5e33
 DIST NVIDIA-Linux-x86_64-520.56.06.run 406178736 BLAKE2B 9c30a769b9662deef9e5bdd74e26c166a3d0fcf54481b86bf811d20ebb73efa6385b28fe5ecbc35900f74ef2293503e9d84e64d6c4401aa0335de98550a1e193 SHA512 ac5a98964e1b7435a0919d313080e53c0453ca3a817ed1ed1693a0164f286973d93f4130428a3737a4871f512c686d72e2606038f533d016d6b9c2873eaa1f8a
+DIST NVIDIA-Linux-x86_64-525.53.run 413334558 BLAKE2B 1e68c1aac029067191cfb4a51caec0e5c43d94c5cf1380732de2ecfbab1ddc8a43f25fb63b06a6a82aa8686f09b136b68eb7fcd4009f85e5a7d2abdd057ebdb0 SHA512 ce9ada733503133f29f561169ef5b5f91abfdd2ff7a75e38e6b94afc24d4600ffdb3be17b53bc10bad13f0987277ff66bd816d04a7890ca85e59395dd54a8c89
 DIST NVIDIA-kernel-module-source-515.65.01.tar.xz 7510104 BLAKE2B 806f895d2de136427702c21ae231ba0e304850b07f2f43f3f2f1ba7b0115b7c9bb36435ad53ade6c778ab74af976c4613427644c1c03e3a9df9ddcb6f79de0fc SHA512 2975a498d7dbeace6feae5611b27be640e05fedf5faa257abde839756f508bae238de59a3277fb3326a51c048d9478b19d9ef7968061aaac9f1f588851bdf983
 DIST NVIDIA-kernel-module-source-520.56.06.tar.xz 8555040 BLAKE2B 6c651cb10ee56dbd76e893447ec4b3e73fe95c80118a637a1a25358686df98476f99bb3913d7cc290608837afb9accf611d6154018aeeec373ba44642aed19a1 SHA512 496b350304487e77a040e1a29d12d16b945a09e39cb302197a8c089a0365c37d34453e8dd527b3ef293103cdf7d1dfced551b8eaf61e26e0c831fd837adc5239
+DIST NVIDIA-kernel-module-source-525.53.tar.xz 10019516 BLAKE2B 507c33ca06386087e56652738105cb61bafc6349d861a3c73c6652ff757aa7451c807785f040ec57ff1ff692ee68e61608efaff9c0fb54de9cf84c7695357f8e SHA512 16691f42017979a52eed2f349b4160a0926d64679a5fd83c428cb7dde92e329d6786a69582b8b85810d8dfd3b7758878aa38ad33826601c754fb308583b40a44
 DIST nvidia-installer-390.154.tar.bz2 150301 BLAKE2B c9c91b19455823e42ccb9c9c49761f38bd3f85ddfe2fb4c159fe37f10a1d66f5b7b02d66b403881d863c905f86f1ecc1ac7393f051f1b7bee764ab1e15638218 SHA512 56ef5b845cd92a235473e868f81d6f94a1dc685e8bd113cc63be43d68a00f8f4eb74e239a2fec623a4ba89dd5c3690d5f97d06d71ca093570a05bd88757224fd
 DIST nvidia-installer-470.141.03.tar.bz2 146470 BLAKE2B 60694dba638a8214828c9f2eb191e6dd912775bc73d038bf7d658a70282e368b061777455180a07e1c08b381adeaa9349ffab95582265968a990f99cce21a93c SHA512 8b1d33ab29fbb49ce43a2a446a1f9ffaff2107f329b8c7e4741abacc78abbd3e9b2e6e6dbf4638a4223af3900e550f544535def40bf3628f7fb11b2ffecb9266
 DIST nvidia-installer-510.85.02.tar.bz2 144326 BLAKE2B 08ee6fd80d8d22f8d644362bd292debfb0a47bd7592301daebd4e19675fca21af5e040d364dafd25a2d2c93f841495160fce7de0262322472c9b1c3ba2441711 SHA512 ff0ecc09441354c705a28621c0a8661b07c23f0ed0f25f1dcb995066c1fdfd486a5c7164d626316ff253f1c50264a2b46b970bf40c75fc6369e9e6698eb2e489
 DIST nvidia-installer-515.65.01.tar.bz2 144675 BLAKE2B 19e5b67c6972ba8435b215a20c8bcd62dd8c1e9a6ae6eac3209f7d9116397f32c43a8f5d8dd8d6d63ac4c6348c610daedde2908b7fd80a8d03ef2c7246b8b9b2 SHA512 0784249253d5e69eabb8c948ad1648d23f59c8c5c4021b5274af2d640de37b5a8b8a55e6ab979cefc2271162bdfce42fd8cbf4640c3c20f5171a032c8b4c44c0
 DIST nvidia-installer-520.56.06.tar.bz2 147557 BLAKE2B 2b44e57eb4eba862863ac1208a24a023fbc642b0cd701080cd59ae5ab9f0d05a20c5bbb163813ff66f724c7a0cfcdba62fd47fe2fc179b52740ee8a7da655909 SHA512 4995b500d93ff962cd0115dd5858fb61c04478a522b3fc92e28f2b1522ebfc22f8680512b03bc6b2ffd2c786c2bda0553af625d2f82222ee6c5b3f88c664a945
+DIST nvidia-installer-525.53.tar.bz2 147670 BLAKE2B 1de3ea1f56c0fe741596be167f6226bdb61281e8c1bfc67c68b3ee676046485d6783d89c5cf714650ec0f4e7fcd59335f56283e1543ce0cb3c4b93b0e4e9c474 SHA512 b59a3b9f9b6e9e3056916476f25ed546da912a9aec0bda89517d2ffb81f67e47f7a390866ed1e79349dd1903a1b7996c46edd61d0dd84189db61dae89fc3d9c2
 DIST nvidia-modprobe-390.154.tar.bz2 35315 BLAKE2B 02d9f11345ceb13e073d4f43401e95d04dc4eb54fdb7eb8966b60450accf103a403c2d101be6a0548ae59bce7412fe491becf707b17c6a3dd50bb2eef864feff SHA512 09b5119ace0a48cc6fea92ed220a702a5033e7205d39bb111e49eb84f7b0fe193f8c3870da9f7df6816ea4c8cb91c2c776f54f448e423fbf8dfa7d3a7f96411b
 DIST nvidia-modprobe-470.141.03.tar.bz2 38359 BLAKE2B 08a1cb82f20f703258152f6317ffe50d4cf8398e8ca34c7e8a405094c246c381c67b20e8aac92937bf76e0db8c1edd87f984b371923aded9f25ff36661197072 SHA512 b9aaa1425234e63ef02ea02a6bff9f68ee497654afb5eeff7843e9589371d9f0941a20924a0157e1e0f08fe92f41ac13a2e5bc8db341a16538c28af35bb5fd57
 DIST nvidia-modprobe-510.85.02.tar.bz2 39061 BLAKE2B 5ee7e1f3199cf9cd1041d86b7048d0a063adab6d1a027b0937feeec8c3785fe222eb6fc151c23d855ec3db06db522d60ea9d4d962925bf80d2c90e76a519c181 SHA512 936647ae493d6a2a94ac1a99f7f6bfae0e5e5a27fd55b616937bfc568d2b768dcddd13cabace876f860329d7afb95a547f43e8b9cece5b7524a93111bc01b632
 DIST nvidia-modprobe-515.65.01.tar.bz2 39122 BLAKE2B 3184c3478170b7a9758123e3aed68ce5318a92ed055e6a5fb4cdee8c4e00885da0d22dfbb7b453dcb45b596f709fadfaf13e736b4d2fbc0547d0d802d6dab7b2 SHA512 20360282a5f59cc2e7c25bbb87220c2c4d5d2f3c458147f59a689f7f37b2ce59308ba4306a9ab2be5af592e277bf754205fd8c9d53f7eb85454bdc0636a2f33e
 DIST nvidia-modprobe-520.56.06.tar.bz2 39820 BLAKE2B c21639b62a359c0796d0034d076cce0c739657e410f12997c8f16fb3658687bb0627fafc79a30c0e199a29f713195f3f2ac9629e5b565c5126f892526d97c024 SHA512 dacbd3be47277b17c4fc8aebc36baa78811f5a828fac7c6615a25f614e4a01b660b749e3548fabb3524fe67f1bf515293c65ab3e837fe4be8cc7deedc03f3465
+DIST nvidia-modprobe-525.53.tar.bz2 39967 BLAKE2B e61ef3fcefc68d3cbb89f54b0740a6ea22af094f72b5d861c4ba69278b37d570049a9abdf8bfeda9da18d98fc1596ba81cf610e2eadec9450d016ecf93566517 SHA512 66dac94ce402176962cc8f0331af0f72d4c5fff8b09e83ad4e670420de6b7f6047ab85c6ace92222e7c9aeffd7732aaf6124877d42a63a84c0c638f19d9b64e2
 DIST nvidia-persistenced-390.154.tar.bz2 48669 BLAKE2B 13739d3b32d7f5fddebc599d024968cd6fc2cd516da80bc2f0f4c61be01c622f13274157cce2997a051dafc19375c997927c0042c3fdbfecb4d0634463dfccd6 SHA512 efd6f15b9f4b91ab3c41d55138da48198889f3ee58b20b5e12cf0e47bb736cf559b69c679060563612a33c41b6187aec83052a1edf155438ed4935821aa2cf41
 DIST nvidia-persistenced-470.141.03.tar.bz2 46584 BLAKE2B 319363f61d78ff45d22561414d4607af787dd7cd23c8b895e663fd2cb308e4ae48945fdeafa2c344a0b3854692b8a118ae082333be5283d0cd0c2659bfb0d4a7 SHA512 efebf92b17017da2652db0c191d0d007bd5cd5ad02d13a3022530ccdb13ba06afc07ced961eb8de46d16f520a6805a96f4ec05738cac0d99eb8a38f68c3d3194
 DIST nvidia-persistenced-510.85.02.tar.bz2 47116 BLAKE2B 21fd8f0673fc7970a27395b2d227737184c35a1928215231e01f1a0f8f901e5f1556163dedc1d3941a4661910aed71d7184d06e8d54d412f6c1595a52d401250 SHA512 217f5bdf396b7b00ffccbb12f50113f183d8d44ae44278447d5b3515ffc1216821a833cc14cd963492e54b8d40340281f91dcc0520d1097455db52a5a6cc3bf7
 DIST nvidia-persistenced-515.65.01.tar.bz2 47160 BLAKE2B 841efe6670228fc7dca061e50e1d3ae5f281bf38eeacb95be2ea3c66f4fbcb7447ceea803fe1b80a7a4e7a5130698ea442e72fc8875a8043541a32cc80080f0a SHA512 7328303ac0ae62f2f7f5bdf4747d4820dd9f0174702d58cae0e701213346c1bd86cbcc51647d635ba501b1fb4e4cfbcd7b39e46e12b0b626c189666aaef6d2c4
 DIST nvidia-persistenced-520.56.06.tar.bz2 47913 BLAKE2B e3dfb7eabe6b7fd2a05ca9e7986deef5e9ee80f1521cb4dfff49c8764612d6c43b6c7bee74e1f7c585c0420241d4eba9401505ed59d8cdfad9150bce81904914 SHA512 44c8dc25aa9ccd444f0e1be2cbd9e4b89e103d4f26333f57e12ea6fb913e37282547d4d8ead6768cd0d61e079b6bc1197c6fe6f3e472d9ee5b54b1649ee28a4d
+DIST nvidia-persistenced-525.53.tar.bz2 48012 BLAKE2B 8a522286b5ec00b6172502597f6accab3527d48695f2960234123268470324a00d9d6d7d3363ab290747f0e5fb87e945cfe98c0d4d70d0f2c587120ffc7e0202 SHA512 63a479a7ea3bf72bf7675f33d6b7859f3ed10201a2ed58e78d5207a2d4dc5bb1c7d308c8a41acb990c594f1c19d57330bac24e0e0a84d24b92a83b21f6b79b1c
 DIST nvidia-settings-390.154.tar.bz2 1109136 BLAKE2B c351d6c950f037b06e8da1c5a481ed0a0951cae14878a1cac32ad58c29a301f1d9ac291f23873a57c7cb4b9ca93709d946adf8f91c937410d5f997696ca74729 SHA512 95321bffb6e6af7971ee0705a73ee3388cdb84dfd32e799d63c5b36e5c3ddd45de4091349d35c6af279a9aa6fea30b0ec0cb19b940e5b356768c580d8488d2df
 DIST nvidia-settings-470.141.03.tar.bz2 1062470 BLAKE2B 9970f75b289642dac72d28a1b9ddd26597f5de2a9c9a8eb8054886a142730fbc685440c8ab17a9fe8ed40b97d536ce3e85bc5d8b4e1be1ae15c52b21764a133b SHA512 7adef971201c3ea8d0b27de157d9c3412f71691ae5ae223d6457f5d64d6e7c8f9234716870f000aec19f3b89b9b0eca66bcc95a9a074a36f0d669bedb5a975c6
 DIST nvidia-settings-510.85.02.tar.bz2 1075516 BLAKE2B dc69ca3340a55736a1a5134146632e3cb97bdf324f5d323e002d379b5e36f31fbd59d2ca51fe22e19e5c9ac50726f3c0bfab193e01a8b6667cec53780afa265c SHA512 48adfc6d753400bc3563ba4810d30a0fb2087d98e98303ca6fe17eaf4fd00bb5c0ce07650fd2978864b658be5bb9dc3abd226fcc1f4aa9909ba09b9d3d2ddbff
 DIST nvidia-settings-515.65.01.tar.bz2 1079461 BLAKE2B 95fccb9121ea1844c6f37024054d3a7cae73c93f6578714f15c84173b3dbb21dd6f23c1cbce744d7deedbd9f3d2a9bf80a4d057928ec59402bcbdf718e65de3c SHA512 ae3a127c28b5857a3dfec291e2a7f2ce7c6f1ece82890bdfa2f6f9d5506cc092b771e93d093621c4861ca7983d05741b0146a4f243f3b921447f287c88a839cc
 DIST nvidia-settings-520.56.06.tar.bz2 1082773 BLAKE2B 125aa4aaa654200d658e448096329dded41d2af2437197e27b8d057f4d6e679eb396628079037e09c4e7698aab37e4c2bd0ca197e5874f7cd54e7afd06afa8fa SHA512 1a470c0aed735ba550dd993eb898baa7299d07ceb4297039067ba1c64b993c812fb958a71c290a6fa0938e17baf9b6f01f983f214539dad0eef14cbb6439f87e
+DIST nvidia-settings-525.53.tar.bz2 1087120 BLAKE2B b174205eec0658a902187968306ad81f79dc97b22d76e23ba44221143ae92293f89a7d88d223d0f6d4592020e8c7a72945a7c8372c0809322968891622aab556 SHA512 b46db55a9a8945f646c9ecf2cf415ce577b15f4e260348e8a3a66d700e35a512a95ebe6c950295546405b71c609ed6018ec0d90d4bb6fc2cfec703ac28c7c5e7
 DIST nvidia-xconfig-390.154.tar.bz2 107145 BLAKE2B 8e221f182af0f7d7af3bc11acd4991ee0edd8f8a328545c0b7cfe37454b9ae02ea8d86f70c589446ed9e2e7f70fd0af05e8a1e965b854e61a97b67536b0007d3 SHA512 2e593ee519600e40b80d3c176ef3a1383a1ff51ba0ccce9c19b9d6ed6d122daa06769e992d4b8c0c64721011d84d5066a63932c34e55ec958802b61869f95350
 DIST nvidia-xconfig-470.141.03.tar.bz2 108888 BLAKE2B 1701f6a7d81dd4eb7a17d79882b29d54c6343693e81d48b8862f8d03866081f5224ec562a54b03ce2d574dbb589f8ae5c78a003dd5cfa8e8fc6b977227e83a42 SHA512 e7d9c7ea3270552a23f3efc2a6bb89eb020e79b7cc8e96e2e7237ceab596319aa704b539ad6c21456073d1d8f8167bcacd8bd722e05a617b6620bc0431785ebf
 DIST nvidia-xconfig-510.85.02.tar.bz2 109790 BLAKE2B 09313f0f423c52c81550e8d94b82b88961bdab702bfa2086ffe148b517f82cdaada0ef5e2e5074c6bef174d64661ced63b4c52108c021e7cdadcb7b55cf8f6dc SHA512 5b9a0055643c9368689fd5d0fd47ddfb6352d903913271a577f8b0a8f92e0ce9700287c512269e91285ea9f385dcb4ed9c33410d5244234be7a7f34242df9bab
 DIST nvidia-xconfig-515.65.01.tar.bz2 109681 BLAKE2B b41b3ec377c79af6906a47c826d9930cc5ea6e85e8404e6882f3bc03cfccfa03d8ef7c280453ab29edb208173aeb576d33df00f92c225a86bc3cb571b352cdbc SHA512 6f0752e32af6772e85bd2799ea2d895bd5b5faee4c1b6813eb839e75af43d07ef09be6606e7dfc40491e07c25333e9c4145465f97dc0338053e8be1c19220bf9
 DIST nvidia-xconfig-520.56.06.tar.bz2 110304 BLAKE2B 31888ae4eb675e3e877150120b2fb02be9560e6abd885799d87b94bcce5b784d6640c3018c8db5ea3c9645e0907312956c7d6bdd2317cdf79fb758dc9ba0957f SHA512 9bcf55f13ad99571e2ad605704f8297b529f32e4f1bebe1a3eccf648c6559e1b6e2867e9f406cf34f0e4d240ddc12559e7dfaa790e700d1b3f5a7582bcffb27c
+DIST nvidia-xconfig-525.53.tar.bz2 110566 BLAKE2B 7078adebc0aebb52eb6822826aaf38edc1fca5413a54b6c0bc230ce003bf9aeaa95eb2f075665586e7dce2d04095337c52157644cdcde1e1424a1629c5d6acff SHA512 2674fc4612bd8b451cd57c01c7d02d1a899a290801214f5af993f14de603e074242621ae1fc46b377e3fbb6c43e43e8f7b7f277cce7beab143ccbfa95fd9af67
 DIST open-gpu-kernel-modules-515.49.24.tar.gz 7418026 BLAKE2B 1102a9b6f130cb7f56024d11f95a2a994be565acd1ffb2536c810c7c620e45d4fa1ae3fc159f1814bfcfb70f3930773770bbb98266fb55d9b59f54a8a6fc0d0c SHA512 e6ef132214ca3d82a889641f3d408a47ede28e8c8c4a0dfebdef071ca6692e3029d0e9386d7fc2b8f53decd83d0794f0b52aadd2c7bed6db0437231ecac7c76f

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-525.23-clang15.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-525.23-clang15.patch
new file mode 100644
index 000000000000..74d022947992
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-525.23-clang15.patch
@@ -0,0 +1,107 @@
+Kernel's makefiles pass -Werror=strict-prototypes which
+can trigger errors depending on compiler defaults.
+https://bugs.gentoo.org/870238
+https://github.com/NVIDIA/open-gpu-kernel-modules/issues/377
+--- a/kernel/nvidia/nvlink_linux.c
++++ b/kernel/nvidia/nvlink_linux.c
+@@ -560 +560 @@
+-void * nvlink_allocLock()
++void * nvlink_allocLock(void)
+--- a/kernel/nvidia/os-interface.c
++++ b/kernel/nvidia/os-interface.c
+@@ -1169 +1169 @@
+-NvU32 NV_API_CALL os_get_cpu_number()
++NvU32 NV_API_CALL os_get_cpu_number(void)
+@@ -1176 +1176 @@
+-NvU32 NV_API_CALL os_get_cpu_count()
++NvU32 NV_API_CALL os_get_cpu_count(void)
+@@ -1256 +1256 @@
+-void NV_API_CALL os_dump_stack()
++void NV_API_CALL os_dump_stack(void)
+--- a/kernel/nvidia-uvm/uvm_common.c
++++ b/kernel/nvidia-uvm/uvm_common.c
+@@ -37 +37 @@
+-bool uvm_debug_prints_enabled()
++bool uvm_debug_prints_enabled(void)
+--- a/kernel/nvidia-uvm/uvm_gpu_access_counters.c
++++ b/kernel/nvidia-uvm/uvm_gpu_access_counters.c
+@@ -1721 +1721 @@
+-NV_STATUS uvm_perf_access_counters_init()
++NV_STATUS uvm_perf_access_counters_init(void)
+@@ -1732 +1732 @@
+-void uvm_perf_access_counters_exit()
++void uvm_perf_access_counters_exit(void)
+--- a/kernel/nvidia-uvm/uvm_lock.c
++++ b/kernel/nvidia-uvm/uvm_lock.c
+@@ -337 +337 @@
+-bool __uvm_thread_check_all_unlocked()
++bool __uvm_thread_check_all_unlocked(void)
+--- a/kernel/nvidia-uvm/uvm_migrate.c
++++ b/kernel/nvidia-uvm/uvm_migrate.c
+@@ -798 +798 @@
+-NV_STATUS uvm_migrate_init()
++NV_STATUS uvm_migrate_init(void)
+@@ -824 +824 @@
+-void uvm_migrate_exit()
++void uvm_migrate_exit(void)
+--- a/kernel/nvidia-uvm/uvm_migrate_pageable.c
++++ b/kernel/nvidia-uvm/uvm_migrate_pageable.c
+@@ -1004 +1004 @@
+-NV_STATUS uvm_migrate_pageable_init()
++NV_STATUS uvm_migrate_pageable_init(void)
+@@ -1013 +1013 @@
+-void uvm_migrate_pageable_exit()
++void uvm_migrate_pageable_exit(void)
+--- a/kernel/nvidia-uvm/uvm_perf_heuristics.c
++++ b/kernel/nvidia-uvm/uvm_perf_heuristics.c
+@@ -31 +31 @@
+-NV_STATUS uvm_perf_heuristics_init()
++NV_STATUS uvm_perf_heuristics_init(void)
+@@ -50 +50 @@
+-void uvm_perf_heuristics_exit()
++void uvm_perf_heuristics_exit(void)
+--- a/kernel/nvidia-uvm/uvm_perf_prefetch.c
++++ b/kernel/nvidia-uvm/uvm_perf_prefetch.c
+@@ -428 +428 @@
+-NV_STATUS uvm_perf_prefetch_init()
++NV_STATUS uvm_perf_prefetch_init(void)
+--- a/kernel/nvidia-uvm/uvm_perf_thrashing.c
++++ b/kernel/nvidia-uvm/uvm_perf_thrashing.c
+@@ -1946 +1946 @@
+-NV_STATUS uvm_perf_thrashing_init()
++NV_STATUS uvm_perf_thrashing_init(void)
+@@ -2005 +2005 @@
+-void uvm_perf_thrashing_exit()
++void uvm_perf_thrashing_exit(void)
+--- a/kernel/nvidia-uvm/uvm_procfs.c
++++ b/kernel/nvidia-uvm/uvm_procfs.c
+@@ -49 +49 @@
+-NV_STATUS uvm_procfs_init()
++NV_STATUS uvm_procfs_init(void)
+@@ -69 +69 @@
+-void uvm_procfs_exit()
++void uvm_procfs_exit(void)
+@@ -74 +74 @@
+-struct proc_dir_entry *uvm_procfs_get_gpu_base_dir()
++struct proc_dir_entry *uvm_procfs_get_gpu_base_dir(void)
+@@ -79 +79 @@
+-struct proc_dir_entry *uvm_procfs_get_cpu_base_dir()
++struct proc_dir_entry *uvm_procfs_get_cpu_base_dir(void)
+--- a/kernel/nvidia-uvm/uvm_push.c
++++ b/kernel/nvidia-uvm/uvm_push.c
+@@ -292 +292 @@
+-bool uvm_push_info_is_tracking_descriptions()
++bool uvm_push_info_is_tracking_descriptions(void)
+@@ -297 +297 @@
+-bool uvm_push_info_is_tracking_acquires()
++bool uvm_push_info_is_tracking_acquires(void)
+--- a/kernel/nvidia-uvm/uvm_thread_context.c
++++ b/kernel/nvidia-uvm/uvm_thread_context.c
+@@ -104 +104 @@
+-bool uvm_thread_context_wrapper_is_used()
++bool uvm_thread_context_wrapper_is_used(void)
+--- a/kernel/nvidia-uvm/uvm_tools.c
++++ b/kernel/nvidia-uvm/uvm_tools.c
+@@ -2207 +2207 @@
+-void uvm_tools_flush_events()
++void uvm_tools_flush_events(void)

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-525.53.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-525.53.ebuild
new file mode 100644
index 000000000000..3c8fb42432e7
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-525.53.ebuild
@@ -0,0 +1,574 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MODULES_OPTIONAL_USE="driver"
+inherit desktop flag-o-matic linux-mod multilib readme.gentoo-r1 \
+	systemd toolchain-funcs unpacker user-info
+
+NV_KERNEL_MAX="6.0"
+NV_URI="https://download.nvidia.com/XFree86/"
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="https://www.nvidia.com/download/index.aspx"
+SRC_URI="
+	amd64? ( ${NV_URI}Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run )
+	arm64? ( ${NV_URI}Linux-aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run )
+	$(printf "${NV_URI}%s/%s-${PV}.tar.bz2 " \
+		nvidia-{installer,modprobe,persistenced,settings,xconfig}{,})
+	${NV_URI}NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-${PV}.tar.xz"
+# nvidia-installer is unused but here for GPL-2's "distribute sources"
+S="${WORKDIR}"
+
+LICENSE="NVIDIA-r2 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
+SLOT="0/${PV%%.*}"
+KEYWORDS="-* ~amd64 ~arm64"
+IUSE="+X abi_x86_32 abi_x86_64 +driver kernel-open persistenced +static-libs +tools wayland"
+REQUIRED_USE="kernel-open? ( driver )"
+
+COMMON_DEPEND="
+	acct-group/video
+	sys-libs/glibc
+	X? ( x11-libs/libpciaccess )
+	persistenced? (
+		acct-user/nvpd
+		net-libs/libtirpc:=
+	)
+	tools? (
+		|| ( >=app-accessibility/at-spi2-core-2.46:2 dev-libs/atk )
+		dev-libs/glib:2
+		dev-libs/jansson:=
+		media-libs/harfbuzz:=
+		x11-libs/cairo
+		x11-libs/gdk-pixbuf:2
+		x11-libs/gtk+:3[X]
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXxf86vm
+		x11-libs/pango
+	)"
+RDEPEND="
+	${COMMON_DEPEND}
+	X? (
+		media-libs/libglvnd[X,abi_x86_32(-)?]
+		x11-libs/libX11[abi_x86_32(-)?]
+		x11-libs/libXext[abi_x86_32(-)?]
+	)
+	wayland? (
+		gui-libs/egl-gbm
+		>=gui-libs/egl-wayland-1.1.10
+		media-libs/libglvnd
+	)"
+DEPEND="
+	${COMMON_DEPEND}
+	static-libs? (
+		x11-libs/libX11
+		x11-libs/libXext
+	)
+	tools? (
+		media-libs/libglvnd
+		sys-apps/dbus
+		x11-base/xorg-proto
+		x11-libs/libXrandr
+		x11-libs/libXv
+		x11-libs/libvdpau
+	)"
+BDEPEND="
+	sys-devel/m4
+	virtual/pkgconfig"
+
+QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
+
+PATCHES=(
+	"${FILESDIR}"/nvidia-drivers-525.23-clang15.patch
+	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
+	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
+	"${FILESDIR}"/nvidia-settings-390.144-raw-ldflags.patch
+)
+
+pkg_setup() {
+	use driver || return
+
+	local CONFIG_CHECK="
+		PROC_FS
+		~DRM_KMS_HELPER
+		~SYSVIPC
+		~!LOCKDEP
+		~!SLUB_DEBUG_ON
+		!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 for wayland / nvidia-drm.modeset=1.
+	Cannot be directly selected in the kernel's menuconfig, and may need
+	selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or
+	DRM_I915=y, DRM_NOUVEAU=m also acceptable if a module and not built-in."
+
+	use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764
+
+	use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827
+	local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open.
+	Cannot be directly selected in the kernel's menuconfig, and may need
+	selection of another option that requires it such as CONFIG_KVM."
+
+	MODULE_NAMES="
+		nvidia(video:kernel)
+		nvidia-drm(video:kernel)
+		nvidia-modeset(video:kernel)
+		nvidia-peermem(video:kernel)
+		nvidia-uvm(video:kernel)"
+	use kernel-open &&
+		MODULE_NAMES=${MODULE_NAMES//:kernel/:kernel-module-source:kernel-module-source/kernel-open}
+
+	linux-mod_pkg_setup
+
+	[[ ${MERGE_TYPE} == binary ]] && return
+
+	# do some extra checks manually as it gets messy to handle builtin-only
+	# and some other conditional checks through CONFIG_CHECK
+	# TODO?: maybe move other custom checks here for uniformity
+	local warn=()
+
+	if linux_chkconfig_builtin DRM_NOUVEAU; then
+		# suggest =m given keeps KMS_HELPER enabled and can serve as fallback
+		warn+=(
+			"  CONFIG_DRM_NOUVEAU: is builtin (=y), and will prevent loading NVIDIA"
+			"    modules (can be safely kept as a module (=m) instead)."
+		)
+	fi
+
+	if linux_chkconfig_builtin DRM_SIMPLEDRM; then
+		# wrt prebuilts, Fedora is pushing =y and gentoo-kernel-bin uses its
+		# configs (bug #840439), but without Fedora's kernel patch to
+		# workaround this issue (which is unlikely to work for us anyway)
+		# https://github.com/NVIDIA/open-gpu-kernel-modules/issues/228
+		warn+=(
+			"  CONFIG_DRM_SIMPLEDRM: is builtin (=y), and may conflict with NVIDIA"
+			"    (i.e. blanks when X/wayland starts, and tty loses display)."
+			"    For prebuilt kernels, unfortunately no known good workarounds."
+		)
+	fi
+
+	if ! linux_chkconfig_present FB_EFI &&
+		! linux_chkconfig_present FB_SIMPLE &&
+		! linux_chkconfig_present FB_VESA
+	then
+		# nvidia-drivers does not handle the tty (beside mode restoration) but,
+		# given few options are viable, try to warn if all missing
+		warn+=(
+			"  CONFIG_FB_(EFI|SIMPLE|VESA): none set, but note at least one is normally"
+			"    needed to get a display for the tty console. In most cases, it is"
+			"    recommended to enable FB_EFI=y and disable FB_SIMPLE (can be quirky)."
+			"    Non-EFI systems are likely to want FB_VESA=y. Users with multiple GPUs"
+			"    or not using the tty may be able to safely ignore this warning."
+		)
+	fi
+
+	if kernel_is -ge 5 18 13; then
+		# https://github.com/NVIDIA/open-gpu-kernel-modules/issues/341
+		if linux_chkconfig_present FB_SIMPLE; then
+			warn+=(
+				"  CONFIG_FB_SIMPLE: is set, recommended to disable and switch to FB_EFI"
+				"    as it is currently known broken with >=kernel-5.18.13 + NVIDIA."
+				"    https://github.com/NVIDIA/open-gpu-kernel-modules/issues/341"
+			)
+		fi
+
+		if linux_chkconfig_present SYSFB_SIMPLEFB &&
+			{ linux_chkconfig_present FB_EFI || linux_chkconfig_present FB_VESA; }
+		then
+			warn+=(
+				"  CONFIG_SYSFB_SIMPLEFB: is set, this may prevent FB_EFI or FB_VESA"
+				"    from providing a working tty console display (ignore if unused)."
+			)
+		fi
+	fi
+
+	(( ${#warn[@]} )) &&
+		ewarn "Detected potential configuration issues with used kernel:${warn[*]/#/$'\n'}"
+
+	BUILD_PARAMS='NV_VERBOSE=1 IGNORE_CC_MISMATCH=yes SYSSRC="${KV_DIR}" SYSOUT="${KV_OUT_DIR}"'
+	BUILD_TARGETS="modules"
+
+	if linux_chkconfig_present CC_IS_CLANG; then
+		ewarn "Warning: clang-built kernel detected, using clang for modules (experimental)"
+		ewarn "Can use KERNEL_CC and KERNEL_LD environment variables to override if needed."
+
+		tc-is-clang || : "${KERNEL_CC:=${CHOST}-clang}"
+		if linux_chkconfig_present LD_IS_LLD; then
+			: "${KERNEL_LD:=ld.lld}"
+			if linux_chkconfig_present LTO_CLANG_THIN; then
+				# kernel enables cache by default leading to sandbox violations
+				BUILD_PARAMS+=' ldflags-y=--thinlto-cache-dir= LDFLAGS_MODULE=--thinlto-cache-dir='
+			fi
+		fi
+	fi
+	BUILD_PARAMS+=' ${KERNEL_CC:+CC="${KERNEL_CC}"} ${KERNEL_LD:+LD="${KERNEL_LD}"}'
+
+	if kernel_is -gt ${NV_KERNEL_MAX/./ }; then
+		ewarn "Kernel ${KV_MAJOR}.${KV_MINOR} is either known to break this version of ${PN}"
+		ewarn "or was not tested with it. It is recommended to use one of:"
+		ewarn "  <=sys-kernel/gentoo-kernel-${NV_KERNEL_MAX}.x"
+		ewarn "  <=sys-kernel/gentoo-sources-${NV_KERNEL_MAX}.x"
+		ewarn "You are free to try or use /etc/portage/patches, but support will"
+		ewarn "not be given and issues wait until NVIDIA releases a fixed version"
+		ewarn "(Gentoo will not accept patches for this)."
+		ewarn
+		ewarn "Do _not_ file a bug report if run into issues."
+		ewarn
+	fi
+}
+
+src_prepare() {
+	# make patches usable across versions
+	rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die
+	rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die
+	rm nvidia-settings && mv nvidia-settings{-${PV},} || die
+	rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die
+	mv NVIDIA-kernel-module-source-${PV} kernel-module-source || die
+
+	eapply --directory=kernel-module-source/kernel-open \
+		-p2 "${FILESDIR}"/nvidia-drivers-525.23-clang15.patch
+
+	default
+
+	# prevent detection of incomplete kernel DRM support (bug #603818)
+	sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
+		-i kernel{,-module-source/kernel-open}/conftest.sh || die
+
+	# adjust service files
+	sed 's/__USER__/nvpd/' \
+		nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \
+		> "${T}"/nvidia-persistenced.service || die
+	use !amd64 || sed -i "s|/usr|${EPREFIX}/opt|" systemd/system/nvidia-powerd.service || die
+
+	# enable nvidia-drm.modeset=1 by default with USE=wayland
+	cp "${FILESDIR}"/nvidia-470.conf "${T}"/nvidia.conf || die
+	use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die
+
+	# makefile attempts to install wayland library even if not built
+	use wayland || sed -i 's/ WAYLAND_LIB_install$//' \
+		nvidia-settings/src/Makefile || die
+
+	# temporary option, nvidia will remove in the future
+	use !kernel-open ||
+		sed -i '/blacklist/a\
+\
+# Enable using kernel-open with workstation GPUs (experimental)\
+options nvidia NVreg_OpenRmEnableUnsupportedGpus=1' "${T}"/nvidia.conf || die
+}
+
+src_compile() {
+	tc-export AR CC CXX LD OBJCOPY OBJDUMP
+
+	NV_ARGS=(
+		PREFIX="${EPREFIX}"/usr
+		HOST_CC="$(tc-getBUILD_CC)"
+		HOST_LD="$(tc-getBUILD_LD)"
+		BUILD_GTK2LIB=
+		NV_USE_BUNDLED_LIBJANSSON=0
+		NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
+		WAYLAND_AVAILABLE=$(usex wayland 1 0)
+		XNVCTRL_CFLAGS=-fPIC #840389
+	)
+
+	if use driver; then
+		if linux_chkconfig_present GCC_PLUGINS; then
+			mkdir "${T}"/plugin-test || die
+			echo "obj-m += test.o" > "${T}"/plugin-test/Kbuild || die
+			:> "${T}"/plugin-test/test.c || die
+			if [[ $(LC_ALL=C make -C "${KV_OUT_DIR}" ARCH="$(tc-arch-kernel)" \
+				HOSTCC="$(tc-getBUILD_CC)" M="${T}"/plugin-test 2>&1) \
+				=~ "error: incompatible gcc/plugin version" ]]
+			then
+				ewarn "Warning: detected kernel was built with different gcc/plugin versions,"
+				ewarn "you may need to 'make clean' and rebuild your kernel with the current"
+				ewarn "gcc version (or re-emerge for distribution kernels, including kernel-bin)."
+			fi
+		fi
+
+		linux-mod_src_compile
+	fi
+
+	emake "${NV_ARGS[@]}" -C nvidia-modprobe
+	use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced
+	use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig
+
+	if use tools; then
+		# cflags: avoid noisy logs, only use here and set first to let override
+		# ldflags: abi currently needed if LD=ld.lld
+		CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
+			RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" \
+			emake "${NV_ARGS[@]}" -C nvidia-settings
+	elif use static-libs; then
+		emake "${NV_ARGS[@]}" -C nvidia-settings/src out/libXNVCtrl.a
+	fi
+}
+
+src_install() {
+	local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir)
+
+	NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} )
+
+	local -A paths=(
+		[APPLICATION_PROFILE]=/usr/share/nvidia
+		[CUDA_ICD]=/etc/OpenCL/vendors
+		[EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d
+		[FIRMWARE]=/lib/firmware/nvidia/${PV}
+		[GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm
+		[GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d
+		[VULKAN_ICD_JSON]=/usr/share/vulkan
+		[WINE_LIB]=/usr/${libdir}/nvidia/wine
+		[XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d
+
+		[GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions
+		[GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules
+		[XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules
+	)
+
+	local skip_files=(
+		# nvidia_icd/layers(vulkan): skip with -X too as it uses libGLX_nvidia
+		$(usev !X "
+			libGLX_nvidia libglxserver_nvidia
+			nvidia_icd.json nvidia_layers.json")
+		$(usev !wayland libnvidia-vulkan-producer)
+		libGLX_indirect # non-glvnd unused fallback
+		libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source
+		libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm
+		libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland
+	)
+	local skip_modules=(
+		$(usev !X "nvfbc vdpau xdriver")
+		$(usev !driver gsp)
+		installer nvpd # handled separately / built from source
+	)
+	local skip_types=(
+		GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd
+		OPENCL_WRAPPER.\* # virtual/opencl
+		DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused
+	)
+
+	local DOCS=(
+		README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json
+		nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
+	)
+	local HTML_DOCS=( html/. )
+	einstalldocs
+
+	local DISABLE_AUTOFORMATTING=yes
+	local DOC_CONTENTS="\
+Trusted users should be in the 'video' group to use NVIDIA devices.
+You can add yourself by using: gpasswd -a my-user video\
+$(usev driver "
+
+Like all out-of-tree kernel modules, it is necessary to rebuild
+${PN} after upgrading or rebuilding the Linux kernel
+by for example running \`emerge @module-rebuild\`. Alternatively,
+if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}),
+this can be automated by setting USE=dist-kernel globally.
+
+Loaded kernel modules also must not mismatch with the installed
+${PN} version (excluding -r revision), meaning should
+ensure \`eselect kernel list\` points to the kernel that will be
+booted before building and preferably reboot after upgrading
+${PN} (the ebuild will emit a warning if mismatching).
+
+See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\
+$(use amd64 && usev !abi_x86_32 "
+
+Note that without USE=abi_x86_32 on ${PN}, 32bit applications
+(typically using wine / steam) will not be able to use GPU acceleration.")
+
+For general information on using ${PN}, please see:
+https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
+	readme.gentoo_create_doc
+
+	if use driver; then
+		linux-mod_src_install
+
+		insinto /etc/modprobe.d
+		doins "${T}"/nvidia.conf
+
+		# used for gpu verification with binpkgs (not kept, see pkg_preinst)
+		insinto /usr/share/nvidia
+		doins supported-gpus/supported-gpus.json
+	fi
+
+	emake "${NV_ARGS[@]}" -C nvidia-modprobe install
+	fowners :video /usr/bin/nvidia-modprobe #505092
+	fperms 4710 /usr/bin/nvidia-modprobe
+
+	if use persistenced; then
+		emake "${NV_ARGS[@]}" -C nvidia-persistenced install
+		newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced
+		newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced
+		systemd_dounit "${T}"/nvidia-persistenced.service
+	fi
+
+	if use tools; then
+		emake "${NV_ARGS[@]}" -C nvidia-settings install
+
+		doicon nvidia-settings/doc/nvidia-settings.png
+		domenu nvidia-settings/doc/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+	fi
+
+	if use static-libs; then
+		dolib.a nvidia-settings/src/out/libXNVCtrl.a
+
+		insinto /usr/include/NVCtrl
+		doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
+	fi
+
+	use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install
+
+	# mimic nvidia-installer by reading .manifest to install files
+	# 0:file 1:perms 2:type 3+:subtype/arguments -:module
+	local m into
+	while IFS=' ' read -ra m; do
+		! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] ||
+			[[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] ||
+			[[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] ||
+			has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue
+
+		case ${m[2]} in
+			MANPAGE)
+				gzip -dc ${m[0]} | newman - ${m[0]%.gz}; assert
+				continue
+			;;
+			GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../
+			VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/
+		esac
+
+		if [[ -v paths[${m[2]}] ]]; then
+			into=${paths[${m[2]}]}
+		elif [[ ${m[2]} =~ _BINARY$ ]]; then
+			into=/opt/bin
+		elif [[ ${m[3]} == COMPAT32 ]]; then
+			use abi_x86_32 || continue
+			into=/usr/${libdir32}
+		elif [[ ${m[2]} =~ _LIB$|_SYMLINK$ ]]; then
+			into=/usr/${libdir}
+		else
+			die "No known installation path for ${m[0]}"
+		fi
+		[[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/}
+		[[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/}
+
+		if [[ ${m[2]} =~ _SYMLINK$ ]]; then
+			[[ ${m[4]: -1} == / ]] && m[4]=${m[5]}
+			dosym ${m[4]} ${into}/${m[0]}
+			continue
+		fi
+		[[ ${m[0]} =~ ^libnvidia-ngx.so|^libnvidia-egl-gbm.so ]] &&
+			dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 # soname not in .manifest
+
+		printf -v m[1] %o $((m[1] | 0200)) # 444->644
+		insopts -m${m[1]}
+		insinto ${into}
+		doins ${m[0]}
+	done < .manifest || die
+
+	# MODULE:installer non-skipped extras
+	: "$(systemd_get_sleepdir)"
+	exeinto "${_#"${EPREFIX}"}"
+	doexe systemd/system-sleep/nvidia
+	dobin systemd/nvidia-sleep.sh
+	systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend}.service
+
+	dobin nvidia-bug-report.sh
+
+	# MODULE:powerd extras
+	if use amd64; then
+		systemd_dounit systemd/system/nvidia-powerd.service
+
+		insinto /usr/share/dbus-1/system.d
+		doins nvidia-dbus.conf
+	fi
+
+	# symlink non-versioned so nvidia-settings can use it even if misdetected
+	dosym nvidia-application-profiles-${PV}-key-documentation \
+		${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation
+}
+
+pkg_preinst() {
+	has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND=
+
+	use driver || return
+	linux-mod_pkg_preinst
+
+	# set video group id based on live system (bug #491414)
+	local g=$(egetent group video | cut -d: -f3)
+	[[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')"
+	sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
+
+	# try to find driver mismatches using temporary supported-gpus.json
+	for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do
+		g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \
+			"${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null)
+		if [[ ${g} ]]; then
+			g=$((${g##*\"}+1))
+			if ver_test -ge ${g}; then
+				NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}"
+				break
+			fi
+		fi
+	done
+	rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
+}
+
+pkg_postinst() {
+	linux-mod_pkg_postinst
+
+	readme.gentoo_print_elog
+
+	if [[ -r /proc/driver/nvidia/version &&
+		$(</proc/driver/nvidia/version) != *"  ${PV}  "* ]]; then
+		ewarn "Currently loaded NVIDIA modules do not match the newly installed"
+		ewarn "libraries and may prevent launching GPU-accelerated applications."
+		use driver && ewarn "The easiest way to fix this is usually to reboot."
+	fi
+
+	if [[ $(</proc/cmdline) == *slub_debug=[!-]* ]]; then
+		ewarn "Detected that the current kernel command line is using 'slub_debug=',"
+		ewarn "this may lead to system instability/freezes with this version of"
+		ewarn "${PN}. Bug: https://bugs.gentoo.org/796329"
+	fi
+
+	if [[ -v NV_LEGACY_MASK ]]; then
+		ewarn
+		ewarn "***WARNING***"
+		ewarn
+		ewarn "You are installing a version of ${PN} known not to work"
+		ewarn "with a GPU of the current system. If unwanted, add the mask:"
+		if [[ -d ${EROOT}/etc/portage/package.mask ]]; then
+			ewarn "  echo '${NV_LEGACY_MASK}' > ${EROOT}/etc/portage/package.mask/${PN}"
+		else
+			ewarn "  echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask"
+		fi
+		ewarn "...then downgrade to a legacy branch if possible. For details, see:"
+		ewarn "https://www.nvidia.com/object/IO_32667.html"
+	fi
+
+	if use kernel-open; then
+		ewarn
+		ewarn "Open source variant of ${PN} was selected, be warned it is experimental"
+		ewarn "and only usable with Turing / Ampere and later GPUs, aka GTX 1650+."
+		ewarn "Please also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html"
+		ewarn
+		ewarn "Many features are not yet implemented in the drivers and limitations are"
+		ewarn "to be expected. Please do not report non-build/packaging bugs to Gentoo."
+		ewarn "Switch back to USE=-kernel-open to restore functionality if needed for now."
+	fi
+
+	if use wayland && use driver && [[ ! -v NV_HAD_WAYLAND ]]; then
+		elog
+		elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
+		elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. This feature is considered"
+		elog "experimental but is required for wayland."
+		elog
+		elog "If you experience issues, either disable wayland or edit nvidia.conf."
+		elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
+	fi
+}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2022-12-11 19:12 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2022-12-11 19:12 UTC (permalink / raw
  To: gentoo-commits

commit:     1093d6cf18080fded4f22ca5aa04c869fff1c4e7
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 11 18:41:59 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Sun Dec 11 19:11:29 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1093d6cf

x11-drivers/nvidia-drivers: pass raw-ldflags for USE=kernel-open too

Same as nvidia-settings-390.144-raw-ldflags.patch, but applied
to kernel-module-source. Not a perfect fix given profiles don't
define LDFLAGS_arm64, but that's not a high priority and can
wait for nvidia's fix.

Note that modules are still generally fragile and untested with
llvm toolchain.

Closes: https://bugs.gentoo.org/885483
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../nvidia-kernel-module-source-515.86.01-raw-ldflags.patch | 13 +++++++++++++
 x11-drivers/nvidia-drivers/nvidia-drivers-515.49.25.ebuild  |  4 ++--
 x11-drivers/nvidia-drivers/nvidia-drivers-515.86.01.ebuild  |  4 ++--
 x11-drivers/nvidia-drivers/nvidia-drivers-525.60.11.ebuild  |  4 ++--
 x11-drivers/nvidia-drivers/nvidia-drivers-525.60.13.ebuild  |  4 ++--
 5 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch b/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
new file mode 100644
index 000000000000..0b0d2f1dcb48
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
@@ -0,0 +1,13 @@
+Need to pass ABI flags if LD is ld.lld for USE=kernel-open
+ld.lld: error: target emulation unknown: -m or at least one .o file required
+
+https://bugs.gentoo.org/885483
+https://github.com/NVIDIA/open-gpu-kernel-modules/issues/405
+https://github.com/NVIDIA/open-gpu-kernel-modules/issues/214
+--- a/kernel-module-source/utils.mk
++++ b/utils.mk
+@@ -556,3 +556,3 @@
+ 	$(at_if_quiet)cd $$(dir $(1)); \
+-	$$(call quiet_cmd_no_at,LD) -r -z noexecstack --format=binary \
++	$$(call quiet_cmd_no_at,LD) $$(RAW_LDFLAGS) -r -z noexecstack --format=binary \
+ 	    $$(notdir $(1)) -o $$(OUTPUTDIR_ABSOLUTE)/$$(notdir $$@)

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.25.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.25.ebuild
index e5d38d8e51c5..10af2e877f74 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.25.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-515.49.25.ebuild
@@ -82,6 +82,7 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
 	"${FILESDIR}"/nvidia-drivers-470.141.03-clang15.patch
+	"${FILESDIR}"/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
 	"${FILESDIR}"/nvidia-settings-390.144-no-gtk2.patch
@@ -264,6 +265,7 @@ options nvidia NVreg_OpenRmEnableUnsupportedGpus=1' "${T}"/nvidia.conf || die
 
 src_compile() {
 	tc-export AR CC CXX LD OBJCOPY OBJDUMP
+	local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # raw-ldflags.patch
 
 	NV_ARGS=(
 		PREFIX="${EPREFIX}"/usr
@@ -299,9 +301,7 @@ src_compile() {
 
 	if use tools; then
 		# cflags: avoid noisy logs, only use here and set first to let override
-		# ldflags: abi currently needed if LD=ld.lld
 		CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
-			RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" \
 			emake "${NV_ARGS[@]}" -C nvidia-settings
 	elif use static-libs; then
 		emake "${NV_ARGS[@]}" -C nvidia-settings/src out/libXNVCtrl.a

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-515.86.01.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-515.86.01.ebuild
index a4db984826ff..607b01e7b163 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-515.86.01.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-515.86.01.ebuild
@@ -82,6 +82,7 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
 	"${FILESDIR}"/nvidia-drivers-470.141.03-clang15.patch
+	"${FILESDIR}"/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
 	"${FILESDIR}"/nvidia-settings-390.144-no-gtk2.patch
@@ -264,6 +265,7 @@ options nvidia NVreg_OpenRmEnableUnsupportedGpus=1' "${T}"/nvidia.conf || die
 
 src_compile() {
 	tc-export AR CC CXX LD OBJCOPY OBJDUMP
+	local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # raw-ldflags.patch
 
 	NV_ARGS=(
 		PREFIX="${EPREFIX}"/usr
@@ -299,9 +301,7 @@ src_compile() {
 
 	if use tools; then
 		# cflags: avoid noisy logs, only use here and set first to let override
-		# ldflags: abi currently needed if LD=ld.lld
 		CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
-			RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" \
 			emake "${NV_ARGS[@]}" -C nvidia-settings
 	elif use static-libs; then
 		emake "${NV_ARGS[@]}" -C nvidia-settings/src out/libXNVCtrl.a

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.11.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.11.ebuild
index 762c644b7499..70f7769f33f5 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.11.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.11.ebuild
@@ -82,6 +82,7 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
 	"${FILESDIR}"/nvidia-drivers-525.23-clang15.patch
+	"${FILESDIR}"/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
 	"${FILESDIR}"/nvidia-settings-390.144-raw-ldflags.patch
@@ -259,6 +260,7 @@ options nvidia NVreg_OpenRmEnableUnsupportedGpus=1' "${T}"/nvidia.conf || die
 
 src_compile() {
 	tc-export AR CC CXX LD OBJCOPY OBJDUMP
+	local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # raw-ldflags.patch
 
 	NV_ARGS=(
 		PREFIX="${EPREFIX}"/usr
@@ -295,9 +297,7 @@ src_compile() {
 
 	if use tools; then
 		# cflags: avoid noisy logs, only use here and set first to let override
-		# ldflags: abi currently needed if LD=ld.lld
 		CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
-			RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" \
 			emake "${NV_ARGS[@]}" -C nvidia-settings
 	elif use static-libs; then
 		# pretend GTK+3 is available, not actually used (bug #880879)

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.13.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.13.ebuild
index 762c644b7499..70f7769f33f5 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.13.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-525.60.13.ebuild
@@ -82,6 +82,7 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
 	"${FILESDIR}"/nvidia-drivers-525.23-clang15.patch
+	"${FILESDIR}"/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
 	"${FILESDIR}"/nvidia-settings-390.144-raw-ldflags.patch
@@ -259,6 +260,7 @@ options nvidia NVreg_OpenRmEnableUnsupportedGpus=1' "${T}"/nvidia.conf || die
 
 src_compile() {
 	tc-export AR CC CXX LD OBJCOPY OBJDUMP
+	local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # raw-ldflags.patch
 
 	NV_ARGS=(
 		PREFIX="${EPREFIX}"/usr
@@ -295,9 +297,7 @@ src_compile() {
 
 	if use tools; then
 		# cflags: avoid noisy logs, only use here and set first to let override
-		# ldflags: abi currently needed if LD=ld.lld
 		CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
-			RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" \
 			emake "${NV_ARGS[@]}" -C nvidia-settings
 	elif use static-libs; then
 		# pretend GTK+3 is available, not actually used (bug #880879)


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2023-02-03 18:15 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2023-02-03 18:15 UTC (permalink / raw
  To: gentoo-commits

commit:     39f5d7814f3d97d05360059b3052d5c8b3d82cd8
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Fri Feb  3 18:04:07 2023 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Fri Feb  3 18:11:29 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=39f5d781

x11-drivers/nvidia-drivers: add 525.47.07:0/vulkan, drop 525.47.06

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/Manifest                |   4 +-
 .../files/nvidia-drivers-525.23-clang15.patch      | 107 ---------------------
 ...7.06.ebuild => nvidia-drivers-525.47.07.ebuild} |   4 -
 3 files changed, 2 insertions(+), 113 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index 261c38294abc..3f7861743b7e 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -6,7 +6,7 @@ DIST NVIDIA-Linux-x86_64-390.157.run 85835541 BLAKE2B 44b855cd11f3b2f231f9fb9049
 DIST NVIDIA-Linux-x86_64-470.161.03.run 272397700 BLAKE2B eaa94b7398b3aaadf30c33c95c95b167094ca56114e2e3032978b0959264ac8b8663181485eb1af0282a59b43f912c0ecd48e5eadcb06b6fda601b357ac49bc7 SHA512 26b1640f9427847b68233ffacf5c4a07e75ed9923429dfc9e5de3d7e5c1f109dfaf0fe0a0639cbd47f056784ed3e00e2e741d5c84532df79590a0c9ffa5ba625
 DIST NVIDIA-Linux-x86_64-510.108.03.run 329603898 BLAKE2B ec7327628cc0d5929f91fa7dcf09d741341b15a509169d8de187f66a99a9196077362bd9a370ba5e294fd644a3aee1bd3abfc45f20c9cb5b05660d299c9e0479 SHA512 70fbd91b0dc5db119acf20654854c417bb14889e84145e2675dc893e7247a9c34f90820cddb8202cf5c3219abc286c7014b247a2ce94bdb5681a1bca96f41a29
 DIST NVIDIA-Linux-x86_64-515.86.01.run 363743089 BLAKE2B aa03a0f059da99fa549cd9d672cef0194f2b22b349470d80ce626b3f4afb89b1f130b451735f92f5a66dfec02735bd6395053be609668371991837e3be4026cb SHA512 9a31e14afc017e847f1208577f597c490adb63c256d6dff1a9eae56b65cf85374a604516b0be9da7a43e9af93b3c5aec47b2ffefd6b4050a4b7e55f348cf4e7b
-DIST NVIDIA-Linux-x86_64-525.47.06.run 415511798 BLAKE2B 8b35774fc2689c0e51159fbe23ffe084ca670209906ca106fc7364c6fe631080f0a0dcaa2d99d34da084e0e72a41ac6741a7e7df828eb07e47729631a456b864 SHA512 7efe2ef0ee26e788e0e8c09da3f6ee7b56dcaffdffd611f6a6c0228181d618a0dea65a174b5a233cbfba497790f771f8948c11c7b957aa0863fba76781d16548
+DIST NVIDIA-Linux-x86_64-525.47.07.run 413838999 BLAKE2B 6921e903f45d49eadec8a690d8c86fefd0bc534a4412fa1a076db4b5cd2840c0c2c4076ab4ec0b562b9888bd4f0061f7d260c1e14b88653e912b17079e85d17b SHA512 51417a35a10a165f64751ce6bc7da2ab182d467bf3e6d3fac876c009fa413e044e16a1f32abbcca71209f8f29c2184c358aa9f88eddfb4ee80cea6817e1ee725
 DIST NVIDIA-Linux-x86_64-525.85.05.run 415131239 BLAKE2B 38bdcce884011cfc0a1b5d08807c0a163ac7807621f3ec69feabbdf27af9e0409491db893912776b05a45f8f56c06f281a84074ab8ff21a71774b890bdff2cf8 SHA512 db30b9186cdcf22b2dde267c08a10cadfc3d37190c57a26a71e282b0f661b187b5b28764418eacf8b2344ebfa8feb7480ae1de31b3bc3026feaf9482a3b51741
 DIST NVIDIA-kernel-module-source-515.86.01.tar.xz 7504412 BLAKE2B 20b1b9eb6e2fbc7adfa0b78c6acc88c9da8346888c3d1f1ec01a6c1252feccfc104e338605bfaf7617f0b78c7d0de05b32577394714be3575aa67b37c0e843ca SHA512 075fb8b9c3f43f21f51035460a9bc306b11214eb029e950a5bfbc283dc1d3403210ae303148442d31b2c5bf618923bd1762ab5a91234d005f50177fc02fa8ba4
 DIST NVIDIA-kernel-module-source-525.85.05.tar.xz 10081192 BLAKE2B b80f1893fe18dcb62ad2d1daaa7c1642e8699c7acda0bf55a104e10824ece908e45e8202949262fce5459b3bebe3582fa52aa506333989388eea94d65e26da11 SHA512 1ed3e69d959d68a351541483cbf552730ec1748faee3bacf1b9f0099650bc3244ed11a4aee84e51187321f59fbedaa92d24a66439265c9f2e436db82a6876ee0
@@ -35,4 +35,4 @@ DIST nvidia-xconfig-470.161.03.tar.bz2 108669 BLAKE2B 6c12e38759ce64c5637d6301e2
 DIST nvidia-xconfig-510.108.03.tar.bz2 109729 BLAKE2B 48378155d57f9b4a2b58b044daa1f2f2ed9b897b77f0453f67c7b03200cc09689b628f88a87c0f4c8ae149f11cbe6364eda34c2636cc1e1fce33b799d8225138 SHA512 17462e7826225804685eaea4dba05252dce138f95c72285abe607ee1b2a6269d2f4e5c0833802037d29350d1218ed9982053871b0b08c4f5f329d497da299fab
 DIST nvidia-xconfig-515.86.01.tar.bz2 109747 BLAKE2B d6253f9d052be5aaa1a2be82bf4a36c971aae8b6e9f61e4ff5f27ec415d945bab8289678d6a2495ff7521c66478421090a452ceb19d87803de4290aeb7f69bba SHA512 f4e66f23d9227671158ee0b99b1ccc44f25dc6a910d3b00332d135fb94f21b67f581804b53a40945a652777c898e20069962721931c7b58d2c33d38925da5e35
 DIST nvidia-xconfig-525.85.05.tar.bz2 110595 BLAKE2B 249263ad84c72c5682836bc3717774b95238197319a88b35adb9174e6023c385c49bf95ed1bf89a6d4fef0ba445a9802e437324358bddbe999f61849ea68afc0 SHA512 b2cad5f509e817e1e9f43bfce279a512d5899dbbb3dae212161b1ce7237ac3598e335779fbb7abb8b77327827838d7d310522f0b0a014498cff26f4ed5824841
-DIST open-gpu-kernel-modules-525.47.06.tar.gz 10299729 BLAKE2B 945adf90945a0935bcd3bc9eecb93a45b307b5a042baa474ee27bd1f0f404df71e1c3adb3c3544236d8742572d8dbd8864c9a6bb88ff4cdc6573837841967a2a SHA512 b92316d2a35215786bd0a645d9c2560e5c7db4acaf7ee000d591dfe95aac87cb56843f731b710308e86d8d1bdf0add12fe1d494d5750f2b0e23430bf2c50a201
+DIST open-gpu-kernel-modules-525.47.07.tar.gz 10306658 BLAKE2B 87243cffb77cd797eca51cf844c87bc9269f394635445043eaed1e554cf79341ba061aaab10018763baf1457c0ca54f1dd9cbdeab648cdf7273a2cd187fe5cfd SHA512 32948a8980e7240ee3d66185f2378e483b0a0b22513856fb22e09f91b020d3e6f4278c2b214c29a6c153cb375c3dcb6f5c73e5d22a00cbfc4bdd2e92f36ce94f

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-525.23-clang15.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-525.23-clang15.patch
deleted file mode 100644
index 74d022947992..000000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-525.23-clang15.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-Kernel's makefiles pass -Werror=strict-prototypes which
-can trigger errors depending on compiler defaults.
-https://bugs.gentoo.org/870238
-https://github.com/NVIDIA/open-gpu-kernel-modules/issues/377
---- a/kernel/nvidia/nvlink_linux.c
-+++ b/kernel/nvidia/nvlink_linux.c
-@@ -560 +560 @@
--void * nvlink_allocLock()
-+void * nvlink_allocLock(void)
---- a/kernel/nvidia/os-interface.c
-+++ b/kernel/nvidia/os-interface.c
-@@ -1169 +1169 @@
--NvU32 NV_API_CALL os_get_cpu_number()
-+NvU32 NV_API_CALL os_get_cpu_number(void)
-@@ -1176 +1176 @@
--NvU32 NV_API_CALL os_get_cpu_count()
-+NvU32 NV_API_CALL os_get_cpu_count(void)
-@@ -1256 +1256 @@
--void NV_API_CALL os_dump_stack()
-+void NV_API_CALL os_dump_stack(void)
---- a/kernel/nvidia-uvm/uvm_common.c
-+++ b/kernel/nvidia-uvm/uvm_common.c
-@@ -37 +37 @@
--bool uvm_debug_prints_enabled()
-+bool uvm_debug_prints_enabled(void)
---- a/kernel/nvidia-uvm/uvm_gpu_access_counters.c
-+++ b/kernel/nvidia-uvm/uvm_gpu_access_counters.c
-@@ -1721 +1721 @@
--NV_STATUS uvm_perf_access_counters_init()
-+NV_STATUS uvm_perf_access_counters_init(void)
-@@ -1732 +1732 @@
--void uvm_perf_access_counters_exit()
-+void uvm_perf_access_counters_exit(void)
---- a/kernel/nvidia-uvm/uvm_lock.c
-+++ b/kernel/nvidia-uvm/uvm_lock.c
-@@ -337 +337 @@
--bool __uvm_thread_check_all_unlocked()
-+bool __uvm_thread_check_all_unlocked(void)
---- a/kernel/nvidia-uvm/uvm_migrate.c
-+++ b/kernel/nvidia-uvm/uvm_migrate.c
-@@ -798 +798 @@
--NV_STATUS uvm_migrate_init()
-+NV_STATUS uvm_migrate_init(void)
-@@ -824 +824 @@
--void uvm_migrate_exit()
-+void uvm_migrate_exit(void)
---- a/kernel/nvidia-uvm/uvm_migrate_pageable.c
-+++ b/kernel/nvidia-uvm/uvm_migrate_pageable.c
-@@ -1004 +1004 @@
--NV_STATUS uvm_migrate_pageable_init()
-+NV_STATUS uvm_migrate_pageable_init(void)
-@@ -1013 +1013 @@
--void uvm_migrate_pageable_exit()
-+void uvm_migrate_pageable_exit(void)
---- a/kernel/nvidia-uvm/uvm_perf_heuristics.c
-+++ b/kernel/nvidia-uvm/uvm_perf_heuristics.c
-@@ -31 +31 @@
--NV_STATUS uvm_perf_heuristics_init()
-+NV_STATUS uvm_perf_heuristics_init(void)
-@@ -50 +50 @@
--void uvm_perf_heuristics_exit()
-+void uvm_perf_heuristics_exit(void)
---- a/kernel/nvidia-uvm/uvm_perf_prefetch.c
-+++ b/kernel/nvidia-uvm/uvm_perf_prefetch.c
-@@ -428 +428 @@
--NV_STATUS uvm_perf_prefetch_init()
-+NV_STATUS uvm_perf_prefetch_init(void)
---- a/kernel/nvidia-uvm/uvm_perf_thrashing.c
-+++ b/kernel/nvidia-uvm/uvm_perf_thrashing.c
-@@ -1946 +1946 @@
--NV_STATUS uvm_perf_thrashing_init()
-+NV_STATUS uvm_perf_thrashing_init(void)
-@@ -2005 +2005 @@
--void uvm_perf_thrashing_exit()
-+void uvm_perf_thrashing_exit(void)
---- a/kernel/nvidia-uvm/uvm_procfs.c
-+++ b/kernel/nvidia-uvm/uvm_procfs.c
-@@ -49 +49 @@
--NV_STATUS uvm_procfs_init()
-+NV_STATUS uvm_procfs_init(void)
-@@ -69 +69 @@
--void uvm_procfs_exit()
-+void uvm_procfs_exit(void)
-@@ -74 +74 @@
--struct proc_dir_entry *uvm_procfs_get_gpu_base_dir()
-+struct proc_dir_entry *uvm_procfs_get_gpu_base_dir(void)
-@@ -79 +79 @@
--struct proc_dir_entry *uvm_procfs_get_cpu_base_dir()
-+struct proc_dir_entry *uvm_procfs_get_cpu_base_dir(void)
---- a/kernel/nvidia-uvm/uvm_push.c
-+++ b/kernel/nvidia-uvm/uvm_push.c
-@@ -292 +292 @@
--bool uvm_push_info_is_tracking_descriptions()
-+bool uvm_push_info_is_tracking_descriptions(void)
-@@ -297 +297 @@
--bool uvm_push_info_is_tracking_acquires()
-+bool uvm_push_info_is_tracking_acquires(void)
---- a/kernel/nvidia-uvm/uvm_thread_context.c
-+++ b/kernel/nvidia-uvm/uvm_thread_context.c
-@@ -104 +104 @@
--bool uvm_thread_context_wrapper_is_used()
-+bool uvm_thread_context_wrapper_is_used(void)
---- a/kernel/nvidia-uvm/uvm_tools.c
-+++ b/kernel/nvidia-uvm/uvm_tools.c
-@@ -2207 +2207 @@
--void uvm_tools_flush_events()
-+void uvm_tools_flush_events(void)

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-525.47.06.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-525.47.07.ebuild
similarity index 99%
rename from x11-drivers/nvidia-drivers/nvidia-drivers-525.47.06.ebuild
rename to x11-drivers/nvidia-drivers/nvidia-drivers-525.47.07.ebuild
index b11dac8478a7..cb22915a48a9 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-525.47.06.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-525.47.07.ebuild
@@ -82,7 +82,6 @@ BDEPEND="
 QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 
 PATCHES=(
-	"${FILESDIR}"/nvidia-drivers-525.23-clang15.patch
 	"${FILESDIR}"/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
@@ -268,9 +267,6 @@ src_prepare() {
 	rm nvidia-xconfig && mv nvidia-xconfig{-${NV_PIN},} || die
 	mv open-gpu-kernel-modules-${PV} kernel-module-source || die
 
-	eapply --directory=kernel-module-source/kernel-open \
-		-p2 "${FILESDIR}"/nvidia-drivers-525.23-clang15.patch
-
 	default
 
 	# prevent detection of incomplete kernel DRM support (bug #603818)


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2023-10-17 17:52 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2023-10-17 17:52 UTC (permalink / raw
  To: gentoo-commits

commit:     33771d6c13247170d54f82bf8747b60288a452bf
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 17 17:13:37 2023 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Oct 17 17:50:27 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=33771d6c

x11-drivers/nvidia-drivers: add 545.23.06 (unkeyworded NFB beta)

Per usual, leaving unkeyworded when NVIDIA notes that it is a beta,
and will wait for the next version for this NFB to keyword. Not that
there is known issues at the moment.

nvidia.conf newly has a (commented out) fbdev=1 setting to take over
efifb or others once nvidia-drm is loaded. Untested but should allow
simpledrm or nouveau to handle early boot messages and then be replaced
(rather than conflict). Not that would recommend nouveau over simpledrm
for this, unnecessary complex initializations just to display few lines
of boot messages.

Note NVIDIA has upped kernel-open from "alpha" to "beta" and no longer
requires setting NVreg_OpenRmEnableUnsupportedGpus=1. To go with this,
reduce ebuild postinst elog nagging to show only once when newly
setting the flag.

Also drop raw ldflags patches, looks finally fixed upstream.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/Manifest                |   8 +
 x11-drivers/nvidia-drivers/files/nvidia-545.conf   |  37 ++
 .../nvidia-drivers/nvidia-drivers-545.23.06.ebuild | 504 +++++++++++++++++++++
 3 files changed, 549 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index 7edd68684d57..d74bf8547b84 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -1,31 +1,39 @@
 DIST NVIDIA-Linux-aarch64-525.125.06.run 263039228 BLAKE2B e25f9dd3807fcd3bc4d3d55b6b7f39969ee4140e2f6a60509b34494b5e29daa1c333edeeb966bfdf4397057c6b707830523c956e28e252ab6db1fc402ac8edbb SHA512 190a458810fa02c89eaeb4587b97463b2be86a9a5ba44ab4113a224d224cec69d8d706b4a3421bdc3a067e0c47a67e104c156bb5ddec6ecd109b655a3d4ef7d7
 DIST NVIDIA-Linux-aarch64-535.113.01.run 269687456 BLAKE2B 712f7d18ac566338fd87f57a686bb66ef987a1a1a244271be398f5b4566ab746e52ed9c65f04daef858b996fd3e1a12b70c0262dc28afa658764d3b27d7cd1f6 SHA512 b096ffb63d2f113bb1ac5a8cec9a79a643ccab7fc8e9b20e547d96bda4960f0bc70fa2be806d19d47eae5fe2ee6e762e0638f1600ceb54744f46af38251a7f73
+DIST NVIDIA-Linux-aarch64-545.23.06.run 255875887 BLAKE2B 83be798d96f5ec23e6008475d71f2a8ce5fe68f7271bec262d775d3a4641317ee83a6929fd07745946bdac03f39aced6ccc1778d1349185cc835efbe20f92db0 SHA512 0de770e0871a909f8738acc14eb0eca53a947201cd5acd2af7852f93fce82a6e0de3f52309357a3777f1041a902be9790e7a1531437108d0eec6897f6a62501b
 DIST NVIDIA-Linux-x86-390.157.run 49417041 BLAKE2B 435b5e0e60468cc74b41cc5d9b5bb0105d29c11a2d408457835212a96519c9334ecf19278b36749d3ff7f498f5b0ae45a2efae2d428703dac21245c62f1efebe SHA512 dae9ac2c12f9ad90f7441e00e01a984147c577892421911d7f67f6a31e616ac1cb7d434bc9c7f58fbd9b8ae909521b5bece607a63c79588c0bb9d99c6bad5fb0
 DIST NVIDIA-Linux-x86_64-390.157.run 85835541 BLAKE2B 44b855cd11f3b2f231f9fb90492ae2e67a67ea3ea83c413e7c90956d38c9730a8bd0321281ae03c6afce633d102f5b499aed25622b9bfd31bdd2c98f0717e95b SHA512 4780503a4cff0180b1b1f37d20a6ba3438dd78b51fa7f69b98d35521835e5d61099129746929d51d63afa2d47b672b3e145e1e1897584dc3799e7f822c5b3a0a
 DIST NVIDIA-Linux-x86_64-470.199.02.run 273256770 BLAKE2B 5ceca89da4b4c7de701602d3dbf26e71a1163be26e0e5eac65354ecd40bfc8d68c981a6ef75b13e95079835c95ef7f9e10e5f95a0ed09beffd5bc22cb81a5330 SHA512 e1265b6266473af652e9d7bf85dcd76e312af281c5f4f158ab322e34d378738acb87c30cfff7bf1f6e1b238883e7f665d9fc5151b1e0078dd9aece5a52655405
 DIST NVIDIA-Linux-x86_64-525.125.06.run 414318862 BLAKE2B 204c53bbf579edf6d88c9ab4efcf82983a2b58262df4748076de96f3d67b107949407ae0c5ffe9bf6747783b1bcb9a9efc4a3c60d7161427b1c85ecfc494171a SHA512 a5f13b633d111d9dc928e8522cd916a2b756fccbf2dc532649762a3f9bdc5503bd57c9c698da8205c49e82720b45789413a1afc26be77d741f823b49ae2f333d
 DIST NVIDIA-Linux-x86_64-535.113.01.run 341515532 BLAKE2B 2fe0564771f14618010bd1d8932db1d6c98701faabfd8a867f5f0e9939dcff6d64744c3f2272b62701c231473e49dd1b22687db777a1950c4e0f40f091b70ed2 SHA512 bf939843404bc163246b710ca336236f28af489f77ee1830a2d20d4ca926a434b6fbc2156d5777dc004692d5d1adbef77ce79071247f81da2db9adf42c32bfa7
 DIST NVIDIA-Linux-x86_64-535.43.13.run 340967556 BLAKE2B 7a74e5bb6e492692cc643eefa89418f698eb8a7e6989dc704e18e0eb4489ad47b8f2592a1d4ae7104cd958183f4a4977a10c5f419b67130eb0a4a41569b4ca29 SHA512 f942ea0f5287a8c49f9930f5abd0ad3ca6765e791ccfe7f98e3e0c3096c8101a518fac6f2ba814afeb37762340436c72ad00f5b6b5179daa19f7f866b1e8c878
+DIST NVIDIA-Linux-x86_64-545.23.06.run 324826559 BLAKE2B 5cdf6f9c0ddd43a57e0d740bf027a98d003a0a44b07a920670439e3c218e2c4385667b86deed60afacf567c186fd5869a80af4fa4498a8724d0548e407b98032 SHA512 5b36accd10b5d5768ac6c6865148c750485f24ad4346f9f2f7e9d7d323297b0b5c5e7369bd8b82bca10e3d518b0ca820ae4865df8beaa49eb3fd5ad184702194
 DIST NVIDIA-kernel-module-source-525.125.06.tar.xz 10100204 BLAKE2B 1a7a9f56be4533b8106df25ddf65cd7756cde11fd3e01f96f1f34c7d18af764fcfefc1cf980fed6c0e586e614ccacef9e2cddbabb87c7d7f06a1b27d94f63466 SHA512 1319a2333988795f5b0850cfe769ab0f4c4364bdb516147b85890abb4695aea2553ca0febf9cfcf2f8eafb4c05c3e21f56356ad75e64416c9782b027495028e6
 DIST NVIDIA-kernel-module-source-535.113.01.tar.xz 12469512 BLAKE2B 832d1468a35d9d5677b3fdae30a7db7518173d9b657124669634380568b19ea63659fbfe07f06e82dd8f77331d34d34e8b1a7505e8875594ee06426407528f8c SHA512 a9f1bfcb01c8ccf80ceeb2750111bbc7feec8c0b549e115c7afdcd7f3c8814d4591efa10964e8c1d2e82db38a7ef1cfe9303983ee559435211b8aff543011475
 DIST nvidia-installer-390.157.tar.bz2 150323 BLAKE2B 8058ca87a6dea956d564af9f7eab9b1fc82b1f2382bd5cb2f6d97cbe2e19292533522d5f8f2eacbeb16520372715fcb72f8f9b0998962af5d4e75522c8d74524 SHA512 93a7ece648602157496c8e27a88864ede341a100f5328a4c1a25faf8f0b94d252060e5e2f71d0c302fd0566c10773c30b76b3b5f431d8039b71c90a7969f7d7e
 DIST nvidia-installer-470.199.02.tar.bz2 146367 BLAKE2B 0b49350a884c1e2e39fbb3a393aec0e00678ba84d8f15b3a031628593724ec2a91b162075bcb282d2d2efdc199f8c58bbd0a3c2657592bc548d4c0ec35101518 SHA512 e3a2bca22dfc8618a52e5b188bc76718bce0d5a09a136154fbc664aae32c54a6bebaab279f7830e36116bb93e514e81b845f5a7e745dbbdaa0cc6f9284dcc3c3
 DIST nvidia-installer-525.125.06.tar.bz2 147696 BLAKE2B 67d9539dca006b11585e51d3c431e7f60770cdf0a06809f007b53f418afe1f8ee7412946ff68f2c60a1dd5353eaf377087507ae82a1a480801a7f33d458b48a4 SHA512 d29564b91b8e4c4ff6c2d0480d84738e8376e93b0efecd541bbb64258514e28833317147d091ca929238f315a227e7db03eaa6be1846abc660bb25bcd1c50302
 DIST nvidia-installer-535.113.01.tar.bz2 148653 BLAKE2B 9a2d39a2a2ee7a9af872596e3d6b735fea0d3e24e030bf870cec0849cdde747acef8bd4daa7864165b0c30e99c8a53528c42b43789dbd7824df4249ca4969370 SHA512 397e982833ef6dcefb21fd4866ca4b52d33c3b5da0beb43fb4a5dace422d88b0742e22ddf8b2988d1cd5ffadf30f7730ed70d0f243e9d319ce954e205dae2a00
+DIST nvidia-installer-545.23.06.tar.gz 214792 BLAKE2B d35f4b385e8ff85337ec683db451ae7e8d29b3afb33123154d8a8377764b618060875a9e3145d301f3819ebf57bf7af6ae351bbe0d8d6dd12f7abd6bad135d6b SHA512 a3750f271c30c9407ec517a76bd647b9b1f96f458e65cd5bbb341964783b935dfbfde967c073f9ad4ea32ee66389b43c6e63858e6c60bda618880edd5ba3593a
 DIST nvidia-modprobe-390.157.tar.bz2 35306 BLAKE2B 80d202b39c2f95ec0f909712c2e101483af50124092c32efb33bd98ff58ddfb97b737ff07f1ddc941f688c1b4c26a15f392566d522e18506771f10422fcd571c SHA512 109bbe24a3758b568ea65fe1e9d78f69fae6108ec0497b796c885a3912825fe04ffd7389a3e22987f1a10a2926bf6eaa384faabc59478aa3ee244dd3ac91c6d3
 DIST nvidia-modprobe-470.199.02.tar.bz2 38786 BLAKE2B e72ea8d97f94c804411bcd8ad52653bf4a00114c4c65822a006a28076a51803a39b7168273c46cd0391c094837593ff8bd415357541fe73222c9c87b554e0798 SHA512 f66707d1e754d55ebc109d0d03f21143f5702d42ab56785c451b93aa577007de99526d453d732e32ddd273647e041bfe4cd5f4305c7535f2420bac17878c843d
 DIST nvidia-modprobe-525.125.06.tar.bz2 40428 BLAKE2B bafe72592680ee75868c794f1442ce283fe7376a6997ad85c6fbb269cf111fdac0c86bc0474c8a4496796bc519ec975bf8569cfd5c366535260aad4d845aa096 SHA512 d673ab4f23eb72acdbcc4f5786fe0c35d4d3e0816dcb117937441cb41fe9414bc0ce35ff8be8bd7a28d3dbae5e69a57f891cbc985dc73570c7d06d462548d721
 DIST nvidia-modprobe-535.113.01.tar.bz2 40699 BLAKE2B d114e93626f8173e19ff26488274e6f1e04d6db17eb003583e6ae0dcadce43a16f8077809b5cb4f8f1013b89fd9b2f0de19764fd6f0feaf5fe14d21910a3bd3d SHA512 90726229ddd8fbb4e6e90a5bbde290cbf5daaf4e9faa68c936aa21d2c4e1b534c67ab2e87f9d787dcf29df1b6b328ef92dbac48d6ee935ba5eb8e81da83db95b
+DIST nvidia-modprobe-545.23.06.tar.gz 46550 BLAKE2B 212d97c04d8b54462ed7d614299cf4f5be585ba38517084917975636b54b4b3e63c5f2d1b9cff90f68f222440d6887cc55347b560494d52b53cacc7f90ebfbaf SHA512 b363f3609ab27103f1d137be87cded4be4802cb9abad620f2b83cf0a8d0eea8de123dea9a73efb7b00a580b014d9603ff4dfe1e33991666533088d89d2e144ee
 DIST nvidia-persistenced-390.157.tar.bz2 48654 BLAKE2B 2cf6c92da90acff55e8c180a06b0c6a29d48be9fd8ca3c541202fd14f0697220fba6b66452942aa7ae7cc8821f5c5eb9fa8f7a31d2248624e5f9141d83a176b8 SHA512 70f0707ed6f2b877e69ef90cf782f66cbc9d2071db53ca09ceb7b89427b0fe176708517340621fa251539b7d481b238adeeb60261674eed74de1f62db6dbb72e
 DIST nvidia-persistenced-470.199.02.tar.bz2 46558 BLAKE2B 67cf26b1915d29898769ffe91399c5204e61a71a0bd205d35daae4516bfe06b978323aea5a8af3341dfd497ac6bf7bb7519e33030a3d622d84f3f8f70e5d510f SHA512 8c4ac45954db02311f323d2dd79cbfeb7d6724e96b881069f1dd2d156be089ad2b3723cdc43c83d5a65bee28d45558fc55ebdc74f971abc4640cc5be0444f5e4
 DIST nvidia-persistenced-525.125.06.tar.bz2 48050 BLAKE2B b7e91a5cbd00cf3f553aa06cb576740ece2025d27291e64271b77dca0c81c4a4ba9450c05db037a1f517e92cfb50019fe63548cde80753c2f0ab6852380ef30d SHA512 736f8a016e3b65b44d59db4f13eaa366c41e0fc6b3adde3f1bf8bb5362948115152016f78b89306c20311a7d70ce12329bbfa5e11eff24a3621cef17c5fa1566
 DIST nvidia-persistenced-535.113.01.tar.bz2 48577 BLAKE2B fd3886f3f72b13f5270fe1f642f25e842f8a8d88ac312aec6e6ce0e0ce4d3eb96b9571257f53500577fad70ca0ded474e19562e1e27d30c69026b89730efc8cf SHA512 ac708d7aede4acc81c6c6d7cc46dad8e6f3503d7f6e6fa8526d04c47cede505208f6bfc7a644d7102f6cfd3ebf2315f8dd2dbac16c5bfc365f608b9814a76ed5
+DIST nvidia-persistenced-545.23.06.tar.gz 56644 BLAKE2B a12cb82c3c6031480f29dfa5784a756cfc148d987999b38d43f3db1e78788a04434275411a3292b5f25a66b512ca31bfb09e22b7223fbb17f81dd4ea3e73d74f SHA512 50ca02b0306bab1684fb32d5aca9e9f3dd27db3696ca973a11c51c246854183fba8c96b3096c484ca3521010346d8bbb5609a7872fed92f37381ce9310811fa1
 DIST nvidia-settings-390.157.tar.bz2 1108938 BLAKE2B d9ec1ab5d7f157d74627272adf752a671dd17e2ede02069437b6180b927fe315b15cc6416d584ab2f038b76fe01e5b64514a834f24d88ac16676e55205fdecdd SHA512 b16699009bf56a1ff3b623a528c58061c4f5a2c5c4a373756a07bcd667743a1df7c733a572d2d0baa835a904ac2fda8a5c85890dcc00c3a0f223e0467aea902d
 DIST nvidia-settings-470.199.02.tar.bz2 1062171 BLAKE2B d247b4a9e8d836b3e37116b51e8dfc36fa23ffc45bf4e21e84d6174adbc45ea8605675b146cf109311412e736995a51d0d0503d182a35507690f384e87202005 SHA512 0a2794e795ddf579f6bc27de2795119e62c6b9cc8e1641ada3e4954a89ef2a7796e88e3299cea113f269838b5bf084ed3c07304d5d34d410c5483c135b13b356
 DIST nvidia-settings-525.125.06.tar.bz2 1087893 BLAKE2B 0aa44617be40469ca43d325436f2dbc6af1a7c813c5da189bd727130bd8c7013bc0bbd45abd0df7eb64c4ec2ec17ca651188014005a8ea4ae63070619c956ce3 SHA512 b3503e821ab84a7fc8361ea5e7277b03048397f188faf3c277455920aefdb194b6cd99cc179b67d64042427a0d4685bbb740463466e6d6f8fc143af2f9af55b2
 DIST nvidia-settings-535.113.01.tar.bz2 1094127 BLAKE2B 6244271200f7123893f4575bda83a3c0d8462b14dc29139a47781f2247c17852adff57a4a1a714878c76d5dbe7108a28420d3459a299a75991a34745131b3b64 SHA512 d1c20143ae575296bf969e3eb7cde126997aad30792ca8ec7666782d26a913b099ed029cd4e362636d0f2b4797749331e773e5ea02f2cd3cb3f4e883c6c7e5af
+DIST nvidia-settings-545.23.06.tar.gz 1273729 BLAKE2B 7dc8f60f9e6ed5789ad7ad71203c937f4dcf88d3d040f974736cfba2b8f7f037db323a2c6404fc8920f8f901ac47c4c993950ceba38ab61d8c3551952e06900c SHA512 6cd905181db8037bf5b1b2a86106cf0c0e3637bf2522859f3f0be73b9419c19af43a97acfaaac35643ebc8ef9a7293fe6016f9b3ac08c573d2672387fd58448c
 DIST nvidia-xconfig-390.157.tar.bz2 107399 BLAKE2B 0cbb3b1ba508ddc3ba4a161c290b31bf7a67f67880bdbd01171a962c5fa97ca945b1ef17932403f8589309380743f1da632c728d8accb6d4e56dbd895e7486bb SHA512 50b390811c9bf091b14add41f886925b17496b41006b7d3981d2398caa65cf5db8a579c8cebed78278384bf3acc629befb07b54339c61abcc75852c0dcb8b8ca
 DIST nvidia-xconfig-470.199.02.tar.bz2 108683 BLAKE2B 80e5b356f1b2a10b2f0d1a139b511fa79af925d5cdac80ebd04fe53b4ec26df599985a3ee4be1cb466415ec8fb292e3b8b85013aaa21226a9301351490ddb28b SHA512 0c1d18af896b8cb3a4992025ed207c9bcf2211e6a8e904755d51ce1d3791db89c0baa4571f9eb5198a5fcd13ffd41deec416c622f8207bb7dd23decd9864ad89
 DIST nvidia-xconfig-525.125.06.tar.bz2 111119 BLAKE2B bd9ef08c361e969775522911a931a25b4512a59d9aa2f90ab1be1696161cd127f20c526b31173d0226408c74da14b5cb381c717d6b8b8b3975b2449e5beb7d9c SHA512 7595f88004aa23595364dd25db35986abb802de80c9e70c9f22367184859057140271dcfd8688ec9d686ca67ae85740c21300ddebd1dbd78af5660896154f3b4
 DIST nvidia-xconfig-535.113.01.tar.bz2 110630 BLAKE2B ca6d9f5c5b2d841049322af19dcf3ed668a1140d3dc6be80a4e32a0c480dfda6c86ce09f60b6bf1eeb67b5fdf86c5776b544d2e5e9d2497c06db6e9280f0ac41 SHA512 1f238525cdb9bf6f2e27b703cec144ff03400e2fa7ca79cb425b455aa9b8c21de9473dcfe7b212aefff5f69eba0537f76560b0be7953bbf6ec0c7bb47bf984fe
+DIST nvidia-xconfig-545.23.06.tar.gz 145333 BLAKE2B 434fb3baf7bed05d9d174faf223d6947bb880a6290a347beb17bf1be197cefbf49b4337a84d0c7c58758bb15808efb8a95164c0cfb0b9242d93ca5ee7c4e47fd SHA512 ac8a0a40da7124afd74e170af90f5782dccf39e64f54640fae2a1bc13e138341c8c7178b907f02a8b90c4978e3f0421287a17f83da369653bd97bbd6b4015198
 DIST open-gpu-kernel-modules-535.43.13.tar.gz 12754060 BLAKE2B 65e5e66971d0e3d44c663b84e15f7f0d94789fe40bacb8550ebc1e13a84f970f65c871b22fc99cecedb5f4edfa7750ddc22b33d0c612fc6a03c88752d83f80d2 SHA512 3ff74d2d748d27fd53b11bf34d9b58b4ac4797c19fcb913ad13fe35c12bb167b55ac536a9070fdea3c149bd9545217d9523179df6181d50bdeb72a04e9027f84
+DIST open-gpu-kernel-modules-545.23.06.tar.gz 12946143 BLAKE2B 0449f6132e724d8b2ad9ff8fbed89da05d7de48a5448dbdcfdc32eb6a5e1c7ddfb9c595e18a6a98da8163f3462b086d2200f4e49eb6e4d0a0373921d2d4ce78f SHA512 ec4a9cbdd32e27f3a1b9b16858adc6cedd0c167a86611e3d1249e969ef199baa21ac5c02bad7037c2af512966ea605bb355bc592ed8eb5f7d655535787b85aee

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-545.conf b/x11-drivers/nvidia-drivers/files/nvidia-545.conf
new file mode 100644
index 000000000000..9748d8312c66
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-545.conf
@@ -0,0 +1,37 @@
+# NVIDIA drivers options
+# See /usr/share/doc/nvidia-drivers-*/README.txt* for more information.
+
+# nvidia-drivers and nouveau cannot be used at same time.
+# Comment out the following line if you wish to allow nouveau.
+blacklist nouveau
+
+# Kernel Mode Setting (notably needed for fbdev and wayland).
+# Enabling may possibly cause issues with SLI and Reverse PRIME.
+#options nvidia-drm modeset=1
+
+# Enable experimental framebuffer console support (^ requires modeset=1).
+# Replaces efifb or similar once loaded. Note that unloading nvidia modules
+# to, e.g. load a new version, would result in losing console display.
+#options nvidia-drm fbdev=1
+
+# Suspend options. Allocations=0 recommended over =1 unless enable nvidia's
+# systemd sleep services (nvidia-hibernate, nvidia-resume, nvidia-suspend),
+# but even then may lead to issues on some setups (keep 0 if in doubt).
+options nvidia \
+	NVreg_PreserveVideoMemoryAllocations=0 \
+	NVreg_TemporaryFilePath=/var/tmp
+
+# !!! Security Warning !!!
+# Do not change the DeviceFile options unless you know what you are doing.
+# Only add trusted users to the 'video' group, these users may be able to
+# crash, compromise, or irreparably damage the machine.
+options nvidia \
+	NVreg_DeviceFileGID=@VIDEOGID@ \
+	NVreg_DeviceFileMode=432 \
+	NVreg_DeviceFileUID=0 \
+	NVreg_ModifyDeviceFiles=1
+
+# Should be no need to touch anything below.
+alias char-major-195 nvidia
+alias /dev/nvidiactl char-major-195
+remove nvidia modprobe -r --ignore-remove nvidia-drm nvidia-modeset nvidia-uvm nvidia

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-545.23.06.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-545.23.06.ebuild
new file mode 100644
index 000000000000..2a2f0401efce
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-545.23.06.ebuild
@@ -0,0 +1,504 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MODULES_OPTIONAL_IUSE=+modules
+inherit desktop flag-o-matic linux-mod-r1 readme.gentoo-r1
+inherit systemd toolchain-funcs unpacker user-info
+
+MODULES_KERNEL_MAX=6.5
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="https://www.nvidia.com/download/index.aspx"
+# .run/sources were missing from the usual mirror at time of bump, so using
+# the alternative (us.) + github tags that got updated earlier *this* time
+SRC_URI="
+	amd64? ( https://us.download.nvidia.com/XFree86/Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run )
+	arm64? ( https://us.download.nvidia.com/XFree86/aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run )
+	$(printf "https://github.com/NVIDIA/%s/archive/refs/tags/${PV}.tar.gz -> %s-${PV}.tar.gz " \
+		nvidia-{installer,modprobe,persistenced,settings,xconfig}{,})
+	https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/${PV}.tar.gz
+		-> open-gpu-kernel-modules-${PV}.tar.gz
+"
+# nvidia-installer is unused but here for GPL-2's "distribute sources"
+S=${WORKDIR}
+
+LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
+SLOT="0/${PV%%.*}"
+# unkeyworded for testing due to being marked beta by nvidia
+#KEYWORDS="-* ~amd64 ~arm64"
+IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced +static-libs +tools wayland"
+REQUIRED_USE="kernel-open? ( modules )"
+
+COMMON_DEPEND="
+	acct-group/video
+	X? ( x11-libs/libpciaccess )
+	persistenced? (
+		acct-user/nvpd
+		net-libs/libtirpc:=
+	)
+	tools? (
+		>=app-accessibility/at-spi2-core-2.46:2
+		dev-libs/glib:2
+		dev-libs/jansson:=
+		media-libs/harfbuzz:=
+		x11-libs/cairo
+		x11-libs/gdk-pixbuf:2
+		x11-libs/gtk+:3[X]
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXxf86vm
+		x11-libs/pango
+	)
+"
+RDEPEND="
+	${COMMON_DEPEND}
+	dev-libs/openssl:0/3
+	sys-libs/glibc
+	X? (
+		media-libs/libglvnd[X,abi_x86_32(-)?]
+		x11-libs/libX11[abi_x86_32(-)?]
+		x11-libs/libXext[abi_x86_32(-)?]
+	)
+	wayland? (
+		gui-libs/egl-gbm
+		>=gui-libs/egl-wayland-1.1.10
+	)
+"
+DEPEND="
+	${COMMON_DEPEND}
+	static-libs? (
+		x11-libs/libX11
+		x11-libs/libXext
+	)
+	tools? (
+		media-libs/libglvnd
+		sys-apps/dbus
+		x11-base/xorg-proto
+		x11-libs/libXrandr
+		x11-libs/libXv
+		x11-libs/libvdpau
+	)
+"
+BDEPEND="
+	sys-devel/m4
+	virtual/pkgconfig
+"
+
+QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
+
+PATCHES=(
+	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
+	"${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch
+)
+
+pkg_setup() {
+	use modules && [[ ${MERGE_TYPE} != binary ]] || return
+
+	local CONFIG_CHECK="
+		PROC_FS
+		~DRM_KMS_HELPER
+		~SYSVIPC
+		~!LOCKDEP
+		~!SLUB_DEBUG_ON
+		!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 for wayland / nvidia-drm.modeset=1.
+	Cannot be directly selected in the kernel's menuconfig, and may need
+	selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or
+	DRM_I915=y, DRM_NOUVEAU=m also acceptable if a module and not built-in."
+
+	local ERROR_X86_KERNEL_IBT="CONFIG_X86_KERNEL_IBT: is set and, if the CPU supports the feature,
+	this *could* lead to modules load failure with ENDBR errors, or to
+	broken CUDA/NVENC. Please ignore if not having issues, but otherwise
+	try to unset or pass ibt=off to the kernel's command line." #911142
+	use kernel-open || CONFIG_CHECK+=" ~!X86_KERNEL_IBT"
+
+	use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764
+
+	use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827
+	local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open.
+	Cannot be directly selected in the kernel's menuconfig, and may need
+	selection of another option that requires it such as CONFIG_KVM."
+
+	linux-mod-r1_pkg_setup
+}
+
+src_prepare() {
+	# make patches usable across versions
+	rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die
+	rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die
+	rm nvidia-settings && mv nvidia-settings{-${PV},} || die
+	rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die
+	mv open-gpu-kernel-modules-${PV} kernel-module-source || die
+
+	default
+
+	# prevent detection of incomplete kernel DRM support (bug #603818)
+	sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
+		-i kernel{,-module-source/kernel-open}/conftest.sh || die
+
+	# adjust service files
+	sed 's/__USER__/nvpd/' \
+		nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \
+		> "${T}"/nvidia-persistenced.service || die
+	use !amd64 || sed -i "s|/usr|${EPREFIX}/opt|" systemd/system/nvidia-powerd.service || die
+
+	# use alternative vulkan icd option if USE=-X (bug #909181)
+	use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die
+
+	# enable nvidia-drm.modeset=1 by default with USE=wayland
+	cp "${FILESDIR}"/nvidia-545.conf "${T}"/nvidia.conf || die
+	use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die
+
+	# makefile attempts to install wayland library even if not built
+	use wayland || sed -i 's/ WAYLAND_LIB_install$//' \
+		nvidia-settings/src/Makefile || die
+}
+
+src_compile() {
+	tc-export AR CC CXX LD OBJCOPY OBJDUMP
+
+	local xnvflags=-fPIC #840389
+	# lto static libraries tend to cause problems without fat objects
+	is-flagq '-flto@(|=*)' && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
+
+	NV_ARGS=(
+		PREFIX="${EPREFIX}"/usr
+		HOST_CC="$(tc-getBUILD_CC)"
+		HOST_LD="$(tc-getBUILD_LD)"
+		BUILD_GTK2LIB=
+		NV_USE_BUNDLED_LIBJANSSON=0
+		NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
+		WAYLAND_AVAILABLE=$(usex wayland 1 0)
+		XNVCTRL_CFLAGS="${xnvflags}"
+	)
+
+	if use modules; then
+		local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS}
+
+		local modlistargs=video:kernel
+		if use kernel-open; then
+			modlistargs+=-module-source:kernel-module-source/kernel-open
+
+			# environment flags are normally unused for modules, but nvidia
+			# uses it for building the "blob" and it is a bit fragile
+			filter-flags -fno-plt #912949
+			filter-lto
+			CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags
+		fi
+
+		local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} )
+		local modargs=(
+			IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
+			SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
+		)
+
+		# temporary workaround for bug #914468
+		CPP="${KERNEL_CC} -E" tc-is-clang && addpredict "${KV_OUT_DIR}"
+
+		linux-mod-r1_src_compile
+		CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags}
+	fi
+
+	emake "${NV_ARGS[@]}" -C nvidia-modprobe
+	use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced
+	use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig
+
+	if use tools; then
+		# avoid noisy *very* noisy logs with deprecation warnings
+		CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
+			emake "${NV_ARGS[@]}" -C nvidia-settings
+	elif use static-libs; then
+		# pretend GTK+3 is available, not actually used (bug #880879)
+		emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \
+			-C nvidia-settings/src out/libXNVCtrl.a
+	fi
+}
+
+src_install() {
+	local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir)
+
+	NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} )
+
+	local -A paths=(
+		[APPLICATION_PROFILE]=/usr/share/nvidia
+		[CUDA_ICD]=/etc/OpenCL/vendors
+		[EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d
+		[FIRMWARE]=/lib/firmware/nvidia/${PV}
+		[GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm
+		[GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d
+		[OPENGL_DATA]=/usr/share/nvidia
+		[VULKAN_ICD_JSON]=/usr/share/vulkan
+		[WINE_LIB]=/usr/${libdir}/nvidia/wine
+		[XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d
+
+		[GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions
+		[GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules
+		[XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules
+	)
+
+	local skip_files=(
+		$(usev !X "libGLX_nvidia libglxserver_nvidia")
+		libGLX_indirect # non-glvnd unused fallback
+		libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source
+		libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm
+		libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland
+		libnvidia-pkcs11.so # using the openssl3 version instead
+	)
+	local skip_modules=(
+		$(usev !X "nvfbc vdpau xdriver")
+		$(usev !modules gsp)
+		installer nvpd # handled separately / built from source
+	)
+	local skip_types=(
+		GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd
+		OPENCL_WRAPPER.\* # virtual/opencl
+		DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused
+	)
+
+	local DOCS=(
+		README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json
+		nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
+	)
+	local HTML_DOCS=( html/. )
+	einstalldocs
+
+	local DISABLE_AUTOFORMATTING=yes
+	local DOC_CONTENTS="\
+Trusted users should be in the 'video' group to use NVIDIA devices.
+You can add yourself by using: gpasswd -a my-user video\
+$(usev modules "
+
+Like all out-of-tree kernel modules, it is necessary to rebuild
+${PN} after upgrading or rebuilding the Linux kernel
+by for example running \`emerge @module-rebuild\`. Alternatively,
+if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}),
+this can be automated by setting USE=dist-kernel globally.
+
+Loaded kernel modules also must not mismatch with the installed
+${PN} version (excluding -r revision), meaning should
+ensure \`eselect kernel list\` points to the kernel that will be
+booted before building and preferably reboot after upgrading
+${PN} (the ebuild will emit a warning if mismatching).
+
+See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\
+$(use amd64 && usev !abi_x86_32 "
+
+Note that without USE=abi_x86_32 on ${PN}, 32bit applications
+(typically using wine / steam) will not be able to use GPU acceleration.")
+
+For additional information or for troubleshooting issues, please see
+https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own
+documentation that is installed alongside this README."
+	readme.gentoo_create_doc
+
+	if use modules; then
+		linux-mod-r1_src_install
+
+		insinto /etc/modprobe.d
+		doins "${T}"/nvidia.conf
+
+		# used for gpu verification with binpkgs (not kept, see pkg_preinst)
+		insinto /usr/share/nvidia
+		doins supported-gpus/supported-gpus.json
+	fi
+
+	emake "${NV_ARGS[@]}" -C nvidia-modprobe install
+	fowners :video /usr/bin/nvidia-modprobe #505092
+	fperms 4710 /usr/bin/nvidia-modprobe
+
+	if use persistenced; then
+		emake "${NV_ARGS[@]}" -C nvidia-persistenced install
+		newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced
+		newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced
+		systemd_dounit "${T}"/nvidia-persistenced.service
+	fi
+
+	if use tools; then
+		emake "${NV_ARGS[@]}" -C nvidia-settings install
+
+		doicon nvidia-settings/doc/nvidia-settings.png
+		domenu nvidia-settings/doc/nvidia-settings.desktop
+
+		exeinto /etc/X11/xinit/xinitrc.d
+		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
+	fi
+
+	if use static-libs; then
+		dolib.a nvidia-settings/src/out/libXNVCtrl.a
+
+		insinto /usr/include/NVCtrl
+		doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
+	fi
+
+	use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install
+
+	# mimic nvidia-installer by reading .manifest to install files
+	# 0:file 1:perms 2:type 3+:subtype/arguments -:module
+	local m into
+	while IFS=' ' read -ra m; do
+		! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] ||
+			[[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] ||
+			[[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] ||
+			has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue
+
+		case ${m[2]} in
+			MANPAGE)
+				gzip -dc ${m[0]} | newman - ${m[0]%.gz}; assert
+				continue
+			;;
+			GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../
+			VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/
+		esac
+
+		if [[ -v 'paths[${m[2]}]' ]]; then
+			into=${paths[${m[2]}]}
+		elif [[ ${m[2]} == EXPLICIT_PATH ]]; then
+			into=${m[3]}
+		elif [[ ${m[2]} == *_BINARY ]]; then
+			into=/opt/bin
+		elif [[ ${m[3]} == COMPAT32 ]]; then
+			use abi_x86_32 || continue
+			into=/usr/${libdir32}
+		elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then
+			into=/usr/${libdir}
+		else
+			die "No known installation path for ${m[0]}"
+		fi
+		[[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/}
+		[[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/}
+
+		if [[ ${m[2]} =~ _SYMLINK$ ]]; then
+			[[ ${m[4]: -1} == / ]] && m[4]=${m[5]}
+			dosym ${m[4]} ${into}/${m[0]}
+			continue
+		fi
+		[[ ${m[0]} =~ ^libnvidia-ngx.so|^libnvidia-egl-gbm.so ]] &&
+			dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 # soname not in .manifest
+
+		printf -v m[1] %o $((m[1] | 0200)) # 444->644
+		insopts -m${m[1]}
+		insinto ${into}
+		doins ${m[0]}
+	done < .manifest || die
+	insopts -m0644 # reset
+
+	# MODULE:installer non-skipped extras
+	: "$(systemd_get_sleepdir)"
+	exeinto "${_#"${EPREFIX}"}"
+	doexe systemd/system-sleep/nvidia
+	dobin systemd/nvidia-sleep.sh
+	systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend}.service
+
+	dobin nvidia-bug-report.sh
+
+	# MODULE:powerd extras
+	if use amd64; then
+		systemd_dounit systemd/system/nvidia-powerd.service
+
+		insinto /usr/share/dbus-1/system.d
+		doins nvidia-dbus.conf
+	fi
+
+	# symlink non-versioned so nvidia-settings can use it even if misdetected
+	dosym nvidia-application-profiles-${PV}-key-documentation \
+		${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation
+
+	# don't attempt to strip firmware files (silences errors)
+	dostrip -x ${paths[FIRMWARE]}
+
+	# sandbox issues with /dev/nvidiactl (and /dev/char wrt bug #904292)
+	# are widespread and sometime affect revdeps of packages built with
+	# USE=opencl/cuda making it hard to manage in ebuilds (minimal set,
+	# ebuilds should handle manually if need others or addwrite)
+	insinto /etc/sandbox.d
+	newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/char"'
+}
+
+pkg_preinst() {
+	has_version "${CATEGORY}/${PN}[kernel-open]" && NV_HAD_KERNEL_OPEN=
+	has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND=
+
+	use modules || return
+
+	# set video group id based on live system (bug #491414)
+	local g=$(egetent group video | cut -d: -f3)
+	[[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')"
+	sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
+
+	# try to find driver mismatches using temporary supported-gpus.json
+	for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do
+		g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \
+			"${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null)
+		if [[ ${g} ]]; then
+			g=$((${g##*\"}+1))
+			if ver_test -ge ${g}; then
+				NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}"
+				break
+			fi
+		fi
+	done
+	rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
+}
+
+pkg_postinst() {
+	linux-mod-r1_pkg_postinst
+
+	readme.gentoo_print_elog
+
+	if [[ -r /proc/driver/nvidia/version &&
+		$(</proc/driver/nvidia/version) != *"  ${PV}  "* ]]; then
+		ewarn "Currently loaded NVIDIA modules do not match the newly installed"
+		ewarn "libraries and may prevent launching GPU-accelerated applications."
+		if use modules; then
+			ewarn "Easiest way to fix this is normally to reboot. If still run into issues"
+			ewarn "(e.g. API mismatch messages in the \`dmesg\` output), please verify"
+			ewarn "that the running kernel is ${KV_FULL} and that (if used) the"
+			ewarn "initramfs does not include NVIDIA modules (or at least, not old ones)."
+		fi
+	fi
+
+	if [[ $(</proc/cmdline) == *slub_debug=[!-]* ]]; then
+		ewarn "Detected that the current kernel command line is using 'slub_debug=',"
+		ewarn "this may lead to system instability/freezes with this version of"
+		ewarn "${PN}. Bug: https://bugs.gentoo.org/796329"
+	fi
+
+	if [[ -v NV_LEGACY_MASK ]]; then
+		ewarn
+		ewarn "***WARNING***"
+		ewarn
+		ewarn "You are installing a version of ${PN} known not to work"
+		ewarn "with a GPU of the current system. If unwanted, add the mask:"
+		if [[ -d ${EROOT}/etc/portage/package.mask ]]; then
+			ewarn "  echo '${NV_LEGACY_MASK}' > ${EROOT}/etc/portage/package.mask/${PN}"
+		else
+			ewarn "  echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask"
+		fi
+		ewarn "...then downgrade to a legacy[1] branch if possible (not all old versions"
+		ewarn "are available or fully functional, may need to consider nouveau[2])."
+		ewarn "[1] https://www.nvidia.com/object/IO_32667.html"
+		ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau"
+	fi
+
+	if use kernel-open && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then
+		ewarn
+		ewarn "Open source variant of ${PN} was selected, be warned it is experimental"
+		ewarn "and only for modern GPUs (e.g. GTX 1650+). Try to disable if run into issues."
+		ewarn "Please also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html"
+	fi
+
+	if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then
+		elog
+		elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
+		elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. This feature is considered"
+		elog "experimental but is required for wayland."
+		elog
+		elog "If you experience issues, either disable wayland or edit nvidia.conf."
+		elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
+	fi
+}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2024-01-08 21:09 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2024-01-08 21:09 UTC (permalink / raw
  To: gentoo-commits

commit:     0cb6966bc9c75c16bf3a1fb7e36e28ce1e1a453a
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Mon Jan  8 20:50:15 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Mon Jan  8 21:08:06 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0cb6966b

x11-drivers/nvidia-drivers: fix with linux-6.7 and some configs

Looked fine for me but turns out the issue is conditional to kernel
configs and it was not enabling USE_LKCA with mines. Also needed
USE=kernel-open to run into this.

An NVIDIA representative has offered a fix, so may as well use it
this time around.

525 and older branches did not use this function.

Should be harmless for older kernels, but have not really tested
so only applying if >6.7 as a precaution, esp. for stable 535.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../nvidia-drivers-535.43.22-kernel-6.7.patch      | 24 ++++++++++++++++++++++
 .../nvidia-drivers-535.146.02.ebuild               |  3 +++
 .../nvidia-drivers/nvidia-drivers-535.43.22.ebuild |  3 +++
 .../nvidia-drivers-545.29.06-r1.ebuild             |  3 +++
 4 files changed, 33 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-535.43.22-kernel-6.7.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-535.43.22-kernel-6.7.patch
new file mode 100644
index 000000000000..08833de8344a
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-535.43.22-kernel-6.7.patch
@@ -0,0 +1,24 @@
+Typically opt not to patch for kernel support downstream, but in this
+case it's only conditionally broken depending on kernel crypto configs
+and USE=kernel-open, then an (official) NVIDIA representative has
+responded with a fix in [1] which should be safe.
+
+[1] https://github.com/NVIDIA/open-gpu-kernel-modules/issues/574#issuecomment-1809283181
+--- a/kernel/nvidia/libspdm_shash.c
++++ b/kernel/nvidia/libspdm_shash.c
+@@ -89,4 +89,4 @@
+         struct crypto_shash *dst_tfm = dst->tfm;
+-        char *src_ipad = crypto_tfm_ctx_aligned(&src_tfm->base);
+-        char *dst_ipad = crypto_tfm_ctx_aligned(&dst_tfm->base);
++        char *src_ipad = crypto_tfm_ctx_align(&src_tfm->base, crypto_tfm_alg_alignmask(&src_tfm->base) + 1);
++        char *dst_ipad = crypto_tfm_ctx_align(&dst_tfm->base, crypto_tfm_alg_alignmask(&dst_tfm->base) + 1);
+         int ss = crypto_shash_statesize(dst_tfm);
+--- a/kernel-module-source/kernel-open/nvidia/libspdm_shash.c
++++ b/kernel-module-source/kernel-open/nvidia/libspdm_shash.c
+@@ -89,4 +89,4 @@
+         struct crypto_shash *dst_tfm = dst->tfm;
+-        char *src_ipad = crypto_tfm_ctx_aligned(&src_tfm->base);
+-        char *dst_ipad = crypto_tfm_ctx_aligned(&dst_tfm->base);
++        char *src_ipad = crypto_tfm_ctx_align(&src_tfm->base, crypto_tfm_alg_alignmask(&src_tfm->base) + 1);
++        char *dst_ipad = crypto_tfm_ctx_align(&dst_tfm->base, crypto_tfm_alg_alignmask(&dst_tfm->base) + 1);
+         int ss = crypto_shash_statesize(dst_tfm);

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild
index 4e12ff078da1..8bc1465f4494 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild
@@ -137,6 +137,9 @@ src_prepare() {
 
 	default
 
+	kernel_is -ge 6 7 &&
+		eapply "${FILESDIR}"/nvidia-drivers-535.43.22-kernel-6.7.patch
+
 	# prevent detection of incomplete kernel DRM support (bug #603818)
 	sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
 		-i kernel{,-module-source/kernel-open}/conftest.sh || die

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.22.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.22.ebuild
index ae62cbc6f0ea..4932e930c654 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.22.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.22.ebuild
@@ -140,6 +140,9 @@ src_prepare() {
 
 	default
 
+	kernel_is -ge 6 7 &&
+		eapply "${FILESDIR}"/nvidia-drivers-535.43.22-kernel-6.7.patch
+
 	# prevent detection of incomplete kernel DRM support (bug #603818)
 	sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
 		-i kernel{,-module-source/kernel-open}/conftest.sh || die

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild
index bf4959d91524..e74a99ad11e1 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild
@@ -134,6 +134,9 @@ src_prepare() {
 
 	default
 
+	kernel_is -ge 6 7 &&
+		eapply "${FILESDIR}"/nvidia-drivers-535.43.22-kernel-6.7.patch
+
 	# prevent detection of incomplete kernel DRM support (bug #603818)
 	sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
 		-i kernel{,-module-source/kernel-open}/conftest.sh || die


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2024-01-28 16:34 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2024-01-28 16:34 UTC (permalink / raw
  To: gentoo-commits

commit:     8c3f7ffc9f5a88869bc70150eddf8465c8d5c70d
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 28 12:15:42 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Sun Jan 28 16:32:24 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c3f7ffc

x11-drivers/nvidia-drivers: add nvidia-powerd openrc script

Untested given requires specific hardware to even start the daemon
which I do not have. Please report if any issues.

Not worth revbumps, can let it propagate with rebuilds during kernel
upgrades.

Use /var/run rather than /run given nvidia hardcodes path to the pid
file and /run may be incorrect if /var/run is not a symlink. Albeit
with command_background=true openrc is technically the one handling
it (may avoid duplicates, again can't test).

Closes: https://bugs.gentoo.org/923117
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/files/nvidia-powerd.initd          | 11 +++++++++++
 x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05.ebuild   |  1 +
 x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild   |  1 +
 x11-drivers/nvidia-drivers/nvidia-drivers-535.154.05.ebuild   |  1 +
 x11-drivers/nvidia-drivers/nvidia-drivers-535.43.23.ebuild    |  1 +
 x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild |  1 +
 x11-drivers/nvidia-drivers/nvidia-drivers-550.40.07.ebuild    |  1 +
 7 files changed, 17 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-powerd.initd b/x11-drivers/nvidia-drivers/files/nvidia-powerd.initd
new file mode 100644
index 000000000000..5132a20c6539
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-powerd.initd
@@ -0,0 +1,11 @@
+#!/sbin/openrc-run
+# SPDX-License-Identifier: MIT
+
+description="Support for NVIDIA Dynamic Boost (only for use with specific laptops)"
+command="nvidia-powerd"
+command_background=true
+pidfile="/var/run/nvidia-powerd.pid"
+
+depend() {
+	need dbus
+}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05.ebuild
index df13ac50f4b9..88e1b916d113 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05.ebuild
@@ -410,6 +410,7 @@ documentation that is installed alongside this README."
 
 	# MODULE:powerd extras
 	if use amd64; then
+		newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117
 		systemd_dounit systemd/system/nvidia-powerd.service
 
 		insinto /usr/share/dbus-1/system.d

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild
index 5b949b48cd04..4c38e242a855 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild
@@ -417,6 +417,7 @@ documentation that is installed alongside this README."
 
 	# MODULE:powerd extras
 	if use amd64; then
+		newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117
 		systemd_dounit systemd/system/nvidia-powerd.service
 
 		insinto /usr/share/dbus-1/system.d

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.154.05.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-535.154.05.ebuild
index 5b949b48cd04..4c38e242a855 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.154.05.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.154.05.ebuild
@@ -417,6 +417,7 @@ documentation that is installed alongside this README."
 
 	# MODULE:powerd extras
 	if use amd64; then
+		newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117
 		systemd_dounit systemd/system/nvidia-powerd.service
 
 		insinto /usr/share/dbus-1/system.d

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.23.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.23.ebuild
index b13548c43466..5e197cccc108 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.23.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.23.ebuild
@@ -415,6 +415,7 @@ documentation that is installed alongside this README."
 
 	# MODULE:powerd extras
 	if use amd64; then
+		newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117
 		systemd_dounit systemd/system/nvidia-powerd.service
 
 		insinto /usr/share/dbus-1/system.d

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild
index 511984ae0ecd..293bf8b8844d 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild
@@ -405,6 +405,7 @@ documentation that is installed alongside this README."
 
 	# MODULE:powerd extras
 	if use amd64; then
+		newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117
 		systemd_dounit systemd/system/nvidia-powerd.service
 
 		insinto /usr/share/dbus-1/system.d

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.07.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.07.ebuild
index 1446f39fa422..080762dc4185 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.07.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.07.ebuild
@@ -398,6 +398,7 @@ documentation that is installed alongside this README."
 	# MODULE:powerd extras
 	insinto /usr/share/dbus-1/system.d
 	doins nvidia-dbus.conf
+	newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117
 	systemd_dounit systemd/system/nvidia-powerd.service
 
 	# symlink non-versioned so nvidia-settings can use it even if misdetected


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2024-06-26  0:16 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2024-06-26  0:16 UTC (permalink / raw
  To: gentoo-commits

commit:     b2c2e1c15bdfbe8989c058bdafc933aa59422d84
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 26 00:09:03 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Jun 26 00:16:07 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b2c2e1c1

x11-drivers/nvidia-drivers: warn about the GSP default in 555

Looking at NVIDIA's forums, many are hitting regressions with this
and disabling fixes them. Feels unlikely everything will be resolved
before it goes out of beta and gets keyworded (unless default is
reverted), so it may help a few users to warn.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/files/nvidia-555.conf   | 43 ++++++++++++++++++++++
 .../nvidia-drivers/nvidia-drivers-555.52.04.ebuild | 11 +++++-
 2 files changed, 53 insertions(+), 1 deletion(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-555.conf b/x11-drivers/nvidia-drivers/files/nvidia-555.conf
new file mode 100644
index 000000000000..e0c1b09808f8
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-555.conf
@@ -0,0 +1,43 @@
+# NVIDIA drivers options
+# See /usr/share/doc/nvidia-drivers-*/README.txt* for more information.
+
+# nvidia-drivers and nouveau cannot be used at same time.
+# Comment out the following line if you wish to allow nouveau.
+blacklist nouveau
+
+# Kernel Mode Setting (notably needed for fbdev and wayland).
+# Enabling may possibly cause issues with SLI and Reverse PRIME.
+#options nvidia-drm modeset=1
+
+# Enable experimental framebuffer console support (^ requires modeset=1).
+# Replaces efifb or similar once loaded. Note that unloading nvidia modules
+# to, e.g. load a new version, would result in losing console display
+# (emphasis on being experimental, mode switch could cause issues with X).
+#options nvidia-drm fbdev=1
+
+# Disable use of the GSP firmware which has newly been enabled by default
+# for GPUs that support it (Turing/Ampere+ GPUs, aka GTX 1650+). Not
+# recommended unless experience regressions for which disabling helps.
+# Cannot be disabled if using USE="kernel-open".
+#options nvidia NVreg_EnableGpuFirmware=0
+
+# Suspend options. Allocations=0 recommended over =1 unless enable nvidia's
+# systemd sleep services (nvidia-hibernate, nvidia-resume, nvidia-suspend).
+options nvidia \
+	NVreg_PreserveVideoMemoryAllocations=0 \
+	NVreg_TemporaryFilePath=/var/tmp
+
+# !!! Security Warning !!!
+# Do not change the DeviceFile options unless you know what you are doing.
+# Only add trusted users to the 'video' group, these users may be able to
+# crash, compromise, or irreparably damage the machine.
+options nvidia \
+	NVreg_DeviceFileGID=@VIDEOGID@ \
+	NVreg_DeviceFileMode=432 \
+	NVreg_DeviceFileUID=0 \
+	NVreg_ModifyDeviceFiles=1
+
+# Should be no need to touch anything below.
+alias char-major-195 nvidia
+alias /dev/nvidiactl char-major-195
+remove nvidia modprobe -r --ignore-remove nvidia-drm nvidia-modeset nvidia-uvm nvidia

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-555.52.04.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-555.52.04.ebuild
index bd5205a9ad26..3d3eb15c1661 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-555.52.04.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-555.52.04.ebuild
@@ -146,7 +146,7 @@ src_prepare() {
 	use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die
 
 	# enable nvidia-drm.modeset=1 by default with USE=wayland
-	cp "${FILESDIR}"/nvidia-545.conf "${T}"/nvidia.conf || die
+	cp "${FILESDIR}"/nvidia-555.conf "${T}"/nvidia.conf || die
 	use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die
 
 	# makefile attempts to install wayland library even if not built
@@ -499,4 +499,13 @@ pkg_postinst() {
 		elog "If you experience issues, either disable wayland or edit nvidia.conf."
 		elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
 	fi
+
+	if use !kernel-open && [[ ${REPLACING_VERSIONS##* } ]] &&
+		ver_test ${REPLACING_VERSIONS##* } -lt 555
+	then
+		elog
+		elog "If using a Turing/Ampere+ GPU (aka GTX 1650+), note that >=nvidia-drivers-555"
+		elog "enables the use of the GSP firmware by default. *If* experience regressions,"
+		elog "please see '${EROOT}/etc/modprobe.d/nvidia.conf' to optionally disable."
+	fi
 }


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2024-09-18 22:43 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2024-09-18 22:43 UTC (permalink / raw
  To: gentoo-commits

commit:     86de42c9fddf3c7a693b77d3662a2677d2b402f3
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 18 22:16:48 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Sep 18 22:42:35 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=86de42c9

x11-drivers/nvidia-drivers: add fbdev_ttm detection for kernel 6.11

See patch comment.

"If" it does what I think it does, do not believe it is worth a
revbump but should still patched before wider use of 6.11.x. Will
either way be propagated when users rebuild modules for upcoming
6.11.1.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 ...idia-drivers-550.107.02-kernel-6.11-fbdev.patch | 134 +++++++++++++++++++++
 .../nvidia-drivers-550.107.02-r1.ebuild            |   1 +
 .../nvidia-drivers-550.40.71-r1.ebuild             |   1 +
 .../nvidia-drivers-560.35.03-r1.ebuild             |   1 +
 4 files changed, 137 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-550.107.02-kernel-6.11-fbdev.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-550.107.02-kernel-6.11-fbdev.patch
new file mode 100644
index 000000000000..01f7e2aa1660
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-550.107.02-kernel-6.11-fbdev.patch
@@ -0,0 +1,134 @@
+At a glance this should(?) only be affecting fbdev=1 (default-off and
+marked experimental in nvidia.conf). Compiles fine either way given
+the test would've failed resulting in usage being skipped.
+
+NVIDIA is already aware[1] and this should be unnecessary next bumps.
+[1] https://github.com/NVIDIA/open-gpu-kernel-modules/pull/692
+--- a/kernel/conftest.sh
++++ b/kernel/conftest.sh
+@@ -6612,2 +6612,21 @@
+ 
++        drm_fbdev_ttm_setup)
++            #
++            # Determine whether drm_fbdev_ttm_setup is present.
++            #
++            # Added by commit 9060d7f49376 ("drm/fb-helper: Finish the
++            # generic fbdev emulation") in v4.19.
++            #
++            CODE="
++            #include <drm/drm_fb_helper.h>
++            #if defined(NV_DRM_DRM_FBDEV_TTM_H_PRESENT)
++            #include <drm/drm_fbdev_ttm.h>
++            #endif
++            void conftest_drm_fbdev_ttm_setup(void) {
++                drm_fbdev_ttm_setup();
++            }"
++
++            compile_check_conftest "$CODE" "NV_DRM_FBDEV_TTM_SETUP_PRESENT" "" "functions"
++        ;;
++
+         drm_aperture_remove_conflicting_pci_framebuffers)
+--- a/kernel/header-presence-tests.mk
++++ b/kernel/header-presence-tests.mk
+@@ -17,2 +17,3 @@
+   drm/drm_fbdev_generic.h \
++  drm/drm_fbdev_ttm.h \
+   drm/drm_framebuffer.h \
+--- a/kernel/nvidia-drm/nvidia-drm-drv.c
++++ b/kernel/nvidia-drm/nvidia-drm-drv.c
+@@ -75,2 +75,6 @@
+ 
++#if defined(NV_DRM_DRM_FBDEV_TTM_H_PRESENT)
++#include <drm/drm_fbdev_ttm.h>
++#endif
++
+ #include <linux/pci.h>
+@@ -1853,3 +1857,7 @@
+         }
++#if defined(NV_DRM_FBDEV_TTM_AVAILABLE)
++        drm_fbdev_ttm_setup(dev, 32);
++#else
+         drm_fbdev_generic_setup(dev, 32);
++#endif
+     }
+--- a/kernel/nvidia-drm/nvidia-drm-os-interface.h
++++ b/kernel/nvidia-drm/nvidia-drm-os-interface.h
+@@ -60,4 +60,7 @@
+ 
+-#if defined(NV_DRM_FBDEV_GENERIC_SETUP_PRESENT) && defined(NV_DRM_APERTURE_REMOVE_CONFLICTING_PCI_FRAMEBUFFERS_PRESENT)
++#if (defined(NV_DRM_FBDEV_GENERIC_SETUP_PRESENT) || defined(NV_DRM_FBDEV_TTM_SETUP_PRESENT)) && defined(NV_DRM_APERTURE_REMOVE_CONFLICTING_PCI_FRAMEBUFFERS_PRESENT)
+ #define NV_DRM_FBDEV_GENERIC_AVAILABLE
++#if defined(NV_DRM_FBDEV_TTM_SETUP_PRESENT)
++#define NV_DRM_FBDEV_TTM_AVAILABLE
++#endif
+ #endif
+--- a/kernel/nvidia-drm/nvidia-drm-sources.mk
++++ b/kernel/nvidia-drm/nvidia-drm-sources.mk
+@@ -69,2 +69,3 @@
+ NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_fbdev_generic_setup
++NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_fbdev_ttm_setup
+ NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_connector_attach_hdr_output_metadata_property
+--- a/kernel-module-source/kernel-open/conftest.sh
++++ b/kernel-module-source/kernel-open/conftest.sh
+@@ -6612,2 +6612,21 @@
+ 
++        drm_fbdev_ttm_setup)
++            #
++            # Determine whether drm_fbdev_ttm_setup is present.
++            #
++            # Added by commit 9060d7f49376 ("drm/fb-helper: Finish the
++            # generic fbdev emulation") in v4.19.
++            #
++            CODE="
++            #include <drm/drm_fb_helper.h>
++            #if defined(NV_DRM_DRM_FBDEV_TTM_H_PRESENT)
++            #include <drm/drm_fbdev_ttm.h>
++            #endif
++            void conftest_drm_fbdev_ttm_setup(void) {
++                drm_fbdev_ttm_setup();
++            }"
++
++            compile_check_conftest "$CODE" "NV_DRM_FBDEV_TTM_SETUP_PRESENT" "" "functions"
++        ;;
++
+         drm_aperture_remove_conflicting_pci_framebuffers)
+--- a/kernel-module-source/kernel-open/header-presence-tests.mk
++++ b/kernel-module-source/kernel-open/header-presence-tests.mk
+@@ -17,2 +17,3 @@
+   drm/drm_fbdev_generic.h \
++  drm/drm_fbdev_ttm.h \
+   drm/drm_framebuffer.h \
+--- a/kernel-module-source/kernel-open/nvidia-drm/nvidia-drm-drv.c
++++ b/kernel-module-source/kernel-open/nvidia-drm/nvidia-drm-drv.c
+@@ -75,2 +75,6 @@
+ 
++#if defined(NV_DRM_DRM_FBDEV_TTM_H_PRESENT)
++#include <drm/drm_fbdev_ttm.h>
++#endif
++
+ #include <linux/pci.h>
+@@ -1853,3 +1857,7 @@
+         }
++#if defined(NV_DRM_FBDEV_TTM_AVAILABLE)
++        drm_fbdev_ttm_setup(dev, 32);
++#else
+         drm_fbdev_generic_setup(dev, 32);
++#endif
+     }
+--- a/kernel-module-source/kernel-open/nvidia-drm/nvidia-drm-os-interface.h
++++ b/kernel-module-source/kernel-open/nvidia-drm/nvidia-drm-os-interface.h
+@@ -60,4 +60,7 @@
+ 
+-#if defined(NV_DRM_FBDEV_GENERIC_SETUP_PRESENT) && defined(NV_DRM_APERTURE_REMOVE_CONFLICTING_PCI_FRAMEBUFFERS_PRESENT)
++#if (defined(NV_DRM_FBDEV_GENERIC_SETUP_PRESENT) || defined(NV_DRM_FBDEV_TTM_SETUP_PRESENT)) && defined(NV_DRM_APERTURE_REMOVE_CONFLICTING_PCI_FRAMEBUFFERS_PRESENT)
+ #define NV_DRM_FBDEV_GENERIC_AVAILABLE
++#if defined(NV_DRM_FBDEV_TTM_SETUP_PRESENT)
++#define NV_DRM_FBDEV_TTM_AVAILABLE
++#endif
+ #endif
+--- a/kernel-module-source/kernel-open/nvidia-drm/nvidia-drm-sources.mk
++++ b/kernel-module-source/kernel-open/nvidia-drm/nvidia-drm-sources.mk
+@@ -69,2 +69,3 @@
+ NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_fbdev_generic_setup
++NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_fbdev_ttm_setup
+ NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_connector_attach_hdr_output_metadata_property

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-550.107.02-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-550.107.02-r1.ebuild
index 17ddc58a0cfc..c0427557f1a5 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-550.107.02-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-550.107.02-r1.ebuild
@@ -90,6 +90,7 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 PATCHES=(
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch
+	"${FILESDIR}"/nvidia-drivers-550.107.02-kernel-6.11-fbdev.patch
 )
 
 pkg_setup() {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.71-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.71-r1.ebuild
index ce8321ba3ab2..abee29c518c4 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.71-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.71-r1.ebuild
@@ -91,6 +91,7 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 PATCHES=(
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch
+	"${FILESDIR}"/nvidia-drivers-550.107.02-kernel-6.11-fbdev.patch
 )
 
 pkg_setup() {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-560.35.03-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-560.35.03-r1.ebuild
index bfa3b9e55501..ac755f870b2e 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-560.35.03-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-560.35.03-r1.ebuild
@@ -93,6 +93,7 @@ QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
 PATCHES=(
 	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
 	"${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch
+	"${FILESDIR}"/nvidia-drivers-550.107.02-kernel-6.11-fbdev.patch
 )
 
 pkg_setup() {


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2024-10-23 20:25 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2024-10-23 20:25 UTC (permalink / raw
  To: gentoo-commits

commit:     7a48d3dd0e2bd00466e892e3cd68125cc52d182d
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 23 20:10:59 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Oct 23 20:24:44 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a48d3dd

x11-drivers/nvidia-drivers: drop vuln 525.147.05-r1, 560.35.03-r1

Both branch are unsupported and so did not get security updates.
560 had short support due to being a New Feature Branch (NFB).

Users of ~testing 560.35.03-r1 are expected to downgrade to the
(newer) 550.127.05 version which is the next stable candidate if
no problems.

If for one reason or another the 550 branch was problematic for a user,
they may optionally want to opt-in the ~565.57.01 beta instead which is
not vulnerable (we do not keyword betas, see bug #941991 comment #1 --
but it can be manually accepted).

Users of 525.x are on their own, if *really* need that version and
cannot upgrade due to regressions then will have to keep it in a local
overlay. Alternatively the still supported 470.x may still be usable.

(there are still other vulnerable versions to drop but these are
awaiting stabilizations)

Bug: https://bugs.gentoo.org/942031
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/Manifest                |  16 -
 .../nvidia-drivers-470.223.02-gpl-pfn_valid.patch  |  62 ---
 ...ia-drivers-525.116.04-clang-unused-option.patch |  17 -
 .../files/nvidia-drivers-525.147.05-gcc14.patch    |  32 --
 .../nvidia-drivers-525.147.05-r1.ebuild            | 585 --------------------
 .../nvidia-drivers-560.35.03-r1.ebuild             | 592 ---------------------
 6 files changed, 1304 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index 5b1c6c0c4f42..d2cf62eb78a6 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -1,71 +1,55 @@
-DIST NVIDIA-Linux-aarch64-525.147.05.run 262738232 BLAKE2B 742feded05f659fa9965b2eebcc6a269b0355d08b6f2a686dad47c1acf2c20a359f9a9c33184ab2d51044b8823535bd7606180e31d348f362a016fad74cf476b SHA512 d1d9e49e16ee6cc69340a3458566f89fee7b63effdd8cae3e55e40cdfbd35d1e87b958769fd3b2ce5ab29596d88c3ac68189232d7a1dad8c16773faedcf5b568
 DIST NVIDIA-Linux-aarch64-535.183.01.run 269908911 BLAKE2B 93665bfd2c66391b232c0db7faa2b7929048f4eb0ac660726bc45fcee21bcf9b255da5f4fbdc14c281092f31e7603b5b112fc42b3c7d6e4769cdbedf8d0f16b0 SHA512 d2ac1be8c19b359023c31941374911f3adfe1be34aa2821ef582df4c854ac4eefbbcb10aa22583ac8c9d5caf9326bda12ed1ce6343d67479ed37a4887bd17b5e
 DIST NVIDIA-Linux-aarch64-535.216.01.run 269827921 BLAKE2B 37e76e90411e883d0f911edc1a3883fba9db6a5e281e5bba265fab6b892382b202aa0ffb44a0d3b4a181c6855e2b9ffe54874049f331fea50a3429d8c2b298af SHA512 f68794249bf18ba626c6a665880721c8cc0dada6c7c1d8b15bf17174a4cac35ca2ab534fff2410c8bc0326c48f6ab913b6d9a92630505eeb768e02610a7772d9
 DIST NVIDIA-Linux-aarch64-550.120.run 236346287 BLAKE2B 2c700eea6e46ab1580d2ae1fb411e99601e6f9cce46727ab3c44f9ef59ca2102e83ff846bdc0280fa99c84eec9aa456654475339c79a4e0ef374061281da6f00 SHA512 716cef3377855bdc1a0a79a35cee578ca9e34f71709436244534b9a164fbae220ac64163a81d1d8fb6264430c8c7e6b8ba2e4e02059cff83bb54f35da01fe7da
 DIST NVIDIA-Linux-aarch64-550.127.05.run 236320537 BLAKE2B 1b1af668a377db355ea98eee180919728396a6f149270d285f12d85b4c95ccdbdf6f39409e26a4d014a709c4cb6058106206a3dd9c7563c6bd8796ffcaedbbb2 SHA512 59bb8cd1efad8ff213b1409aa7f7739775560df8456d2c2fc672596509e54a1cb12f11ba00fdc19a4f16bef871fa14c9245738201f4665627b5bd94f13ee4ced
-DIST NVIDIA-Linux-aarch64-560.35.03.run 251160249 BLAKE2B 3ad8c6757b980668f6483d8867f247857519636a3ea464107e90620557ecdbbfc3437cadb7916655b14e6a85e5929db1f03387494df7daa9169d8fe6b2de1849 SHA512 8df331104f3d63d4aaeeace412a986a93355be3ce69a968fbc12b7d0b21a34e71cdf37758c23a392c358a1c3ba1da21115002f55017c2a829c7bb4d41536e543
 DIST NVIDIA-Linux-aarch64-565.57.01.run 254149070 BLAKE2B 0f4db5ac8baf10df4720e7f7a993e76f3c6e9b37b8d81854a9d2590432c73dc3a7550a5928a9691d2064227ce6fdf71e91b3050c5f22d6cca43173388da470a6 SHA512 16dfec7e3fdce18a0a3dc0460bae155eb61b05f27669cca8e7327bfd2400c5b02a4fd74d09d6a07096658cf50353c96f5547941379dfc2e8d1059c80a1613c6f
 DIST NVIDIA-Linux-x86-390.157.run 49417041 BLAKE2B 435b5e0e60468cc74b41cc5d9b5bb0105d29c11a2d408457835212a96519c9334ecf19278b36749d3ff7f498f5b0ae45a2efae2d428703dac21245c62f1efebe SHA512 dae9ac2c12f9ad90f7441e00e01a984147c577892421911d7f67f6a31e616ac1cb7d434bc9c7f58fbd9b8ae909521b5bece607a63c79588c0bb9d99c6bad5fb0
 DIST NVIDIA-Linux-x86_64-390.157.run 85835541 BLAKE2B 44b855cd11f3b2f231f9fb90492ae2e67a67ea3ea83c413e7c90956d38c9730a8bd0321281ae03c6afce633d102f5b499aed25622b9bfd31bdd2c98f0717e95b SHA512 4780503a4cff0180b1b1f37d20a6ba3438dd78b51fa7f69b98d35521835e5d61099129746929d51d63afa2d47b672b3e145e1e1897584dc3799e7f822c5b3a0a
 DIST NVIDIA-Linux-x86_64-470.256.02.run 272850014 BLAKE2B 0fdc867f92b82b2a60810c3b43751cad7ac2c39928c92c6c343c0c6044f4d7d923d93b8599db3f7c999c0ee7d16940e65d991a61cbb30e1d9e49c5639ac6bdc8 SHA512 a837946dd24d7945c1962a695f1f31965f3ceb6927f52cd08fd51b8db138b7a888bbeab69243f5c8468a7bd7ccd47f5dbdb48a1ca81264866c1ebb7d88628f88
-DIST NVIDIA-Linux-x86_64-525.147.05.run 414135234 BLAKE2B 77a12905771772804a5e5cf36df3e5032fe0160ac7c8a1b4ea002f65dac3732d9c900c1787a3e26d08b951a8de4893467cc7a80d424e017990d12669354d4191 SHA512 0c7b31715fce6a7bd77a2d9f9a3dca54a929a7790d748051576f62cdaeaeb6a9d0f3fbb13f0b20a51966bdb9470acdbc9ee529a9e84f38a9c834a1bd28d81773
 DIST NVIDIA-Linux-x86_64-535.183.01.run 341725273 BLAKE2B a1cc782a960309a25d64d7334a818bdf9bd24be4ae7bbcf76c11c071db614d00c59e4cdca366bd36565a612a262d8b4ede7d8224f6cd3d824128178ad7d2d707 SHA512 02b6b679f4fc1d5305f32fca8ce0875eef04cb99f5611d0bb85ac7607ecdd5b2aa4d60b51bf47546477464531a07fffa5bf3db3859868648bd5e86565d85afbb
 DIST NVIDIA-Linux-x86_64-535.216.01.run 341874992 BLAKE2B 65fc3674982ecbf122f565af70121ca6c022a4df8f352e259e6b0e8892b9112b182c32ed615edae737f3354808e37b54051bed0cdd2f661c4082692f9e0477dd SHA512 3b4ae3584368fcc5f81a680dd8588d8b9e48f43dafe2490f5414ed258fa8c9799ebd40d2fd115e20bd02648eeb3e5c6dff39562d89353580fa679d011cebf6f8
 DIST NVIDIA-Linux-x86_64-550.120.run 307064664 BLAKE2B 657e69e2fb7c32c47e52a7bd5469158f9f5431cdf65f9ac5b660b8f4ae3511914a1efa837d4a81bb8dd63d09735a315a6b297023e6417d849f764c9a8dc0d88f SHA512 1d7c91755faacb5accdb33314b638f9749115a1ece6150e39cfe1c07d2ada022de20992c500e96d785b3813962b6214bffbe94ed6bf58a539c48d2526b534507
 DIST NVIDIA-Linux-x86_64-550.127.05.run 307139930 BLAKE2B 6c6bfbc4383a3a9b61e73a4bc54062d29f6cc48b209263f772bca64301f04a2f692a55f6f493762a0770d88873f8231e29c6b73d3d68263624c7daf304008afe SHA512 b67364c0911aa4908192846ed855571312c9e29c47cae8c83300caf71a9c8c7277f2a0591f0c0dd669f34464e04cf420a16ec83f5db4875a32c00a678db80d06
 DIST NVIDIA-Linux-x86_64-550.40.76.run 312316341 BLAKE2B 5b6d5c69fa06729d56d7660d7da100ad2017b84fce0c8f8c894f433c326697e92ba67f4d0f28232da61b36b528dd064145bec7d15db744036fd649cb3d839a7e SHA512 6b19b72d146829587145403a51b5277f838691098b72d2f086fca642735a2108809fc4768848bb0e1bcca1621c31a3ea35bc5fabc469ad6ccf447dca7095f47c
-DIST NVIDIA-Linux-x86_64-560.35.03.run 322523941 BLAKE2B e84819e6c6b75dbe75212b695ee1e7793c16091b1861250b406cdf570a8cae2a8114627f64bdefc8538f12dd6da8d80d3d62d41deeb7211cfaf159f853feba08 SHA512 97137160b64928ff84fd6145a0ebc209c045d6a07ccc53ec6df6ba1fda2ad72038eda7ecdc0a0178a2628aa4e18819a9b3ff3b693b22bdc9de543be0a968f8aa
 DIST NVIDIA-Linux-x86_64-565.57.01.run 339273984 BLAKE2B 57345e9e95eae6a7ac948e68cfa7d464f8d1d3699e2012fd9381b5b1ceb62db958bcef494d972778aa24e4ca74dce88aeddf96d015e46b1f4d15fb4ae00f9849 SHA512 8f5c0f06e13cf84042c9ad1d628ef3fd5aaffb116f1716b099e6ededb125e973a4a2c511bb6201e3a39d7710b2850c3418bdbeac792036b7524c5a5fc8746f52
-DIST NVIDIA-kernel-module-source-525.147.05.tar.xz 10140684 BLAKE2B a8ce7c1d1047be9154fd67366c5bfa13a19f03c883f24ee35043d17d517e83303420449750f9e7adc7142f61564dd5d8e5a19884dbe540514979df6381ff7f1f SHA512 58920b26081a68e05178176edb0ce8ac4a5d365492adf51d6ffe57102385ff08abc5e14741e0500419e62a752441c97051d60939245eea64b039cc7efca15b7d
 DIST NVIDIA-kernel-module-source-535.183.01.tar.xz 12521824 BLAKE2B 5ae8c2c0d9d019b99c947f1581712989325815cfe88ee308df0b710b64c4bc5c501c9741c67e25c47eaf7a114c521a595aabc85d0f05854c0692216f320378c4 SHA512 1c255eeafc79d228b3d76d1d20d1a2dc4583cbbb77db6af48b389694b0daaabd7c1962cf73e1a489e0ab07cf57751770ff8ce5f2489f2489a211e39bd7436637
 DIST NVIDIA-kernel-module-source-535.216.01.tar.xz 12517044 BLAKE2B f305acd878b6a8e715607d1ef330b6f60492f9291183a139520b011fe77d344556708df811eabd5f47d1e509d2ce179e243eecee8629dc480ca5a1ac4ca57529 SHA512 b5127fe5c29c476decea81f4c9916d2670a048f3e65ef898b1055fa1aa87c0936415c33fb271bc30d03f28fa9d3a5c2247e5f3ac67e12f93454e3da2706ff9a5
 DIST NVIDIA-kernel-module-source-550.120.tar.xz 13511404 BLAKE2B dc95ce1309d90672e6eb4368b087615c21bee537c37c4d662267746bc2996c158dec8f7a3f54926ba66f8ff23a5e1e039d93dda752c54b68ef1f203e4a19c3de SHA512 103cb90beccf143920d9eedcaf58a89bd06e780171156c311756b035e89bddc5c0267e32b6af2d40753cd5877d0afae1060e50c55fd0334c5da7cf3f0b32f4b6
 DIST NVIDIA-kernel-module-source-550.127.05.tar.xz 13539504 BLAKE2B e36ab61687cf915008baa902a1295c7ae89b26b039269939b532873fb2c608eb380edf76eda2173e2801239e218357b5077886e9beb02e601a82991bc2882e59 SHA512 5d0d618528073d48d279dd47e0f6a1b3233fe5ed587c46b4246ae90cd43be08e5ad025cd4cc07b6fc2d1c51f04f9c1900511cd3812cabcedf0ab4743e6991aca
-DIST NVIDIA-kernel-module-source-560.35.03.tar.xz 15023144 BLAKE2B d56ea634dd76c3031372e4be283f0348d95e87d088025aaf59ed342a550144f3a8cda22b4c56db4cc2a4c2eb5ef2563251b1aeba75c2a35bad7a4a24c2f5e4d9 SHA512 eec3263d09cc809afc4c2c9eed6e0ec1bd2fed71d43f96d2f56c5b507aead96d93c6de93d37b649fc97f1d849aed64942afeae6e0c2be399d39b1ee416c6b863
 DIST NVIDIA-kernel-module-source-565.57.01.tar.xz 15376792 BLAKE2B 5cdc43c250109fd58be1d16e5014fd1e69ec0616fbe04f992ed113c36abef493acfccfc6c082aba8e973bd65b116ccb4bad15d5876bccebde96e1c07d02df351 SHA512 bcc17bb5b7f04bcdc89ed471bc41904d832fb780e0a0ce9995b91a6e83e0132501b404a79e6742d827711bb6849dae026b5237098185a4e11b558f4815b325d4
 DIST nvidia-installer-390.157.tar.bz2 150323 BLAKE2B 8058ca87a6dea956d564af9f7eab9b1fc82b1f2382bd5cb2f6d97cbe2e19292533522d5f8f2eacbeb16520372715fcb72f8f9b0998962af5d4e75522c8d74524 SHA512 93a7ece648602157496c8e27a88864ede341a100f5328a4c1a25faf8f0b94d252060e5e2f71d0c302fd0566c10773c30b76b3b5f431d8039b71c90a7969f7d7e
 DIST nvidia-installer-470.256.02.tar.bz2 146269 BLAKE2B 4402e725c8fd0157eb84d4ec140a33f97e873014577487ef1e32fb8921cabe79c60ff46532e5bfaabb2b6ac894f7c80086dbab19e61906e2e27346fb85f98829 SHA512 c962dc17d9696256d1ebedcaeb3010994f2ce3895aedc47987599ebfec132a9b9a249d2ece6502b15bd4a93f9b0106aa13487a7da5f64199c274ce11eba27cfd
-DIST nvidia-installer-525.147.05.tar.bz2 147986 BLAKE2B 982e1a95bc255b960913cba1e78675845db472534af6cae054c74ebf82b1e4407211166249b164299f0f81ec643b7c1190e5960ac3c7844322ca42c23dc0a90a SHA512 171f9c235b2bf41dc40a875576e8cad0f4c78ba574e72db3f1ff3644701f327916121ae493cea1aed93f4826d96ef1833e98502d2d4272f4f536bab03f20e5cb
 DIST nvidia-installer-535.183.01.tar.bz2 148412 BLAKE2B 6eff47169ab5b2b4bfec5917bccc0102502aade2ccf523a404e50c8925e407e225d8009ac79ddfc38a1c6b7de361740d60a0896c2e31756e0f2392b77ad44490 SHA512 76e9bdb4b94bcb103710552a1cb64ca5df0765e3248e2723a88bf70277ef52fd5b7074f7a9cf58b9f3a33af9c04b0cb848748e97ba19f02e96a4eaf081b153bb
 DIST nvidia-installer-535.216.01.tar.bz2 148531 BLAKE2B 1b112ba9532fab9754e8f278c5e7ee9e9f6c064caec568de678f1baa966c992f8e8e6a9711d69586d58688aa8ffd76a80c37aaaac57230284e76a9d6e52b766f SHA512 7362ad1ba364505afde6ef72b4aeeaeb38b3ab11d331daba1d000efb0e3645a8b3e987bfac30579c25293a8b7e269b388701b63c1019ea9705928016e888f8c7
 DIST nvidia-installer-550.120.tar.bz2 155781 BLAKE2B 22846a5625bf19550c4f94996e8df5b8c30455f0a9e434069b7318a3d4e7bdd10cb6cdfdbcabecb5014a96bfd46e2267b29f79242ff3e486f1a570190c885570 SHA512 c4b64d88da9a953b574f2de0963f69aea6441f1e3cbea80a151689b03c10d57e65dbc9780c48735b813a0a45131c8a7181fe468b8fe7a9df4bdbbdc34e68ae29
 DIST nvidia-installer-550.127.05.tar.bz2 155613 BLAKE2B 6731d9d70b436202d1c92c026cef46bf03ed025b3032583b27e5eeb98440285516b6a097fe41a18ffb44a63260c4450db2fe419c758ded4f9e90a30cf95cd27a SHA512 e0a271365df8a4f1c0ff7116b5353ec407d305d1783a9834b0cbaa935e75d3b3960ef595c9ef24ad6c8b936fcff5dd43fcace102a0fb0e2cd7d844ada6c44aaa
-DIST nvidia-installer-560.35.03.tar.bz2 168904 BLAKE2B 81a1e4070cc36688c8a2e768c304cad4d680f56757addf137c0544aed93345a4587a65e8df5212f1853e1d4f5a882c457866818157f303148603d50a7152f21d SHA512 685cec94e01a0a0282bd013896a1a05d1a061226863431d39bafd31d78a3224879eceed24da5da65f2a6757faef40b999aad624cdbc86de53674d7595b4c763a
 DIST nvidia-installer-565.57.01.tar.bz2 168523 BLAKE2B 0adccf0b5816e67ad77281d8e6db2afd2ffaef8e488de21a1f209e73bdc4b5271c173abb863aace1e5e38a1137075280a34a8db7163eb0ff59ef24dc35aa7763 SHA512 e82ca3d80c6a131c0b8de1763aef1ada1b96700dae1d438e6262e2c46e98973f591215bf09f4c5fe2f4926d3ad46af6c6bd6b5358bc10851305edf4c44c95e37
 DIST nvidia-modprobe-390.157.tar.bz2 35306 BLAKE2B 80d202b39c2f95ec0f909712c2e101483af50124092c32efb33bd98ff58ddfb97b737ff07f1ddc941f688c1b4c26a15f392566d522e18506771f10422fcd571c SHA512 109bbe24a3758b568ea65fe1e9d78f69fae6108ec0497b796c885a3912825fe04ffd7389a3e22987f1a10a2926bf6eaa384faabc59478aa3ee244dd3ac91c6d3
 DIST nvidia-modprobe-470.256.02.tar.bz2 38769 BLAKE2B 0db444b09b0b6d24c04877fae95249e781d82b3141f90eb05d869b64d2b6e65ad00bf44c4e427c64dbd4765fa99a8699f80a1d95b00c66137a54dc878d7ea298 SHA512 c1cbfa6c8e188e5a5eb5d390b9a903406cbff103d212fc30e611e4023be3fde896ad84e8bb45b030beb5d1bcd8155c9e55a8f9636c45ce1e2a5c03f672989a31
-DIST nvidia-modprobe-525.147.05.tar.bz2 40439 BLAKE2B 3029d39cce928b3f6a6baeb57391ddd412a35e36d880b3036dedf083b6df979ec531360421bdd347aa223821006ae3610b115277804c22614a221258944ea37f SHA512 25939b278bd2354ff787f1d10771d19baa6c691c5243bc647a556e40c4f38c16f6a248b2ce0b4a328d80b768147a188cb2d8b54e39fbfa4cf436d1f3b1b6440f
 DIST nvidia-modprobe-535.183.01.tar.bz2 40623 BLAKE2B 52c6f6758b6881ef61a41a7e245c166a2ab60ac372c031b5211651931f72cbc24af54b3b2ffb9a42b2f0973db7e0ae6d189cbd3cf1e0fbec8628056e4235b873 SHA512 93b802dbdc98bebed89ca72d07401e1b0801504899f30bbac4baac3d3a24bf548f78bcc0418db112299b068e1e278b379d301680cf4b13784206a80a9169c986
 DIST nvidia-modprobe-535.216.01.tar.bz2 40657 BLAKE2B 7852ffd82321a68b6ee3d66e19f3fa5b4a71da264d7c75d1ede325d6ef90219bdecde8d4681537e0ae50a2caf4d746e0b6a192ee8ad38e371dc651c323fa2105 SHA512 dd41512568c55c58c4ad3a775819fcd2a7dc71fbb95dd13e7462d1599950f92b3207980605b443ef988a46334415c0eb18c7f39ed986b8d4108e19a557b6ebf0
 DIST nvidia-modprobe-550.120.tar.bz2 41490 BLAKE2B 0d2d12d533bf911aeabd5147bad7f2db24a936637cff3d974a1f92e4911810a6a42b8b415c3db4a462af459b2e7580949b6f569dd4adbc686a45dbd6527b1be8 SHA512 12d75920131350b631856b495ed5fe0bf2b8f58b4adce8088abf9128691829fb903c8ad84c0ced7d14c5cff1dc7fb3f7bbe99f41e1d36f959b24c14e3ea5619a
 DIST nvidia-modprobe-550.127.05.tar.bz2 41498 BLAKE2B 387945fe05f244350ec2982b6a723ba34ed8c726865ed95c2a33702233db3eb6e1937673f3eee72632bb0db6de6cc6c0dbc07abe909491187e8da6ebd2582840 SHA512 c229d3018589d9f52f17baa4d8eee966a198051058019f577d0455b67d0189c586b8ed64273859e4cf7d4a37cd6f6fb21aa53a8e2fe4cd926de34106e87bae6a
-DIST nvidia-modprobe-560.35.03.tar.bz2 41637 BLAKE2B 4a72161e3569af5b53a6372da51d6980ab6a428207db0ef2c20b87a9abe569a136ece0a332954004e24f4381889826e50fce42c0c362c749adcb0152035e8862 SHA512 ed592cfba5512fde34e1d9b3dfcf3463df447202eb99d1d792f87d0a68c73193d141f82835e9272d315f3de9e973e7d9f64b06a9cb1e6485dd7adce3e9c360f0
 DIST nvidia-modprobe-565.57.01.tar.bz2 41607 BLAKE2B e0c7c817daceecd09d10b4b7d2581e4404ec67a7c3277de5b5972ca32e6ac254303d14b621bc7d3ec5dc92655ec0dc098eb73548a0e1eb3cb4018b79c8949570 SHA512 b42012ca700a3b9070be7362aa1a855c31907dd89d4eb21404c11459244a28c4276a4e11553944a7a74cce2d14452406686e2a703c326d88f82483375b1cade1
 DIST nvidia-persistenced-390.157.tar.bz2 48654 BLAKE2B 2cf6c92da90acff55e8c180a06b0c6a29d48be9fd8ca3c541202fd14f0697220fba6b66452942aa7ae7cc8821f5c5eb9fa8f7a31d2248624e5f9141d83a176b8 SHA512 70f0707ed6f2b877e69ef90cf782f66cbc9d2071db53ca09ceb7b89427b0fe176708517340621fa251539b7d481b238adeeb60261674eed74de1f62db6dbb72e
 DIST nvidia-persistenced-470.256.02.tar.bz2 46567 BLAKE2B 8f837322a3b88412fd2f6acf38721b49a6cb444fbd842d652519e5596f2e545d8f06bbdf017f46a22301ce87455f96147fab2829ca5fbf26131ec3e4a772e282 SHA512 4fd19258649b7d39945fb5c8578bf11ab118617dd14f3d11cdf15cb3fe77daf7b4719e4ae57af59031b1b809d02f4e8e8afed0ec60b9d0aed4d2488bd3013cd9
-DIST nvidia-persistenced-525.147.05.tar.bz2 48089 BLAKE2B a9cbf291fae9d7af50a9633fa5e197939674825e72150883b4e89e72165a512c164b4d79522f5b6c329e980e1145d958ba592202e5b73edfd32b149457714982 SHA512 e9685d330d32a5e9864b45a7e099e78ef873188972700747c158c3ab1fc95ea036726c793207fba33d4a50f17b92802366ce1ad38dd110b86ee923f48e622cfe
 DIST nvidia-persistenced-535.183.01.tar.bz2 48585 BLAKE2B 8f000f85ff959b86e7e0a4af0d7ae53cc2aa76670c04ea57c8bd2b7fdcf7ac071dd4a345b9121fcac97db7befac1f2635c41a40ecee4189a646977165a3b3bd5 SHA512 234b25fbd2e3b7573d77336047ea4898b4687d59fd0ab9cbe5c01dd33f14db610f467674120cc6ce2f3fa77ea53c9d3e23025e08afbabe07e5f6109840f6213c
 DIST nvidia-persistenced-535.216.01.tar.bz2 48566 BLAKE2B 5fb17d54bf4046323d1f95c45e32dea077083ee07fd7b8f1adabbdce28d569195d61f72c849d5d26ea2dad07fa476b833a2235e9c4edfcd4a57fed3153ea9678 SHA512 2298df7a04d5b449491afea400fef50d406a3a393862b72cf7ee30600e026886009237ecd1669725a8802fb88f1d4c1ab99c10ada00fb57051151bf7169060de
 DIST nvidia-persistenced-550.120.tar.bz2 61251 BLAKE2B 207a0c3a186ec40f23c06bc77614b1b869a1e4d68f5f8edcda6111df50a6a7f3474b5a3151e625584ce69b69450718b3b89207b6fe81bce8ac1676b199cd8a64 SHA512 afe71b9421652872aa4d3ca89a3abcc36bd617782ed3fbd4af31162d89c97c12fb27a16c82f4c4e54d2f4ee8b9b755dc19226ee877fbe70c8d2b5d5636064063
 DIST nvidia-persistenced-550.127.05.tar.bz2 61307 BLAKE2B 5e6f8d6734062b45782b71ebc8a3d17eb9cd56bef532f89ba27e4828c3f51b1c3ad94323f3e8d331cfa9b225f406f58d13ac36dc0976f0a7de955a35fd3acb38 SHA512 00d1a0436afdc9c3abe3abd68f29cec20c4ef38e8f96b8b36bd5428636ad085b42109591438b4d3a776f1f9b6efdef0e97dc964bd0e2b95c740b50d821e9311d
-DIST nvidia-persistenced-560.35.03.tar.bz2 49873 BLAKE2B 5b19e8bef623d3950948fcf2a57c097e451c846e1d3013344ce8f10b91e57d3f031c460a9a9e4d94940ed3035d4d5836e5ff672d25f0f132ea915eeac62b94de SHA512 65c12503f8b457de704c58e7f066c1938645d88cc8b986a2fa993dcc5c60f45b72b22950df9419577c37e815e65b6e3749d4ce551457ac1bd868e24093074fbe
 DIST nvidia-persistenced-565.57.01.tar.bz2 49559 BLAKE2B 5cb968e99b8732c78bfd35be260b5522c63d8025e40609fb016578d29b7817ca72ec83990e66fc39867eb385720161bd15130de1e4a424081519e491172653be SHA512 15cdd99d825178addbf5e7fe6d0217986c2be892af7d110085373bfcb3a8cf1525b1705c1d36d9213e4aec093c4deafac42a47b75fdd252640a8a6a988828d70
 DIST nvidia-settings-390.157.tar.bz2 1108938 BLAKE2B d9ec1ab5d7f157d74627272adf752a671dd17e2ede02069437b6180b927fe315b15cc6416d584ab2f038b76fe01e5b64514a834f24d88ac16676e55205fdecdd SHA512 b16699009bf56a1ff3b623a528c58061c4f5a2c5c4a373756a07bcd667743a1df7c733a572d2d0baa835a904ac2fda8a5c85890dcc00c3a0f223e0467aea902d
 DIST nvidia-settings-470.256.02.tar.bz2 1062273 BLAKE2B 8e66201e7861469b12932595ef8f9fd29d4cfd570c2576ae7fbb7383f61c55ac71fe721cc431e79d6d69f86d998b5b4c3cafe531b573f439e6b499b0fc047a19 SHA512 626e66118ae2e62eacfdf44e37529c409b945a6f33637b9690d74abd87a2afb581aaca5f90328d280da99ceb659959d0e5dc5c22ef8013b2205b2b1c72e08007
-DIST nvidia-settings-525.147.05.tar.bz2 1088088 BLAKE2B cea74a20ed8208f99cb586bd40fe2cafeec55ca2db19b2c0691d3bcabadc09941ff8288e940582e63f10d8f6cd7e8813e1c5776bf65cdc7b6ee291a8b3a7e28f SHA512 9c29a477b32db3f4324d7c6d28b8da9f3de5286e39f8c67bae88a93c3d3ee0c3f0a0f3e0c29c1fa8ba01b7311623569df27e349d6148ed70b3fd42ebd36f0dcd
 DIST nvidia-settings-535.183.01.tar.bz2 1094944 BLAKE2B 70d8deff3b587f54fcc6eb9b4a6396493e9aa89ced07bbaecd517e3a3f18ed4ab093777c0a74ddba24cb7e3ec4bd89a91e3f3ab877345e36fa6f8b71928af2dd SHA512 b7bcfdc48d053419e58d6eca762e55814feeb9ad992a134dd870ed899f4f2fab60fbc30f2c12b655bae248bab1602efaf02d31c0cabae1dbb8044d1b7c65b834
 DIST nvidia-settings-535.216.01.tar.bz2 1094718 BLAKE2B 19d87eed2263fbff32a6ca1f61f28e4d46e7b98e05e07f2e9f005a94ca1a89c61351aeb568b83ec1eab6e41a7a77a121cc156730a04137c43e03113df56289e3 SHA512 a4100e3382486508da74474e6252b2967c9a961fc08ff6824a321ffb929bf47096c8e4cc91348b57fb07cd637436d5bd7c3b9bbf9f07a6671503b2f9a9c96114
 DIST nvidia-settings-550.120.tar.bz2 1099121 BLAKE2B 072503d74873ac00bdb2df3689136ab60d314f1205cbbf1ba1d861ab01f2a1385f35db8c100c6271bda7b55c2e8e7148932f4fadb0dcafd428970e94c1b04b07 SHA512 665026474f23c027c859bd34fb8d9880522012159234ec36b432dd6f8e291b50eea460fbf288053744df42e5ec03b0cf2567fa405131da98ebf0b0e9b2d05a4f
 DIST nvidia-settings-550.127.05.tar.bz2 1099103 BLAKE2B 7e8779be16105bef7efcca6bbf702b3b025f10bc9f1f829820ff8825dcae856916cb91661ec14d0a276f09d78f66591f95a2ffbf2fe9ab34d9b95b885526da9a SHA512 5ffcd7323e95ef908c89ab4e9bafc779af8c306e4dce7aed80bfcb4630eb72efe2183c06e93b8f2b1e80e277d18f5050dcb515079d0ea30f72e50a3613f5a2d4
-DIST nvidia-settings-560.35.03.tar.bz2 1115724 BLAKE2B 937a3ea634e9bbc4b76f6c50fd20108c783a941e021a3fe1a9fd3288248fe14069f4e7b147cb3666e1d6bab91be2c0305daaeee57d338b9af546cefc79725be1 SHA512 7ed656ebe35ce55a0064dae57fdcc5c3eecc3c6db71bfc66f001dd60c4db764c6a2565af29f84ca1246280fbd573d8da4d09e21444b71210cedea5d1462b85f0
 DIST nvidia-settings-565.57.01.tar.bz2 1119062 BLAKE2B ec63854345c27dd7cbd5a88c4b5a1cb70ac02b22456aca608e17d463abbe859a31bcbe27c5c6b23e2d18eb705149bb78b02e119023c44fbdc664aaaa41292437 SHA512 9283d6b7bf87922c3c14530345e07129caf24befa20c52bca449ddea09f0311bde0c0d5d60b4c0d81e30cea557815ccf5d9410f47ac661b3eb25639f781d2c27
 DIST nvidia-xconfig-390.157.tar.bz2 107399 BLAKE2B 0cbb3b1ba508ddc3ba4a161c290b31bf7a67f67880bdbd01171a962c5fa97ca945b1ef17932403f8589309380743f1da632c728d8accb6d4e56dbd895e7486bb SHA512 50b390811c9bf091b14add41f886925b17496b41006b7d3981d2398caa65cf5db8a579c8cebed78278384bf3acc629befb07b54339c61abcc75852c0dcb8b8ca
 DIST nvidia-xconfig-470.256.02.tar.bz2 108698 BLAKE2B e468574e4bc57e7279d4120e2b08a201671b50d408be0c530eabe5da7d45daaf21cbf5c7fa31410d0d732fe8ea1551cbfb21d1ae193c1b3f5b5c50c764c9e236 SHA512 9dcec1e0c2b56b4d38a5f2c76086302f8bc0860cc15012cce29c3a5062f801a48b6a2bb78344361b07a2717b58502783441a2daf402d9973a17526175b1f15ca
-DIST nvidia-xconfig-525.147.05.tar.bz2 110987 BLAKE2B 49116c8922b5c14eaa88b6230a824447609a885f7d97df28ed4f3b9a2e146a213f31f9f184aadd38c4c9f692f0a1476d0db0704b55947ce95cbbeebcb9a683da SHA512 4b7c02de6080924eee5ee9fe770e632404b380529e5ee40a8d0f259a5c96d6915e83c26113b3c65434ce461c959347b3651abc15de7c40def16c46bb3f6faeae
 DIST nvidia-xconfig-535.183.01.tar.bz2 110994 BLAKE2B 154f0e3885fdc2a30373daad07924b109b1763a08d8d9a53e40037471548e9068762b6ce157ae3de7c3c0d7f0f33d02b875b9bc98d0b99888edf00722b0201f1 SHA512 101c0f3da4452e1bf5f4283f17297384e320c81f1bcf20a5eef2fca4802e91795782afbc5eb73f0620285b4c43eba25a80a65eaa8cc4d126036c83f6ce710adb
 DIST nvidia-xconfig-535.216.01.tar.bz2 111063 BLAKE2B 4b7826a78ca917884399b14bd74b12d6b9f1dd8b37654a86f63c04f19dafe3048f29dbbde503dec3945484a009973575a1e969df7eb231a3723ff964af0c81aa SHA512 39ae9e355efbe48d7952ae6cfce3b92a8de116516a8084d8aaede97f133b9a92555d50e0ac98db98cce6d1e29304d9ca352f9cfe999089b95e5d716560886f85
 DIST nvidia-xconfig-550.120.tar.bz2 111154 BLAKE2B bbb60c07497786c9947f418f2fa3e11244a53e38478db62bed4d3ccb1af8c5fd209710760df9bb727685b2f95618f91ce93b03f71aaa2e81b0001ca840e87937 SHA512 c286cf5f8fcc0eee25ca0459212b04292adda356b3ee3f0ed4c7d1aef0c859e5cd2498f7010950fb3834726f13a58ea19b84934635a0045e2a2cf843197a2d86
 DIST nvidia-xconfig-550.127.05.tar.bz2 111217 BLAKE2B a687e3e1d9e77cb5153a9732beade8c007d11fdada22cdd0a9debe464d9ac5125b435c95565f66c8cf895a9656e66ae37384b11a43e2f0785daf509746b57d62 SHA512 ff1a151663621320c32df1593c13e70d17d06f9d9633ea6c57463c0dd73873f8afc73676c393fdca82d7aa5085000e6b3af420228712e4c226b7b24220c454ec
-DIST nvidia-xconfig-560.35.03.tar.bz2 111203 BLAKE2B 347d4f80b9a16da54fbd7116d0ceafbb15b3b6e78aa1640b8505674b9ffc32056197925b67506d2cbb5d130054944c13246a592d9021f0bb2410ee6e8216df4e SHA512 1a68729b8aa1d3518b43392d4f9af163e2a084c635c08343b25ce761f835801aad203778fd03564ba050ad949a9d2df84fba4c8a48bb1a7afea5e72eb364eb58
 DIST nvidia-xconfig-565.57.01.tar.bz2 111256 BLAKE2B 66c6eea83729d87ddf516bf6d6bab9dd5552bc7ff5cec0969565383f66e6dde82ee7eb9553be4d78d752f51140ae722a103008bdd1e62c21fb89479fbdc92c05 SHA512 567cbe0ec092b8932be7ffd41ded760d3ed7be9496bf4cf655384443ec9a90d653432986ad01c62f5ed5fd4230131cc47eaba5df6a5caedc88236c9fa3ec14cb
 DIST open-gpu-kernel-modules-550.40.76.tar.gz 13813153 BLAKE2B 8179557721abc9c129f9e5c76a03da38419dc081be41d9bc95dcfb7f3d9e1c9c32442b44d8d1b586d25db7bca37b4b3038ebf6b43a7d31bbd928bb0c73d0ca74 SHA512 d51eb623a344ad2b2b3299d0b6e26ec56d9e1408850d4536ec14bcdf770202087c0701b39cd6000fa3f0fc9b5098d937100f28c937e186e5ab770cccb1edaa83

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-470.223.02-gpl-pfn_valid.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-470.223.02-gpl-pfn_valid.patch
deleted file mode 100644
index e0da3fcc2f87..000000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-470.223.02-gpl-pfn_valid.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-linux-6.1.76, 6.6.15, and 6.7.3 have modified the non-ARCH-specific
-pfn_valid() to use __rcu_read_lock/unlock[1] that is marked GPL and
-cannot be used here[2][3][4] unless use the open source variant.
-
-As a workaround, reuse the old implementation until NVIDIA makes
-a fixed release (due to no longer be using pfn_valid[5], likely
-with its own implementation similarly to this patch).
-
-Safe to use with kernel >=5.15 or so but older ones had a different
-pfn_valid implementation. However 5.15 and older branches are
-"currently" not affected, so simply limit to >=6.1.76.
-
-[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/include/linux/mmzone.h?h=v6.7.3&id=3a01daace71b521563c38bbbf874e14c3e58adb7
-[2] https://bugs.gentoo.org/923456
-[3] https://forums.developer.nvidia.com/t/280908
-[4] https://github.com/NVIDIA/open-gpu-kernel-modules/issues/594
-[5] https://github.com/NVIDIA/open-gpu-kernel-modules/issues/594#issuecomment-1916197641
---- a/kernel/common/inc/nv-linux.h
-+++ b/kernel/common/inc/nv-linux.h
-@@ -1990,2 +1990,23 @@
- 
-+#if defined(CONFIG_HAVE_ARCH_PFN_VALID) || LINUX_VERSION_CODE < KERNEL_VERSION(6,1,76)
-+#  define nv_pfn_valid pfn_valid
-+#else
-+/* pre-6.1.76 kernel pfn_valid version without GPL rcu_read_lock/unlock() */
-+static inline int nv_pfn_valid(unsigned long pfn)
-+{
-+        struct mem_section *ms;
-+
-+        if (PHYS_PFN(PFN_PHYS(pfn)) != pfn)
-+                return 0;
-+
-+        if (pfn_to_section_nr(pfn) >= NR_MEM_SECTIONS)
-+                return 0;
-+
-+        ms = __pfn_to_section(pfn);
-+        if (!valid_section(ms))
-+                return 0;
-+
-+        return early_section(ms) || pfn_section_valid(ms, pfn);
-+}
-+#endif
- #endif  /* _NV_LINUX_H_ */
---- a/kernel/nvidia/nv-mmap.c
-+++ b/kernel/nvidia/nv-mmap.c
-@@ -576,3 +576,3 @@
-             if (!IS_REG_OFFSET(nv, access_start, access_len) &&
--                (pfn_valid(PFN_DOWN(mmap_start))))
-+                (nv_pfn_valid(PFN_DOWN(mmap_start))))
-             {
---- a/kernel/nvidia/os-mlock.c
-+++ b/kernel/nvidia/os-mlock.c
-@@ -102,3 +102,3 @@
-         if ((nv_follow_pfn(vma, (start + (i * PAGE_SIZE)), &pfn) < 0) ||
--            (!pfn_valid(pfn)))
-+            (!nv_pfn_valid(pfn)))
-         {
-@@ -176,3 +176,3 @@
- 
--    if (pfn_valid(pfn))
-+    if (nv_pfn_valid(pfn))
-     {

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-525.116.04-clang-unused-option.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-525.116.04-clang-unused-option.patch
deleted file mode 100644
index 692e1880489d..000000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-525.116.04-clang-unused-option.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-clang-15.0.7(?) or so may abort when the unused option -MD is passed,
-option removal is backported from the nvidia:0/535 branch.
-
-Note patch is kept without context given the lines below change constantly
-(version) preventing from applying same patch to multiple versions.
-
-https://github.com/NVIDIA/open-gpu-kernel-modules/issues/506
---- a/kernel/Kbuild
-+++ b/kernel/Kbuild
-@@ -73 +73 @@
--EXTRA_CFLAGS += -Wall -MD $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-error -Wno-format-extra-args
-+EXTRA_CFLAGS += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-error -Wno-format-extra-args
---- a/kernel-module-source/kernel-open/Kbuild
-+++ b/kernel-module-source/kernel-open/Kbuild
-@@ -73 +73 @@
--EXTRA_CFLAGS += -Wall -MD $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-error -Wno-format-extra-args
-+EXTRA_CFLAGS += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-error -Wno-format-extra-args

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-525.147.05-gcc14.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-525.147.05-gcc14.patch
deleted file mode 100644
index 799f80b79f7e..000000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-525.147.05-gcc14.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-https://bugs.gentoo.org/921370
-https://forums.developer.nvidia.com/t/279072
---- a/kernel/conftest.sh
-+++ b/kernel/conftest.sh
-@@ -4807,6 +4807,11 @@
-             CODE="
-             #include <drm/drm_gem.h>
-+            #if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
-+            typedef struct iosys_map nv_sysio_map_t;
-+            #else
-+            typedef struct dma_buf_map nv_sysio_map_t;
-+            #endif
-             int conftest_drm_gem_object_vmap_has_map_arg(
--                    struct drm_gem_object *obj, struct dma_buf_map *map) {
-+                    struct drm_gem_object *obj, nv_sysio_map_t *map) {
-                 return obj->funcs->vmap(obj, map);
-             }"
---- a/kernel-module-source/kernel-open/conftest.sh
-+++ b/kernel-module-source/kernel-open/conftest.sh
-@@ -4807,6 +4807,11 @@
-             CODE="
-             #include <drm/drm_gem.h>
-+            #if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
-+            typedef struct iosys_map nv_sysio_map_t;
-+            #else
-+            typedef struct dma_buf_map nv_sysio_map_t;
-+            #endif
-             int conftest_drm_gem_object_vmap_has_map_arg(
--                    struct drm_gem_object *obj, struct dma_buf_map *map) {
-+                    struct drm_gem_object *obj, nv_sysio_map_t *map) {
-                 return obj->funcs->vmap(obj, map);
-             }"

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05-r1.ebuild
deleted file mode 100644
index b4f1801cfdf9..000000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05-r1.ebuild
+++ /dev/null
@@ -1,585 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-MODULES_OPTIONAL_IUSE=+modules
-inherit desktop flag-o-matic linux-mod-r1 multilib readme.gentoo-r1
-inherit systemd toolchain-funcs unpacker user-info
-
-MODULES_KERNEL_MAX=6.7 # 6.6 for arm64 (see below)
-NV_URI="https://download.nvidia.com/XFree86/"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="https://www.nvidia.com/"
-SRC_URI="
-	amd64? ( ${NV_URI}Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run )
-	arm64? ( ${NV_URI}Linux-aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run )
-	$(printf "${NV_URI}%s/%s-${PV}.tar.bz2 " \
-		nvidia-{installer,modprobe,persistenced,settings,xconfig}{,})
-	${NV_URI}NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-${PV}.tar.xz
-"
-# nvidia-installer is unused but here for GPL-2's "distribute sources"
-S=${WORKDIR}
-
-LICENSE="NVIDIA-r2 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
-SLOT="0/${PV%%.*}"
-KEYWORDS="-* amd64 ~arm64"
-IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland"
-REQUIRED_USE="kernel-open? ( modules )"
-
-COMMON_DEPEND="
-	acct-group/video
-	X? ( x11-libs/libpciaccess )
-	persistenced? (
-		acct-user/nvpd
-		net-libs/libtirpc:=
-	)
-	tools? (
-		>=app-accessibility/at-spi2-core-2.46:2
-		dev-libs/glib:2
-		dev-libs/jansson:=
-		media-libs/harfbuzz:=
-		x11-libs/cairo
-		x11-libs/gdk-pixbuf:2
-		x11-libs/gtk+:3[X]
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXxf86vm
-		x11-libs/pango
-	)
-"
-RDEPEND="
-	${COMMON_DEPEND}
-	sys-libs/glibc
-	X? (
-		media-libs/libglvnd[X,abi_x86_32(-)?]
-		x11-libs/libX11[abi_x86_32(-)?]
-		x11-libs/libXext[abi_x86_32(-)?]
-	)
-	powerd? ( sys-apps/dbus[abi_x86_32(-)?] )
-	wayland? (
-		gui-libs/egl-gbm
-		>=gui-libs/egl-wayland-1.1.10
-		media-libs/libglvnd
-	)
-"
-DEPEND="
-	${COMMON_DEPEND}
-	static-libs? (
-		x11-base/xorg-proto
-		x11-libs/libX11
-		x11-libs/libXext
-	)
-	tools? (
-		media-libs/libglvnd
-		sys-apps/dbus
-		x11-base/xorg-proto
-		x11-libs/libXrandr
-		x11-libs/libXv
-		x11-libs/libvdpau
-	)
-"
-BDEPEND="
-	sys-devel/m4
-	virtual/pkgconfig
-"
-
-QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
-
-PATCHES=(
-	"${FILESDIR}"/nvidia-drivers-470.223.02-gpl-pfn_valid.patch
-	"${FILESDIR}"/nvidia-drivers-525.116.04-clang-unused-option.patch
-	"${FILESDIR}"/nvidia-drivers-525.147.05-gcc14.patch
-	"${FILESDIR}"/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
-	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
-	"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
-	"${FILESDIR}"/nvidia-settings-390.144-raw-ldflags.patch
-)
-
-pkg_setup() {
-	use modules && [[ ${MERGE_TYPE} != binary ]] || return
-
-	local CONFIG_CHECK="
-		PROC_FS
-		~DRM_KMS_HELPER
-		~SYSVIPC
-		~!LOCKDEP
-		~!SLUB_DEBUG_ON
-		!DEBUG_MUTEXES
-		$(usev powerd '~CPU_FREQ')
-	"
-
-	local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection
-	of drivers (no custom config), and for wayland / nvidia-drm.modeset=1.
-	Cannot be directly selected in the kernel's menuconfig, and may need
-	selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or
-	DRM_I915=y, DRM_NOUVEAU=m also acceptable if a module and not built-in."
-
-	local ERROR_X86_KERNEL_IBT="CONFIG_X86_KERNEL_IBT: is set and, if the CPU supports the feature,
-	this *could* lead to modules load failure with ENDBR errors, or to
-	broken CUDA/NVENC. Please ignore if not having issues, but otherwise
-	try to unset or pass ibt=off to the kernel's command line." #911142
-	use kernel-open || CONFIG_CHECK+=" ~!X86_KERNEL_IBT"
-
-	use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764
-
-	use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827
-	local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open.
-	Cannot be directly selected in the kernel's menuconfig, and may need
-	selection of another option that requires it such as CONFIG_KVM."
-
-	# screen_info is marked GPL on non-x86 in 6.7 and cannot be used
-	# (patchable, but just avoid advertising compatibility for now)
-	# https://forums.developer.nvidia.com/t/278367
-	use arm64 && MODULES_KERNEL_MAX=6.6
-
-	linux-mod-r1_pkg_setup
-}
-
-src_prepare() {
-	# make patches usable across versions
-	rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die
-	rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die
-	rm nvidia-settings && mv nvidia-settings{-${PV},} || die
-	rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die
-	mv NVIDIA-kernel-module-source-${PV} kernel-module-source || die
-
-	default
-
-	# prevent detection of incomplete kernel DRM support (bug #603818)
-	sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
-		-i kernel{,-module-source/kernel-open}/conftest.sh || die
-
-	# adjust service files
-	sed 's/__USER__/nvpd/' \
-		nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \
-		> "${T}"/nvidia-persistenced.service || die
-	use !powerd || # file is missing on arm64 (masked)
-		sed -i "s|/usr|${EPREFIX}/opt|" systemd/system/nvidia-powerd.service || die
-
-	# use alternative vulkan icd option if USE=-X (bug #909181)
-	use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die
-
-	# enable nvidia-drm.modeset=1 by default with USE=wayland
-	cp "${FILESDIR}"/nvidia-470.conf "${T}"/nvidia.conf || die
-	use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die
-
-	# makefile attempts to install wayland library even if not built
-	use wayland || sed -i 's/ WAYLAND_LIB_install$//' \
-		nvidia-settings/src/Makefile || die
-
-	# temporary option, nvidia will remove in the future
-	use !kernel-open ||
-		sed -i '/blacklist/a\
-\
-# Enable using kernel-open with workstation GPUs (experimental)\
-options nvidia NVreg_OpenRmEnableUnsupportedGpus=1' "${T}"/nvidia.conf || die
-}
-
-src_compile() {
-	tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG
-	local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # raw-ldflags.patch
-
-	local xnvflags=-fPIC #840389
-	# lto static libraries tend to cause problems without fat objects
-	tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
-
-	NV_ARGS=(
-		PREFIX="${EPREFIX}"/usr
-		HOST_CC="$(tc-getBUILD_CC)"
-		HOST_LD="$(tc-getBUILD_LD)"
-		BUILD_GTK2LIB=
-		NV_USE_BUNDLED_LIBJANSSON=0
-		NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
-		WAYLAND_AVAILABLE=$(usex wayland 1 0)
-		XNVCTRL_CFLAGS="${xnvflags}"
-	)
-
-	if use modules; then
-		local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS}
-
-		local modlistargs=video:kernel
-		if use kernel-open; then
-			modlistargs+=-module-source:kernel-module-source/kernel-open
-
-			# environment flags are normally unused for modules, but nvidia
-			# uses it for building the "blob" and it is a bit fragile
-			filter-flags -fno-plt #912949
-			filter-lto
-			CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags
-		fi
-
-		local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} )
-		local modargs=(
-			IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
-			SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
-		)
-
-		# temporary workaround for bug #914468
-		CPP="${KERNEL_CC} -E" tc-is-clang && addpredict "${KV_OUT_DIR}"
-
-		linux-mod-r1_src_compile
-		CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags}
-	fi
-
-	emake "${NV_ARGS[@]}" -C nvidia-modprobe
-	use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced
-	use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig
-
-	if use tools; then
-		# avoid noisy *very* noisy logs with deprecation warnings
-		CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
-			emake "${NV_ARGS[@]}" -C nvidia-settings
-	elif use static-libs; then
-		# pretend GTK+3 is available, not actually used (bug #880879)
-		emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \
-			-C nvidia-settings/src out/libXNVCtrl.a
-	fi
-}
-
-src_install() {
-	local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir)
-
-	NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} )
-
-	local -A paths=(
-		[APPLICATION_PROFILE]=/usr/share/nvidia
-		[CUDA_ICD]=/etc/OpenCL/vendors
-		[EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d
-		[FIRMWARE]=/lib/firmware/nvidia/${PV}
-		[GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm
-		[GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d
-		[VULKAN_ICD_JSON]=/usr/share/vulkan
-		[WINE_LIB]=/usr/${libdir}/nvidia/wine
-		[XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d
-
-		[GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions
-		[GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules
-		[XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules
-	)
-
-	local skip_files=(
-		$(usev !X "libGLX_nvidia libglxserver_nvidia")
-		$(usev !wayland libnvidia-vulkan-producer)
-		libGLX_indirect # non-glvnd unused fallback
-		libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source
-		libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm
-		libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland
-	)
-	local skip_modules=(
-		$(usev !X "nvfbc vdpau xdriver")
-		$(usev !modules gsp)
-		$(usev !powerd powerd)
-		installer nvpd # handled separately / built from source
-	)
-	local skip_types=(
-		GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd
-		OPENCL_WRAPPER.\* # virtual/opencl
-		DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused
-	)
-
-	local DOCS=(
-		README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json
-		nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
-	)
-	local HTML_DOCS=( html/. )
-	einstalldocs
-
-	local DISABLE_AUTOFORMATTING=yes
-	local DOC_CONTENTS="\
-Trusted users should be in the 'video' group to use NVIDIA devices.
-You can add yourself by using: gpasswd -a my-user video\
-$(usev modules "
-
-Like all out-of-tree kernel modules, it is necessary to rebuild
-${PN} after upgrading or rebuilding the Linux kernel
-by for example running \`emerge @module-rebuild\`. Alternatively,
-if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}),
-this can be automated by setting USE=dist-kernel globally.
-
-Loaded kernel modules also must not mismatch with the installed
-${PN} version (excluding -r revision), meaning should
-ensure \`eselect kernel list\` points to the kernel that will be
-booted before building and preferably reboot after upgrading
-${PN} (the ebuild will emit a warning if mismatching).
-
-See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\
-$(use amd64 && usev !abi_x86_32 "
-
-Note that without USE=abi_x86_32 on ${PN}, 32bit applications
-(typically using wine / steam) will not be able to use GPU acceleration.")
-
-For additional information or for troubleshooting issues, please see
-https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own
-documentation that is installed alongside this README."
-	readme.gentoo_create_doc
-
-	if use modules; then
-		linux-mod-r1_src_install
-
-		insinto /etc/modprobe.d
-		doins "${T}"/nvidia.conf
-
-		# used for gpu verification with binpkgs (not kept, see pkg_preinst)
-		insinto /usr/share/nvidia
-		doins supported-gpus/supported-gpus.json
-	fi
-
-	emake "${NV_ARGS[@]}" -C nvidia-modprobe install
-	fowners :video /usr/bin/nvidia-modprobe #505092
-	fperms 4710 /usr/bin/nvidia-modprobe
-
-	if use persistenced; then
-		emake "${NV_ARGS[@]}" -C nvidia-persistenced install
-		newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced
-		newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced
-		systemd_dounit "${T}"/nvidia-persistenced.service
-	fi
-
-	if use tools; then
-		emake "${NV_ARGS[@]}" -C nvidia-settings install
-
-		doicon nvidia-settings/doc/nvidia-settings.png
-		domenu nvidia-settings/doc/nvidia-settings.desktop
-
-		exeinto /etc/X11/xinit/xinitrc.d
-		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-	fi
-
-	if use static-libs; then
-		dolib.a nvidia-settings/src/out/libXNVCtrl.a
-
-		insinto /usr/include/NVCtrl
-		doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
-	fi
-
-	use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install
-
-	# mimic nvidia-installer by reading .manifest to install files
-	# 0:file 1:perms 2:type 3+:subtype/arguments -:module
-	local m into
-	while IFS=' ' read -ra m; do
-		! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] ||
-			[[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] ||
-			[[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] ||
-			has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue
-
-		case ${m[2]} in
-			MANPAGE)
-				gzip -dc ${m[0]} | newman - ${m[0]%.gz}; assert
-				continue
-			;;
-			GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../
-			VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/
-		esac
-
-		if [[ -v 'paths[${m[2]}]' ]]; then
-			into=${paths[${m[2]}]}
-		elif [[ ${m[2]} == *_BINARY ]]; then
-			into=/opt/bin
-		elif [[ ${m[3]} == COMPAT32 ]]; then
-			use abi_x86_32 || continue
-			into=/usr/${libdir32}
-		elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then
-			into=/usr/${libdir}
-		else
-			die "No known installation path for ${m[0]}"
-		fi
-		[[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/}
-		[[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/}
-
-		if [[ ${m[2]} =~ _SYMLINK$ ]]; then
-			[[ ${m[4]: -1} == / ]] && m[4]=${m[5]}
-			dosym ${m[4]} ${into}/${m[0]}
-			continue
-		fi
-		[[ ${m[0]} =~ ^libnvidia-ngx.so|^libnvidia-egl-gbm.so ]] &&
-			dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 # soname not in .manifest
-
-		printf -v m[1] %o $((m[1] | 0200)) # 444->644
-		insopts -m${m[1]}
-		insinto ${into}
-		doins ${m[0]}
-	done < .manifest || die
-	insopts -m0644 # reset
-
-	# MODULE:installer non-skipped extras
-	: "$(systemd_get_sleepdir)"
-	exeinto "${_#"${EPREFIX}"}"
-	doexe systemd/system-sleep/nvidia
-	dobin systemd/nvidia-sleep.sh
-	systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend}.service
-
-	dobin nvidia-bug-report.sh
-
-	# MODULE:powerd extras
-	if use powerd; then
-		newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117
-		systemd_dounit systemd/system/nvidia-powerd.service
-
-		insinto /usr/share/dbus-1/system.d
-		doins nvidia-dbus.conf
-	fi
-
-	# enabling is needed for sleep to work properly and little reason not to do
-	# it unconditionally for a better user experience
-	: "$(systemd_get_systemunitdir)"
-	local unitdir=${_#"${EPREFIX}"}
-	# not using relative symlinks to match systemd's own links
-	dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-hibernate.service
-	dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-resume.service
-	dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-suspend.service
-	dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-resume.service
-	# also add a custom elogind hook to do the equivalent of the above
-	exeinto /usr/lib/elogind/system-sleep
-	newexe "${FILESDIR}"/system-sleep.elogind nvidia
-	# <elogind-255.5 used a different path (bug #939216), keep a compat symlink
-	# TODO: cleanup after 255.5 been stable for a few months
-	dosym {/usr/lib,/"${libdir}"}/elogind/system-sleep/nvidia
-
-	# symlink non-versioned so nvidia-settings can use it even if misdetected
-	dosym nvidia-application-profiles-${PV}-key-documentation \
-		${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation
-
-	# don't attempt to strip firmware files (silences errors)
-	dostrip -x ${paths[FIRMWARE]}
-
-	# sandbox issues with /dev/nvidiactl (and /dev/char wrt bug #904292)
-	# are widespread and sometime affect revdeps of packages built with
-	# USE=opencl/cuda making it hard to manage in ebuilds (minimal set,
-	# ebuilds should handle manually if need others or addwrite)
-	insinto /etc/sandbox.d
-	newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/char"'
-
-	# dracut does not use /etc/modprobe.d if hostonly=no, but want to make sure
-	# our settings are used for bug 932781#c8 and nouveau blacklist if either
-	# modules are included (however, just best-effort without initramfs regen)
-	if use modules; then
-		echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \
-			"${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || die
-	fi
-}
-
-pkg_preinst() {
-	has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND=
-
-	use modules || return
-
-	# set video group id based on live system (bug #491414)
-	local g=$(egetent group video | cut -d: -f3)
-	[[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')"
-	sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
-
-	# try to find driver mismatches using temporary supported-gpus.json
-	for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do
-		g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \
-			"${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null)
-		if [[ ${g} ]]; then
-			g=$((${g##*\"}+1))
-			if ver_test -ge ${g}; then
-				NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}"
-				break
-			fi
-		fi
-	done
-	rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
-}
-
-pkg_postinst() {
-	linux-mod-r1_pkg_postinst
-
-	readme.gentoo_print_elog
-
-	if [[ -r /proc/driver/nvidia/version &&
-		$(</proc/driver/nvidia/version) != *"  ${PV}  "* ]]; then
-		ewarn "Currently loaded NVIDIA modules do not match the newly installed"
-		ewarn "libraries and may prevent launching GPU-accelerated applications."
-		if use modules; then
-			ewarn "Easiest way to fix this is normally to reboot. If still run into issues"
-			ewarn "(e.g. API mismatch messages in the \`dmesg\` output), please verify"
-			ewarn "that the running kernel is ${KV_FULL} and that (if used) the"
-			ewarn "initramfs does not include NVIDIA modules (or at least, not old ones)."
-		fi
-	fi
-
-	if [[ $(</proc/cmdline) == *slub_debug=[!-]* ]]; then
-		ewarn "Detected that the current kernel command line is using 'slub_debug=',"
-		ewarn "this may lead to system instability/freezes with this version of"
-		ewarn "${PN}. Bug: https://bugs.gentoo.org/796329"
-	fi
-
-	if [[ -v NV_LEGACY_MASK ]]; then
-		ewarn
-		ewarn "***WARNING***"
-		ewarn
-		ewarn "You are installing a version of ${PN} known not to work"
-		ewarn "with a GPU of the current system. If unwanted, add the mask:"
-		if [[ -d ${EROOT}/etc/portage/package.mask ]]; then
-			ewarn "  echo '${NV_LEGACY_MASK}' > ${EROOT}/etc/portage/package.mask/${PN}"
-		else
-			ewarn "  echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask"
-		fi
-		ewarn "...then downgrade to a legacy[1] branch if possible (not all old versions"
-		ewarn "are available or fully functional, may need to consider nouveau[2])."
-		ewarn "[1] https://www.nvidia.com/object/IO_32667.html"
-		ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau"
-	fi
-
-	if use kernel-open; then
-		ewarn
-		ewarn "Open source variant of ${PN} was selected, be warned it is experimental"
-		ewarn "and only for modern GPUs (e.g. GTX 1650+). Try to disable if run into issues."
-		ewarn "Please also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html"
-	fi
-
-	if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then
-		elog
-		elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
-		elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. This feature is considered"
-		elog "experimental but is required for wayland."
-		elog
-		elog "If you experience issues, either disable wayland or edit nvidia.conf."
-		elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
-	fi
-
-	# these can be removed after some time, only to help the transition
-	# given users are unlikely to do further custom solutions if it works
-	# (see also https://github.com/elogind/elogind/issues/272)
-	if grep -riq "^[^#]*HandleNvidiaSleep=yes" "${EROOT}"/etc/elogind/sleep.conf.d/ 2>/dev/null
-	then
-		ewarn
-		ewarn "!!! WARNING !!!"
-		ewarn "Detected HandleNvidiaSleep=yes in ${EROOT}/etc/elogind/sleep.conf.d/."
-		ewarn "This 'could' cause issues if used in combination with the new hook"
-		ewarn "installed by the ebuild to handle sleep using the official upstream"
-		ewarn "script. It is recommended to disable the option."
-	fi
-	if [[ $(realpath "${EROOT}"{/etc,{/usr,}/lib*}/elogind/system-sleep 2>/dev/null | \
-		sort | uniq | xargs -d'\n' grep -Ril nvidia 2>/dev/null | wc -l) -gt 2 ]]
-	then
-		ewarn
-		ewarn "!!! WARNING !!!"
-		ewarn "Detected a custom script at ${EROOT}{/etc,{/usr,}/lib*}/elogind/system-sleep"
-		ewarn "referencing NVIDIA. This version of ${PN} has installed its own"
-		ewarn "hook at ${EROOT}/usr/lib/elogind/system-sleep/nvidia and it is recommended"
-		ewarn "to remove the custom one to avoid potential issues."
-		ewarn
-		ewarn "Feel free to ignore this warning if you know the other NVIDIA-related"
-		ewarn "scripts can be used together. The warning will be removed in the future."
-	fi
-	if [[ ${REPLACING_VERSIONS##* } ]] &&
-		ver_test ${REPLACING_VERSIONS##* } -lt 525.147.05-r1 # may get repeated
-	then
-		elog
-		elog "For suspend/sleep, 'NVreg_PreserveVideoMemoryAllocations=1' is now default"
-		elog "with this version of ${PN}. This is recommended (or required) by"
-		elog "major DEs especially with wayland but, *if* experience regressions with"
-		elog "suspend, try reverting to =0 in '${EROOT}/etc/modprobe.d/nvidia.conf'."
-		elog
-		elog "May notably be an issue when using neither systemd nor elogind to suspend."
-		elog
-		elog "Also, the systemd suspend/hibernate/resume services are now enabled by"
-		elog "default, and for openrc+elogind a similar hook has been installed."
-	fi
-}

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-560.35.03-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-560.35.03-r1.ebuild
deleted file mode 100644
index 9a3cb1ef33e3..000000000000
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-560.35.03-r1.ebuild
+++ /dev/null
@@ -1,592 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-MODULES_OPTIONAL_IUSE=+modules
-inherit desktop flag-o-matic linux-mod-r1 readme.gentoo-r1
-inherit systemd toolchain-funcs unpacker user-info
-
-MODULES_KERNEL_MAX=6.11
-NV_URI="https://download.nvidia.com/XFree86/"
-
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="https://www.nvidia.com/"
-SRC_URI="
-	amd64? ( ${NV_URI}Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run )
-	arm64? ( ${NV_URI}Linux-aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run )
-	$(printf "${NV_URI}%s/%s-${PV}.tar.bz2 " \
-		nvidia-{installer,modprobe,persistenced,settings,xconfig}{,})
-	${NV_URI}NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-${PV}.tar.xz
-"
-# nvidia-installer is unused but here for GPL-2's "distribute sources"
-S=${WORKDIR}
-
-LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
-SLOT="0/${PV%%.*}"
-KEYWORDS="-* ~amd64 ~arm64"
-# note: kernel-open is an upstream default in >=560 if all GPUs on the system
-# support it but, since no automagic here, keeping it off for the wider support
-IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland"
-REQUIRED_USE="kernel-open? ( modules )"
-
-COMMON_DEPEND="
-	acct-group/video
-	X? ( x11-libs/libpciaccess )
-	persistenced? (
-		acct-user/nvpd
-		net-libs/libtirpc:=
-	)
-	tools? (
-		>=app-accessibility/at-spi2-core-2.46:2
-		dev-libs/glib:2
-		dev-libs/jansson:=
-		media-libs/harfbuzz:=
-		x11-libs/cairo
-		x11-libs/gdk-pixbuf:2
-		x11-libs/gtk+:3[X]
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXxf86vm
-		x11-libs/pango
-	)
-"
-RDEPEND="
-	${COMMON_DEPEND}
-	dev-libs/openssl:0/3
-	sys-libs/glibc
-	X? (
-		media-libs/libglvnd[X,abi_x86_32(-)?]
-		x11-libs/libX11[abi_x86_32(-)?]
-		x11-libs/libXext[abi_x86_32(-)?]
-	)
-	powerd? ( sys-apps/dbus[abi_x86_32(-)?] )
-	wayland? (
-		>=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?]
-		>=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?]
-	)
-"
-DEPEND="
-	${COMMON_DEPEND}
-	static-libs? (
-		x11-base/xorg-proto
-		x11-libs/libX11
-		x11-libs/libXext
-	)
-	tools? (
-		dev-util/vulkan-headers
-		media-libs/libglvnd
-		sys-apps/dbus
-		x11-base/xorg-proto
-		x11-libs/libXrandr
-		x11-libs/libXv
-		x11-libs/libvdpau
-	)
-"
-BDEPEND="
-	sys-devel/m4
-	virtual/pkgconfig
-"
-
-QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
-
-PATCHES=(
-	"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
-	"${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch
-	"${FILESDIR}"/nvidia-drivers-550.107.02-kernel-6.11-fbdev.patch
-)
-
-pkg_setup() {
-	use modules && [[ ${MERGE_TYPE} != binary ]] || return
-
-	# do early before linux-mod-r1 so can use chkconfig to setup CONFIG_CHECK
-	get_version
-	require_configured_kernel
-
-	local CONFIG_CHECK="
-		PROC_FS
-		~DRM_KMS_HELPER
-		~SYSVIPC
-		~!LOCKDEP
-		~!SLUB_DEBUG_ON
-		!DEBUG_MUTEXES
-		$(usev powerd '~CPU_FREQ')
-	"
-
-	kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION &&
-		CONFIG_CHECK+=" DRM_TTM_HELPER"
-
-	use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764
-
-	use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827
-
-	local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need
-	selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or
-	DRM_QXL=m, DRM_NOUVEAU=m also acceptable if a module and *not* built-in."
-	local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection
-	of drivers (no custom config), and for wayland / nvidia-drm.modeset=1.
-	${drm_helper_msg}"
-	local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using
-	kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set.
-	${drm_helper_msg}
-	Many DRM devices like DRM_I915 cannot currently be used to enable this."
-	local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open.
-	Cannot be directly selected in the kernel's menuconfig, and may need
-	selection of another option that requires it such as CONFIG_KVM."
-
-	linux-mod-r1_pkg_setup
-}
-
-src_prepare() {
-	# make patches usable across versions
-	rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die
-	rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die
-	rm nvidia-settings && mv nvidia-settings{-${PV},} || die
-	rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die
-	mv NVIDIA-kernel-module-source-${PV} kernel-module-source || die
-
-	default
-
-	# prevent detection of incomplete kernel DRM support (bug #603818)
-	sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
-		-i kernel{,-module-source/kernel-open}/conftest.sh || die
-
-	# adjust service files
-	sed 's/__USER__/nvpd/' \
-		nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \
-		> "${T}"/nvidia-persistenced.service || die
-	sed -i "s|/usr|${EPREFIX}/opt|" systemd/system/nvidia-powerd.service || die
-
-	# use alternative vulkan icd option if USE=-X (bug #909181)
-	use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die
-
-	# enable nvidia-drm.modeset=1 by default with USE=wayland
-	cp "${FILESDIR}"/nvidia-555.conf "${T}"/nvidia.conf || die
-	use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die
-
-	# makefile attempts to install wayland library even if not built
-	use wayland || sed -i 's/ WAYLAND_LIB_install$//' \
-		nvidia-settings/src/Makefile || die
-}
-
-src_compile() {
-	tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG
-
-	local xnvflags=-fPIC #840389
-	# lto static libraries tend to cause problems without fat objects
-	tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
-
-	NV_ARGS=(
-		PREFIX="${EPREFIX}"/usr
-		HOST_CC="$(tc-getBUILD_CC)"
-		HOST_LD="$(tc-getBUILD_LD)"
-		BUILD_GTK2LIB=
-		NV_USE_BUNDLED_LIBJANSSON=0
-		NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
-		WAYLAND_AVAILABLE=$(usex wayland 1 0)
-		XNVCTRL_CFLAGS="${xnvflags}"
-	)
-
-	if use modules; then
-		local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS}
-
-		local modlistargs=video:kernel
-		if use kernel-open; then
-			modlistargs+=-module-source:kernel-module-source/kernel-open
-
-			# environment flags are normally unused for modules, but nvidia
-			# uses it for building the "blob" and it is a bit fragile
-			filter-flags -fno-plt #912949
-			filter-lto
-			CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags
-		fi
-
-		local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} )
-		local modargs=(
-			IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
-			SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
-		)
-
-		# temporary workaround for bug #914468
-		CPP="${KERNEL_CC} -E" tc-is-clang && addpredict "${KV_OUT_DIR}"
-
-		linux-mod-r1_src_compile
-		CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags}
-	fi
-
-	emake "${NV_ARGS[@]}" -C nvidia-modprobe
-	use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced
-	use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig
-
-	if use tools; then
-		# avoid noisy *very* noisy logs with deprecation warnings
-		CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
-			emake "${NV_ARGS[@]}" -C nvidia-settings
-	elif use static-libs; then
-		# pretend GTK+3 is available, not actually used (bug #880879)
-		emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \
-			-C nvidia-settings/src out/libXNVCtrl.a
-	fi
-}
-
-src_install() {
-	local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir)
-
-	NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} )
-
-	local -A paths=(
-		[APPLICATION_PROFILE]=/usr/share/nvidia
-		[CUDA_ICD]=/etc/OpenCL/vendors
-		[EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d
-		[FIRMWARE]=/lib/firmware/nvidia/${PV}
-		[GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm
-		[GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d
-		[OPENGL_DATA]=/usr/share/nvidia
-		[VULKAN_ICD_JSON]=/usr/share/vulkan
-		[VULKANSC_ICD_JSON]=/usr/share/vulkansc
-		[WINE_LIB]=/usr/${libdir}/nvidia/wine
-		[XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d
-
-		[GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions
-		[GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules
-		[XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules
-	)
-
-	local skip_files=(
-		$(usev !X "libGLX_nvidia libglxserver_nvidia")
-		libGLX_indirect # non-glvnd unused fallback
-		libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source
-		libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm
-		libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland
-		libnvidia-pkcs11.so # using the openssl3 version instead
-	)
-	local skip_modules=(
-		$(usev !X "nvfbc vdpau xdriver")
-		$(usev !modules gsp)
-		$(usev !powerd powerd)
-		installer nvpd # handled separately / built from source
-	)
-	local skip_types=(
-		GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd
-		OPENCL_WRAPPER.\* # virtual/opencl
-		DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused
-	)
-
-	local DOCS=(
-		README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json
-		nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
-	)
-	local HTML_DOCS=( html/. )
-	einstalldocs
-
-	local DISABLE_AUTOFORMATTING=yes
-	local DOC_CONTENTS="\
-Trusted users should be in the 'video' group to use NVIDIA devices.
-You can add yourself by using: gpasswd -a my-user video\
-$(usev modules "
-
-Like all out-of-tree kernel modules, it is necessary to rebuild
-${PN} after upgrading or rebuilding the Linux kernel
-by for example running \`emerge @module-rebuild\`. Alternatively,
-if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}),
-this can be automated by setting USE=dist-kernel globally.
-
-Loaded kernel modules also must not mismatch with the installed
-${PN} version (excluding -r revision), meaning should
-ensure \`eselect kernel list\` points to the kernel that will be
-booted before building and preferably reboot after upgrading
-${PN} (the ebuild will emit a warning if mismatching).
-
-See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\
-$(use amd64 && usev !abi_x86_32 "
-
-Note that without USE=abi_x86_32 on ${PN}, 32bit applications
-(typically using wine / steam) will not be able to use GPU acceleration.")
-
-For additional information or for troubleshooting issues, please see
-https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own
-documentation that is installed alongside this README."
-	readme.gentoo_create_doc
-
-	if use modules; then
-		linux-mod-r1_src_install
-
-		insinto /etc/modprobe.d
-		doins "${T}"/nvidia.conf
-
-		# used for gpu verification with binpkgs (not kept, see pkg_preinst)
-		insinto /usr/share/nvidia
-		doins supported-gpus/supported-gpus.json
-	fi
-
-	emake "${NV_ARGS[@]}" -C nvidia-modprobe install
-	fowners :video /usr/bin/nvidia-modprobe #505092
-	fperms 4710 /usr/bin/nvidia-modprobe
-
-	if use persistenced; then
-		emake "${NV_ARGS[@]}" -C nvidia-persistenced install
-		newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced
-		newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced
-		systemd_dounit "${T}"/nvidia-persistenced.service
-	fi
-
-	if use tools; then
-		emake "${NV_ARGS[@]}" -C nvidia-settings install
-
-		doicon nvidia-settings/doc/nvidia-settings.png
-		domenu nvidia-settings/doc/nvidia-settings.desktop
-
-		exeinto /etc/X11/xinit/xinitrc.d
-		newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-	fi
-
-	if use static-libs; then
-		dolib.a nvidia-settings/src/out/libXNVCtrl.a
-
-		insinto /usr/include/NVCtrl
-		doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
-	fi
-
-	use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install
-
-	# mimic nvidia-installer by reading .manifest to install files
-	# 0:file 1:perms 2:type 3+:subtype/arguments -:module
-	local m into
-	while IFS=' ' read -ra m; do
-		! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] ||
-			[[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] ||
-			[[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] ||
-			has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue
-
-		case ${m[2]} in
-			MANPAGE)
-				gzip -dc ${m[0]} | newman - ${m[0]%.gz}; assert
-				continue
-			;;
-			GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../
-			VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/
-		esac
-
-		if [[ -v 'paths[${m[2]}]' ]]; then
-			into=${paths[${m[2]}]}
-		elif [[ ${m[2]} == EXPLICIT_PATH ]]; then
-			into=${m[3]}
-		elif [[ ${m[2]} == *_BINARY ]]; then
-			into=/opt/bin
-		elif [[ ${m[3]} == COMPAT32 ]]; then
-			use abi_x86_32 || continue
-			into=/usr/${libdir32}
-		elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then
-			into=/usr/${libdir}
-		else
-			die "No known installation path for ${m[0]}"
-		fi
-		[[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/}
-		[[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/}
-
-		if [[ ${m[2]} =~ _SYMLINK$ ]]; then
-			[[ ${m[4]: -1} == / ]] && m[4]=${m[5]}
-			dosym ${m[4]} ${into}/${m[0]}
-			continue
-		fi
-		# avoid portage warning due to missing soname links in manifest
-		[[ ${m[0]} =~ .*((libnvidia-ngx.so|libnvidia-egl-gbm.so).*) ]] &&
-			dosym ${BASH_REMATCH[1]} ${into}/${BASH_REMATCH[2]}.1
-
-		printf -v m[1] %o $((m[1] | 0200)) # 444->644
-		insopts -m${m[1]}
-		insinto ${into}
-		doins ${m[0]}
-	done < .manifest || die
-	insopts -m0644 # reset
-
-	# MODULE:installer non-skipped extras
-	: "$(systemd_get_sleepdir)"
-	exeinto "${_#"${EPREFIX}"}"
-	doexe systemd/system-sleep/nvidia
-	dobin systemd/nvidia-sleep.sh
-	systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend}.service
-
-	dobin nvidia-bug-report.sh
-
-	# MODULE:powerd extras
-	if use powerd; then
-		newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117
-		systemd_dounit systemd/system/nvidia-powerd.service
-
-		insinto /usr/share/dbus-1/system.d
-		doins nvidia-dbus.conf
-	fi
-
-	# enabling is needed for sleep to work properly and little reason not to do
-	# it unconditionally for a better user experience
-	: "$(systemd_get_systemunitdir)"
-	local unitdir=${_#"${EPREFIX}"}
-	# not using relative symlinks to match systemd's own links
-	dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-hibernate.service
-	dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-resume.service
-	dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-suspend.service
-	dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-resume.service
-	# also add a custom elogind hook to do the equivalent of the above
-	exeinto /usr/lib/elogind/system-sleep
-	newexe "${FILESDIR}"/system-sleep.elogind nvidia
-	# <elogind-255.5 used a different path (bug #939216), keep a compat symlink
-	# TODO: cleanup after 255.5 been stable for a few months
-	dosym {/usr/lib,/"${libdir}"}/elogind/system-sleep/nvidia
-
-	# symlink non-versioned so nvidia-settings can use it even if misdetected
-	dosym nvidia-application-profiles-${PV}-key-documentation \
-		${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation
-
-	# don't attempt to strip firmware files (silences errors)
-	dostrip -x ${paths[FIRMWARE]}
-
-	# sandbox issues with /dev/nvidiactl others (bug #904292,#921578)
-	# are widespread and sometime affect revdeps of packages built with
-	# USE=opencl/cuda making it hard to manage in ebuilds (minimal set,
-	# ebuilds should handle manually if need others or addwrite)
-	insinto /etc/sandbox.d
-	newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"'
-
-	# dracut does not use /etc/modprobe.d if hostonly=no, but want to make sure
-	# our settings are used for bug 932781#c8 and nouveau blacklist if either
-	# modules are included (however, just best-effort without initramfs regen)
-	if use modules; then
-		echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \
-			"${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || die
-	fi
-}
-
-pkg_preinst() {
-	has_version "${CATEGORY}/${PN}[kernel-open]" && NV_HAD_KERNEL_OPEN=
-	has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND=
-
-	use modules || return
-
-	# set video group id based on live system (bug #491414)
-	local g=$(egetent group video | cut -d: -f3)
-	[[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')"
-	sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
-
-	# try to find driver mismatches using temporary supported-gpus.json
-	# TODO?: automatically check "kernelopen" bit for USE=kernel-open compat
-	for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do
-		g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \
-			"${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null)
-		if [[ ${g} ]]; then
-			g=$((${g##*\"}+1))
-			if ver_test -ge ${g}; then
-				NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}"
-				break
-			fi
-		fi
-	done
-	rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
-}
-
-pkg_postinst() {
-	linux-mod-r1_pkg_postinst
-
-	readme.gentoo_print_elog
-
-	if [[ -r /proc/driver/nvidia/version &&
-		$(</proc/driver/nvidia/version) != *"  ${PV}  "* ]]; then
-		ewarn "Currently loaded NVIDIA modules do not match the newly installed"
-		ewarn "libraries and may prevent launching GPU-accelerated applications."
-		if use modules; then
-			ewarn "Easiest way to fix this is normally to reboot. If still run into issues"
-			ewarn "(e.g. API mismatch messages in the \`dmesg\` output), please verify"
-			ewarn "that the running kernel is ${KV_FULL} and that (if used) the"
-			ewarn "initramfs does not include NVIDIA modules (or at least, not old ones)."
-		fi
-	fi
-
-	if [[ $(</proc/cmdline) == *slub_debug=[!-]* ]]; then
-		ewarn "Detected that the current kernel command line is using 'slub_debug=',"
-		ewarn "this may lead to system instability/freezes with this version of"
-		ewarn "${PN}. Bug: https://bugs.gentoo.org/796329"
-	fi
-
-	if [[ -v NV_LEGACY_MASK ]]; then
-		ewarn
-		ewarn "***WARNING***"
-		ewarn
-		ewarn "You are installing a version of ${PN} known not to work"
-		ewarn "with a GPU of the current system. If unwanted, add the mask:"
-		if [[ -d ${EROOT}/etc/portage/package.mask ]]; then
-			ewarn "  echo '${NV_LEGACY_MASK}' > ${EROOT}/etc/portage/package.mask/${PN}"
-		else
-			ewarn "  echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask"
-		fi
-		ewarn "...then downgrade to a legacy[1] branch if possible (not all old versions"
-		ewarn "are available or fully functional, may need to consider nouveau[2])."
-		ewarn "[1] https://www.nvidia.com/object/IO_32667.html"
-		ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau"
-	fi
-
-	if use kernel-open && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then
-		ewarn
-		ewarn "Open source variant of ${PN} was selected, note that it requires"
-		ewarn "Turing/Ampere+ GPUs (aka GTX 1650+). Try disabling if run into issues."
-		ewarn "Also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html"
-	fi
-
-	if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then
-		elog
-		elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
-		elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. This feature is considered"
-		elog "experimental but is required for wayland."
-		elog
-		elog "If you experience issues, either disable wayland or edit nvidia.conf."
-		elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
-	fi
-
-	if use !kernel-open && [[ ${REPLACING_VERSIONS##* } ]] &&
-		ver_test ${REPLACING_VERSIONS##* } -lt 555
-	then
-		elog
-		elog "If using a Turing/Ampere+ GPU (aka GTX 1650+), note that >=nvidia-drivers-555"
-		elog "enables the use of the GSP firmware by default. *If* experience regressions,"
-		elog "please see '${EROOT}/etc/modprobe.d/nvidia.conf' to optionally disable."
-	fi
-
-	# these can be removed after some time, only to help the transition
-	# given users are unlikely to do further custom solutions if it works
-	# (see also https://github.com/elogind/elogind/issues/272)
-	if grep -riq "^[^#]*HandleNvidiaSleep=yes" "${EROOT}"/etc/elogind/sleep.conf.d/ 2>/dev/null
-	then
-		ewarn
-		ewarn "!!! WARNING !!!"
-		ewarn "Detected HandleNvidiaSleep=yes in ${EROOT}/etc/elogind/sleep.conf.d/."
-		ewarn "This 'could' cause issues if used in combination with the new hook"
-		ewarn "installed by the ebuild to handle sleep using the official upstream"
-		ewarn "script. It is recommended to disable the option."
-	fi
-	if [[ $(realpath "${EROOT}"{/etc,{/usr,}/lib*}/elogind/system-sleep 2>/dev/null | \
-		sort | uniq | xargs -d'\n' grep -Ril nvidia 2>/dev/null | wc -l) -gt 2 ]]
-	then
-		ewarn
-		ewarn "!!! WARNING !!!"
-		ewarn "Detected a custom script at ${EROOT}{/etc,{/usr,}/lib*}/elogind/system-sleep"
-		ewarn "referencing NVIDIA. This version of ${PN} has installed its own"
-		ewarn "hook at ${EROOT}/usr/lib/elogind/system-sleep/nvidia and it is recommended"
-		ewarn "to remove the custom one to avoid potential issues."
-		ewarn
-		ewarn "Feel free to ignore this warning if you know the other NVIDIA-related"
-		ewarn "scripts can be used together. The warning will be removed in the future."
-	fi
-	if [[ ${REPLACING_VERSIONS##* } ]] &&
-		ver_test ${REPLACING_VERSIONS##* } -lt 560.35.03-r1 # may get repeated
-	then
-		elog
-		elog "For suspend/sleep, 'NVreg_PreserveVideoMemoryAllocations=1' is now default"
-		elog "with this version of ${PN}. This is recommended (or required) by"
-		elog "major DEs especially with wayland but, *if* experience regressions with"
-		elog "suspend, try reverting to =0 in '${EROOT}/etc/modprobe.d/nvidia.conf'."
-		elog
-		elog "May notably be an issue when using neither systemd nor elogind to suspend."
-		elog
-		elog "Also, the systemd suspend/hibernate/resume services are now enabled by"
-		elog "default, and for openrc+elogind a similar hook has been installed."
-	fi
-}


^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
@ 2024-11-18  9:06 Ionen Wolkens
  0 siblings, 0 replies; 46+ messages in thread
From: Ionen Wolkens @ 2024-11-18  9:06 UTC (permalink / raw
  To: gentoo-commits

commit:     c82e85ffb3bae915fc2772a6c6705c0cf2b816e8
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 18 08:06:50 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Mon Nov 18 09:02:33 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c82e85ff

x11-drivers/nvidia-drivers: drop obsolete kernel-6.7 patch in 535

Kind of forgot that was still there.

Still applied given it changes the code in the "if not 6.7" conditional
that nvidia started using (meaning harmless unused code).

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../nvidia-drivers-535.43.22-kernel-6.7.patch      | 24 ----------------------
 .../nvidia-drivers-535.216.01-r1.ebuild            |  3 ---
 2 files changed, 27 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-535.43.22-kernel-6.7.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-535.43.22-kernel-6.7.patch
deleted file mode 100644
index 08833de8344a..000000000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-535.43.22-kernel-6.7.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Typically opt not to patch for kernel support downstream, but in this
-case it's only conditionally broken depending on kernel crypto configs
-and USE=kernel-open, then an (official) NVIDIA representative has
-responded with a fix in [1] which should be safe.
-
-[1] https://github.com/NVIDIA/open-gpu-kernel-modules/issues/574#issuecomment-1809283181
---- a/kernel/nvidia/libspdm_shash.c
-+++ b/kernel/nvidia/libspdm_shash.c
-@@ -89,4 +89,4 @@
-         struct crypto_shash *dst_tfm = dst->tfm;
--        char *src_ipad = crypto_tfm_ctx_aligned(&src_tfm->base);
--        char *dst_ipad = crypto_tfm_ctx_aligned(&dst_tfm->base);
-+        char *src_ipad = crypto_tfm_ctx_align(&src_tfm->base, crypto_tfm_alg_alignmask(&src_tfm->base) + 1);
-+        char *dst_ipad = crypto_tfm_ctx_align(&dst_tfm->base, crypto_tfm_alg_alignmask(&dst_tfm->base) + 1);
-         int ss = crypto_shash_statesize(dst_tfm);
---- a/kernel-module-source/kernel-open/nvidia/libspdm_shash.c
-+++ b/kernel-module-source/kernel-open/nvidia/libspdm_shash.c
-@@ -89,4 +89,4 @@
-         struct crypto_shash *dst_tfm = dst->tfm;
--        char *src_ipad = crypto_tfm_ctx_aligned(&src_tfm->base);
--        char *dst_ipad = crypto_tfm_ctx_aligned(&dst_tfm->base);
-+        char *src_ipad = crypto_tfm_ctx_align(&src_tfm->base, crypto_tfm_alg_alignmask(&src_tfm->base) + 1);
-+        char *dst_ipad = crypto_tfm_ctx_align(&dst_tfm->base, crypto_tfm_alg_alignmask(&dst_tfm->base) + 1);
-         int ss = crypto_shash_statesize(dst_tfm);

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.216.01-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-535.216.01-r1.ebuild
index f6b99ca641ae..9e36108889c6 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.216.01-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.216.01-r1.ebuild
@@ -140,9 +140,6 @@ src_prepare() {
 
 	default
 
-	kernel_is -ge 6 7 &&
-		eapply "${FILESDIR}"/nvidia-drivers-535.43.22-kernel-6.7.patch
-
 	# prevent detection of incomplete kernel DRM support (bug #603818)
 	sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
 		-i kernel{,-module-source/kernel-open}/conftest.sh || die


^ permalink raw reply related	[flat|nested] 46+ messages in thread

end of thread, other threads:[~2024-11-18  9:06 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-07-21 19:44 [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/ Ionen Wolkens
  -- strict thread matches above, loose matches on Subject: below --
2024-11-18  9:06 Ionen Wolkens
2024-10-23 20:25 Ionen Wolkens
2024-09-18 22:43 Ionen Wolkens
2024-06-26  0:16 Ionen Wolkens
2024-01-28 16:34 Ionen Wolkens
2024-01-08 21:09 Ionen Wolkens
2023-10-17 17:52 Ionen Wolkens
2023-02-03 18:15 Ionen Wolkens
2022-12-11 19:12 Ionen Wolkens
2022-11-10 22:22 Ionen Wolkens
2022-09-27 23:46 Ionen Wolkens
2022-09-23  2:05 Ionen Wolkens
2022-09-19 11:36 Ionen Wolkens
2022-05-21  0:38 Ionen Wolkens
2021-12-14 15:56 Ionen Wolkens
2021-07-23 15:39 Ionen Wolkens
2021-07-22 15:08 Ionen Wolkens
2021-07-21 19:44 Ionen Wolkens
2021-07-20  1:23 Ionen Wolkens
2021-04-21 12:22 David Seifert
2021-02-08  9:39 David Seifert
2020-08-26 16:55 Matt Turner
2020-08-26  5:32 Matt Turner
2020-04-29  8:08 Jeroen Roovers
2020-01-27 19:55 Jeroen Roovers
2019-10-22  9:17 Jeroen Roovers
2019-01-16 10:32 Jeroen Roovers
2018-01-04 19:08 Jeroen Roovers
2017-11-27 23:31 Jeroen Roovers
2017-11-27 23:31 Jeroen Roovers
2017-11-22  9:55 Jeroen Roovers
2017-09-27 16:26 Jeroen Roovers
2017-04-11  7:07 Jeroen Roovers
2017-01-09  3:38 Richard Farina
2016-12-15 10:31 Jeroen Roovers
2016-11-21 19:10 Jeroen Roovers
2016-10-25 19:44 Richard Farina
2016-10-11  7:22 Jeroen Roovers
2016-09-10 12:33 Jeroen Roovers
2016-09-10 12:33 Jeroen Roovers
2016-08-28  8:14 Jeroen Roovers
2016-03-25  3:30 Jeroen Roovers
2016-03-24  5:05 Jeroen Roovers
2015-09-20 21:29 Richard Farina
2015-09-18 18:24 Richard Farina

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox