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

x11-drivers/nvidia-drivers: add 465.19.01

New beta branch with no notable ebuild changes beside updating
systemd paths (scripts/units themselves are unchanged).

Closes: https://github.com/gentoo/gentoo/pull/20172
Signed-off-by: Ionen Wolkens <sudinave <AT> gmail.com>
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 x11-drivers/nvidia-drivers/Manifest                |   7 +
 .../nvidia-drivers/nvidia-drivers-465.19.01.ebuild | 410 +++++++++++++++++++++
 2 files changed, 417 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/Manifest 
b/x11-drivers/nvidia-drivers/Manifest
index 58b540cb337..14d78b979b4 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -1,20 +1,25 @@
 DIST NVIDIA-Linux-aarch64-450.102.04.run 80469462 BLAKE2B 
dcabed08bdd2c4c328794238e175e96831ceb0ff683c7727a1873b5aaf07612f997d47c915ef7d3c5dcfcd1d40e75f9a51a83fb28eb84d4200e7e5bc41245d9f
 SHA512 
6b0fcdbe8a0ef3a86357bcd7a48d38c2bb65d9608bfbde0fa270b7cec198acaf9b60d458406fc7c841c75c98089644e8dcfb87bd9d0d3c45bc77ec3c936d9371
 DIST NVIDIA-Linux-aarch64-460.67.run 112551235 BLAKE2B 
cc1166454f6e8771c7fe97010906919e9f2afd74ac86321006628f90f4d8dee033c3e09b2d9cac9063fe3fd313c0b529b347bcf38c051588ca7a972617c45026
 SHA512 
6ba17844dd215967f2f55a6620535464f244075a13f4b2b6d0ffaeeb6d97397fae0ba0de032d971847556d7b78ac8a1010ecec5127f45eb7ec73db87b1507ca1
+DIST NVIDIA-Linux-aarch64-465.19.01.run 174150951 BLAKE2B 
7344404cff1ee5fce5368de718fdbb1fd392f27c102e09cc63c9cefd487d9041109ac998bce7a4cec86d0b92d5bec77040410bc9b717b49bebbc72810d5f8a84
 SHA512 
e99c18304522b3bf961430885482fbb7892cbc10e0458f8f813f5ebf84391c6e53e946ab8c6c6f0e8ef78b89c6289abbb5c2f655c9991f4a55507b413b1ae1f9
 DIST NVIDIA-Linux-x86-390.141.run 49589744 BLAKE2B 
304672806b89885adbf8459ea99ca872769e44a42ff041a5b79ef05d113d7717f505f543441e7a2fc6c569f6d66391f0380a4f23f3e68108c8de817bf251f850
 SHA512 
6dfde3b54520070954b45f6bc071251084e1741f55e582b1abd806eb367e4b9ce0015615bf6a887fa784d075b3db08b6940da4163b960969773d1bdc52b4961e
 DIST NVIDIA-Linux-x86_64-390.141.run 85330901 BLAKE2B 
7759d8cf6c9a75607b9a3ecd53cdd6f6a93f2f372d740a5a87d4d3f41a22f3bd953cc7dd6a0dc0e23a829ec86df8d65b9de499a76cfd4266a13b0aa3288aceb5
 SHA512 
5448d70e6e64a6403e61a004d83c69a442dd8ed0d61da3a31d3e3b7943c06c559a66b0f8d135982868ecbf209a965f60dae1a633367630b4d9287f725bbaa53c
 DIST NVIDIA-Linux-x86_64-450.102.04.run 141391114 BLAKE2B 
019f928464b23d2a86bfdd255b7651e3cfe2b0b6ebf58d1b4a6ba1f27990e1d050d1e2429ba4aa60b966b04e775939084a04d82d1dd3482a10b39375b17b1c31
 SHA512 
1d13de540da36274a360ea6bcd1ce01eaae103fe417b42aa8f9ac757c382b06da455a78cf6798310179f90e2afeadf3a8c9f3398186490c3c0f9079021e850ed
 DIST NVIDIA-Linux-x86_64-460.39.run 178310565 BLAKE2B 
65931f34ff47de02933797f60128c66c8774f3b217b79e82f781cd50560835ec79c37b7e63fb50231a22646f0cd7cf968d1fbe1ec6c2b3732a1c565b68de7bcb
 SHA512 
9275a58ff0e72c3ee033bd18fa9e9dbb0203d2961a63e7cc04444889118eb4029c60bb10c2af8f230c1aa4aa30769131ea8c01f3bc4e7453336ad9c03ba23b42
 DIST NVIDIA-Linux-x86_64-460.56.run 178496173 BLAKE2B 
8f84a403ccaa9a92186cac9fb2dee9600cd29915cdacf475b6a1105772ffd52c671ef217a1201fbcd9192e858ec17796fd77b817887c79c43c266d32671fe7d0
 SHA512 
a61855576a27cdd2e48906ecb49cd1e9f88d14a8358aa4bdc57d59e2dfa64b394b2dcee45184d75e889fac6ebedcaaff902a07428c7f9eb011cf265228c6eb4e
 DIST NVIDIA-Linux-x86_64-460.67.run 177691692 BLAKE2B 
25a7d87cc128933a98100d7c5ef37f93c3a870c096eea3228a28ef79d712ce104608f9422221cc1eadc21dccbbc8bc41ab1832795cfee75e217600ed0d76489e
 SHA512 
80fdc023a8ce80e3a103896f28a5564bb43903af6bfc719f755c48eb225e79ec6abf219ab20eb80ada5808ef932ef5fa0fe710c6e0a07dd8a248daff2ba3b898
+DIST NVIDIA-Linux-x86_64-465.19.01.run 259853124 BLAKE2B 
04d5d738a99e313d9c0c8aa074b28ff744b3d16893f26d4837d7440e7fa51c3182101f7cadedcb7b13f01d0e6dd612c931f2357e87003966cfc5b2c7f4398079
 SHA512 
b4ececb6069ec961a4bf6b50c3bb0d7ca94add13e04f9dcceaddc6d3267f6dfc5f020d14e49f37e6c09ec3b47b3f44f0f44620e1ab4d25f7739514a07769a67d
 DIST nvidia-installer-390.141.tar.gz 205299 BLAKE2B 
b95ddcf9a8d61247572d73faa04558564962782b0eb222601315d741d1ee71fa0636fa87d31105ecc5ec61328d3174a3ed646046e02b6b5f29f071215a0e8bdd
 SHA512 
3848a4ec17510bf4d3060e5ef8aafa1ad921215ec39d26c54b3bbdd8a5867c46e01d247b24b05ad6906fed7fb4ae6dc37346a7da6e5aae88b5b47584c0b07a02
 DIST nvidia-installer-450.102.04.tar.gz 197642 BLAKE2B 
5d94dee76057eaea236090e2eb8cba4fdf90f4959a0ae26805bc771262a0eb05640846c191f2a5a5485e0584ae07ba64d2989201118594df747c3ac13503f90d
 SHA512 
2c1608c0dd971122978a395edc5a51de6cb76d72aac45b4f9303e1a99e292ec0ddd9c03f2e95b10c357c0da1dc2824197c2553828eedbd0c4434b431aa593f6f
 DIST nvidia-installer-460.67.tar.gz 198484 BLAKE2B 
0eaf3e3eccd6749e4fe89394905dded58e739f42cbc33c8a91575f4505030a216670fc8c0fd4d1d42659acf301c9ba59d4052a80c6eba6c5db84ed022acb2620
 SHA512 
8fff0fa13a82cb7eaf2fd1d05be509e9124e67bb05810f8937fb1f16c4a2362a5c1a50bc9a5155cfc90a9bbcee38a54fb5ae0ae164e205900a49f6d21779d54f
+DIST nvidia-installer-465.19.01.tar.gz 200374 BLAKE2B 
acbdc0d2048461878af6b0f9ebaa08ae89d0e4c04d4f58e2639df8979665f08d1e29819fa02c4e24a1145f884ff8f292e74835663ec917d9e94a2791ab461054
 SHA512 
5b300c600753e04c9c6e2f2a3bdc42d256b8e21b20037928240ea7f4f4ebb96801ba0f515a0a047479833800672699840965edc1c95d2c4e61d6ad3f6258f578
 DIST nvidia-modprobe-390.141.tar.gz 39965 BLAKE2B 
46c01ec3e53569454a032e42561a81154712485ffb11d0393d9e9007a3825a33c8d045ea7296dd8465ad9b2cee36a639274c55ff31c70e93d334ac9fe724f7b1
 SHA512 
c0abec334fee4293a55a43edbcc6a7a8cd8ff6b6fbb954b428182542a24eba90f47100977c84ea9cbe557a39fc5fb90677b4f2227f49a6f30a56f6941508f40e
 DIST nvidia-modprobe-450.102.04.tar.gz 42139 BLAKE2B 
79218a4e76dacdafadd31e45a27d3578924db6a74894064ce856498121fbf9d80e7b07046dfc36426340e0cefd78b416b017202bc93858fdf8cc77ba335bbaf8
 SHA512 
ac9d8d8849606d7ef3772570c976e5efab36f66e83a62f959b28c88cd798bba860052033dc5eb18c0f9e4a6f2d8e6082456d9b1586977a23f240cfa3a750d7ef
 DIST nvidia-modprobe-460.67.tar.gz 43140 BLAKE2B 
8243d355f9d51495c9d09f25ccbcb39c0a6ef472cbfaded98f10818fae655e1cf62ff2edcf40baea72b8cca9eebc947742b2516bb057410239193201bb843538
 SHA512 
16c8239b54988622196e0eea113173e44ff8b60cdcdf585bf859e6440aff2c6699bb107962776e69056dd7d5e3bbd6289ea628a2255ac27e22ef79521e9baad3
+DIST nvidia-modprobe-465.19.01.tar.gz 43385 BLAKE2B 
a34a74fb81cedf74acb75d0b8a844ba2fa6541037c7c4baa769acae34305e970a503b94a178ce4927a2daddfcea25a7cbb7f37767e26e7c70bc6d2882297c048
 SHA512 
3e31f5792d8377d3ad8d069c4ea423adbdfb3fb5daa6ff3c4b1ad32b07e062c5239db60a6a002177cfc7bc99760b3ae5f53e078daa80d58d0f1daf5adaf8537a
 DIST nvidia-persistenced-390.141.tar.gz 55984 BLAKE2B 
c4e889d15643f6e8a4e37b32d89e14acaa792c681863c74281b17e414021dc56e4692e91e7552762ef8b8ef977284ee2f307b14216a2562a9d30b2ab7a1ba522
 SHA512 
d9ea32c842d8d13a59128b28ce985fe3a421d2848eac30fc8a671a391c63516b58c46d3c5b21403b4e5b016577d23aebaec1f5b4e59b25a20668120f52e231a5
 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
@@ -22,6 +27,8 @@ DIST nvidia-settings-450.102.04.tar.gz 1229675 BLAKE2B 
166b73a0e9fe1cc1c16f83128
 DIST nvidia-settings-460.39.tar.bz2 1060391 BLAKE2B 
badfe9e5fa3ca7f5389369b01f839aa37b687e99bac47663b320602ada4d4e8dfb7c6fa4f64cee358a25ced7d9393ddfa4242147d9b645ae4fbd1b68310f3363
 SHA512 
a5f01d2a627695932399804776923a90050ec66b19c9d95ed34d11fc79e41604fe25474ed7b7bfec68b2115dd6fccb444b66427ce78c1d67b1b01f072bc8892a
 DIST nvidia-settings-460.56.tar.bz2 1060604 BLAKE2B 
cd1480e42ab2b25b399f19b458a1d5252d1b77d263ddecbad2d61f0445ba9f0ddf81fc944ac1136c273dfd1d21d06385bcfac9bdd7a7dc02f75302a6b8276df4
 SHA512 
018eb3cb7f25b926aa620201979b0efaaa82e7f036c4870a1e1234f5aac3ab9cfd48846d7eedd7ed38c3035eface3f2afe1a0d5de7a67e53e6bea760aa99fa72
 DIST nvidia-settings-460.67.tar.gz 1233189 BLAKE2B 
33ffceefea4e184cb1873cdce97db26637e87cd20c82bcabcbfe88bcb084ac3d833ac5688cafa33a5a89383040d5c1c5d46de9c3f9a8ba6174574aa57aea2e46
 SHA512 
d1828379aa477394747ae3e5d3505e864d38a349dd159a04cb263613380afea9aea2081300b0d2b8ae205b800bfe6e8ba504e612989da394d757f00e4399b617
+DIST nvidia-settings-465.19.01.tar.gz 1233866 BLAKE2B 
297ffe66639bd4221f5b780abb784f640553f0f7d4f9bcc254cdf54fa6dcc98ac197fa76178f66b626bcef8c4fc6c2c83c3c2474f81a2c5124df0a651f878663
 SHA512 
90f2786941ee062f4f8e7f80e0174620d8aedca17164e7e466c77733f29e891ffce9b08a09a75c25a219546efc816ca2fbb26b3b142522e89e495b7b90bd65d1
 DIST nvidia-xconfig-390.141.tar.gz 140293 BLAKE2B 
08ee93be953f75dbe078c557af7c062092ce8a3b53af0735d43b7feabe6d1c99390b9533027fbc5017d207a70dfa5aecf88d211905bf8f0e846f769a6ea16c2b
 SHA512 
9fedee2f720d86bd24e393328249bf970a1f242b9e750543e757eb13ca30f6ecfda6c63441093ab96ae28d5f38d4e55cc6de6316eb82d2a2f33074144a1eef2f
 DIST nvidia-xconfig-450.102.04.tar.gz 141072 BLAKE2B 
0d299429ccb10f351de0e7b81fa7ce8199da83db346483a7d791fd77276ff6d70b46ba153cdf6503b945d80f4a0108a6ec02a3955c9d7310de901f0e3b1e6e36
 SHA512 
f5752d7c49d1cb3c0061caace8cf5899c8d61e76f0b7080e05d70cd77758496dd8646a1551d93a12c8ad5f9fcfd53a49c51206af96f36ec1eec7ccfe59505f2d
 DIST nvidia-xconfig-460.67.tar.gz 142323 BLAKE2B 
09c7281de09a2c2968b5f4a48eca63110e6db988429c844b55f8efc28fbcd9d44c79ad47149c25f657c2a98ae7576c01b2c9b7f643b8321fe1393adc571ebcaa
 SHA512 
0e65c81ec40d3eaeec036fbd8f46a3052a75ff0ad200c58438ff6c782a5764e62e51d03b4a2080770c32522894641288ac495f62bc39c3d5658b1ff87c9f6cdd
+DIST nvidia-xconfig-465.19.01.tar.gz 142552 BLAKE2B 
41f7fb27c0af0b48e9cdc48998a32e81dee3127cfab36c2ee6ff7c2ffcf3de1fb017d3d0900fc32d75f9ee6236c256606a5eda6df41f6b7a915b881767ccd218
 SHA512 
d36a929248302a61b5e42afd555cabac6acf9a9bbf4049706746220ef6e7033401b6210db15d7bd07b1bf249e2c946469695057780f50369af17e9f5019e2183

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-465.19.01.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-465.19.01.ebuild
new file mode 100644
index 00000000000..d5d23150fdd
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-465.19.01.ebuild
@@ -0,0 +1,410 @@
+# 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 systemd toolchain-funcs unpacker
+
+NV_KERNEL_MAX="5.11"
+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/supported-gpus.json
+       nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
+)
+HTML_DOCS=( html/. )
+
+pkg_setup() {
+       use driver || return
+
+       local CONFIG_CHECK="
+               ~DRM_KMS_HELPER
+               ~SYSVIPC
+               ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT
+               ~!LOCKDEP
+               !DEBUG_MUTEXES"
+       local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but 
needed for Xorg auto-detection
+       of drivers (no custom config), and optional nvidia-drm.modeset=1.
+       Cannot be directly selected in the kernel's menuconfig, so enable
+       options such as CONFIG_DRM_FBDEV_EMULATION instead."
+
+       if kernel_is -lt 5 10; then
+               CONFIG_CHECK+=" PM" # needed since 460.67 (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-460.conf nvidia.conf
+               doins "${FILESDIR}"/nvidia-blacklist-nouveau.conf
+               doins "${FILESDIR}"/nvidia-rmmod.conf
+
+               # used for gpu verification with binpkgs (not kept)
+               insinto /usr/share/nvidia
+               doins supported-gpus/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 systemd/system-sleep/nvidia
+       dobin systemd/nvidia-sleep.sh
+       systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend}.service
+
+       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 "s/PACKAGE/${PF}/;s/VIDEOGID/${g}/" \
+               -i "${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
+
+       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 to reboot."
+       fi
+
+       if [[ ${NV_LEGACY_MASK} ]]; then
+               ewarn "***** WARNING *****"
+               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
+
+       if ! [[ ${REPLACING_VERSIONS} && $(getent group video | cut -d: -f4) 
]]; then
+               elog "***** WARNING *****"
+               elog "Users should be in the 'video' group to use NVIDIA 
devices."
+               elog "You can add yourself by using: gpasswd -a myuser video"
+       fi
+
+       if [[ ! ${REPLACING_VERSIONS} ]]; then
+               elog "For general information with using NVIDIA on Gentoo, 
please see:"
+               elog "https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers";
+       fi
+}

Reply via email to