commit:     6cd9a860339a4024dbf8c6f9d74c33673245128c
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 31 11:40:50 2018 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Sat Mar 31 11:40:50 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6cd9a860

x11-drivers/nvidia-drivers: Versions 384.130 390.48.

Package-Manager: Portage-2.3.27, Repoman-2.3.9

 x11-drivers/nvidia-drivers/Manifest                |  12 +
 .../nvidia-drivers/nvidia-drivers-340.106.ebuild   |   6 +-
 ...40.106.ebuild => nvidia-drivers-384.130.ebuild} | 324 ++++++++++---------
 ...340.106.ebuild => nvidia-drivers-390.48.ebuild} | 342 ++++++++++++---------
 4 files changed, 402 insertions(+), 282 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/Manifest 
b/x11-drivers/nvidia-drivers/Manifest
index f6152c8c06e..11c33d7a30d 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -4,43 +4,55 @@ DIST NVIDIA-FreeBSD-x86-375.82.tar.gz 59566154 BLAKE2B 
b888b08cd434899ff73f04a85
 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.130.tar.gz 63719036 BLAKE2B 
971006aec05f5bb8f815420f5e1a62103119ae0192a275cc4df3034c20908ebcb8d5a886e030ec06a854102a79e2b31d53c2fcbf3450cb7fa0d9e1f64eeb835f
 SHA512 
54d6d0776190d12f2562fe0ffdf82661fb8a0a4d3d575386a19f5dd5890a7ae4d2ad6704253e7cded62a9a0e1880f1bee9e6bf3aeeb8ce7a265a3d077b0c8018
 DIST NVIDIA-FreeBSD-x86-387.34.tar.gz 64228643 BLAKE2B 
80011df5d037cd0a2a6faccf6c990e6019cb85c906c1410d4dde033a8a945ecd46e80a1315e46dc05fa47003eb328c6b8e8e41e18dce60942e645c0e6b813717
 SHA512 
875648459a149d506b20eb7105e73086e1fb51dddfbd8b484b8cc4793682c088ba16b3d374b0e807738f7aa7489dd9eab2449f70bc9feefeec0bf3a88025b9ef
 DIST NVIDIA-FreeBSD-x86-390.42.tar.gz 64258071 BLAKE2B 
765b55676127ff64d90ee65bb3d4a400b1f15f741338a09b09a926fb465b47b6d7036c6c761d64b9dee76ad4cfacb97888a3053bbe62c769cfb3155e7c13d879
 SHA512 
1271e3bdf55b2c03e63083b3b867fa03d4d2e71ab2a8a0100bd137acedb1fef2416045079bbccd0fc48255496128c37ab619fa5a3e7b992b9d96cf288bc6e4b0
+DIST NVIDIA-FreeBSD-x86-390.48.tar.gz 64254145 BLAKE2B 
ce668715fbec4f54eb9946fc2f5be56c132da8a2a65678b8aac0e3c0a55f60298212be4a5f6eca90a75d50ce3b9831521d02e7bd004d5c3c61fb5a460c7dc00a
 SHA512 
7255d628be927f17f1108dae458d2d3844b46c42f460bdeac3dbb1dec6b5bf76d2790752e8bfaae35e11d49adb2a43ed1d8fc6a9325152490a21dac8e5c1734c
 DIST NVIDIA-FreeBSD-x86_64-304.137.tar.gz 36474676 BLAKE2B 
bd75e2916d34f76566d838406419991a860118830366f0297fa63baade3a99f637dae601d6bc6a051596222f2715297dffbf9b81ff5478b030741e6c8a09bc13
 SHA512 
f0ae7ccea417aceedf34bfb9c96fd79b31cbf74a8fa59d5199b0ad7b81b8a4aeb66cd4801a45cc37f836979cb4267aa69e08517beaa9b8cb9c66a477d02ef8de
 DIST NVIDIA-FreeBSD-x86_64-340.106.tar.gz 61169129 BLAKE2B 
0a8e0deb883025d20df5165f39042bcee5d75ea78b19733cff014448c8d62022dbb98af2adebd13485e281a52c9a1c4986ae020b4eb6a821a411836e7333d4f1
 SHA512 
c2d0a0b1856522b28243697db22ad99d8521b00d9dfa2da724f2ee243b545b7dbf24319d9a0939855bab29251f001063391a760bd3db750bf9950ce1f9376847
 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.130.tar.gz 62901704 BLAKE2B 
50be9af398f88caa012a7af702ed3d150bd4d0e5aca862dab09f30038906d79254999079983fe242dfe8158549e25f3a49ea8ad07114d8d3bcd01c8a076e8c8f
 SHA512 
ad1a32f8268003d165570137947f517c82074b0851b86a1928f016de95f3dacef4d48f4873f00d603d49b44fe2b99d65295ed4e655d4b16f71c284994a1ea148
 DIST NVIDIA-FreeBSD-x86_64-387.34.tar.gz 63387097 BLAKE2B 
53689ba098b4a4de08dca056618ea533c92d17137ec954dea0ae71e1b2c825c021979871e4ff82c820be0a78d3c365f282b760940ebe2caa1ca5bfd2453e178e
 SHA512 
0a905ee72ee6f4e9c941e5dd1f7cddf96bfb20c6da32fd05599258e1bb154f68463d775ba8ff4f67f0d4b8e637e9ed9624fc9a4873a1f2621dc86732f0d6d70d
 DIST NVIDIA-FreeBSD-x86_64-390.42.tar.gz 63578748 BLAKE2B 
ebae1724c8a8125c15dff5466677b4217586a2851bd8f8e831b55e236b00bd68ba421b21da87bf8389b17f59069482276c0ef923f85d47dfb701cd6e5fda8a6b
 SHA512 
0fde34e642fb92d099166530cdf3eb6301f11068a4780decab33c68e046aea58904f1e8fd2189900a2b140e536933de418b27a2d40e1d7e486d3df1143370007
+DIST NVIDIA-FreeBSD-x86_64-390.48.tar.gz 63583858 BLAKE2B 
bce8b6b7c739b5aec98ff919f3b6171d73f70179d6af6d7883b574d815e69de7bad9f0d774e4176385bee31181ff9e6ea510115aebe912909ea86bd9cc825aef
 SHA512 
7de36ad359a0640982467fe1178f33a4694cf5f8ec8385cc01ecd6947c5e83e4d603b7b3c90cb6ad96c4e78c1af1bab99e74f70690540dab3a22f4b77cf14434
 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.130.run 28899034 BLAKE2B 
4f104243e87d0688d5f234bcadeb501914394ca5ae29c0f7ca7ae8038982c7df14652a1b85fb62a3466a6d4f7cda95c9726367bfd8ab1bf0b73f3fa617418276
 SHA512 
bd7be99881295f4ddf92b8c6791c4315c7b8699cdd346247dd54dfeb48ee61a40597483379922f5e3d0b28c9b9b9e75dca91c535e4695ebe57734c26f1484f61
 DIST NVIDIA-Linux-armv7l-gnueabihf-387.34.run 29406773 BLAKE2B 
af27fb1bfa8e432c83220f88c57219d572dfab2d3624c8702759a747f25ff962dba7c39028af5746e04c913c9a53dfbec8a46801bfa7e38df65a8823c4858cca
 SHA512 
cb631dc3b851d84881dfcabee776c68a935853d03f21595acfea84a3efbc85276070f9d0958c0bcced1e66f42f25ecf3fd7d615c715274130ca24426da678c2e
 DIST NVIDIA-Linux-armv7l-gnueabihf-390.42.run 28680665 BLAKE2B 
41ddd2870a6ac128b4988e724481fc43d1df902a6f87438170b39f299ab190e0facf61a53c9322f1f1ea3b9386b0df88c59beb600e44056c1c1217668f9bc9e1
 SHA512 
7c5ca46cce345d53f0991b6076ee62a2e777e5cb2b5b2612eaec88fb0d4f53e66d88b4978dfb15f23a80af57f1834dd9016daeb1d3b329cee1f4e0777afb5979
+DIST NVIDIA-Linux-armv7l-gnueabihf-390.48.run 28693609 BLAKE2B 
7d26448fc72ddb6919582557ac6e7ee6b23acfd441b62cea2bcafa79a75e15ea2c583d6462abd3f18b08ca150dcaae6e881ebe4b7ede84a1e32bc6da4675c380
 SHA512 
36a8857a586edee40e6b5c5c19fef3464a00b1f13b0e06fbde83bd1e17ac40ee3d6fda1c8c5cb52f8987b35c79226bebbee07bf05c5bf11c42388dcee76999a2
 DIST NVIDIA-Linux-x86-304.137.run 41504115 BLAKE2B 
5938d4df818947e5576172c0ee9bfa42a2fc49a7a7a2b14128cf3b967dfea6d4523901b33283284d450cfadc2c6d72a82a1533b27ebb4b542b6b1454fe8ae960
 SHA512 
021c5a88d50489aa0a1c7eac14259e23542b93578ae339995a2e38b786d06d239968c07933cab3fb78a922cffc7e213d6fa3fe07e34065a9c7f03e24f8729370
 DIST NVIDIA-Linux-x86-340.106.run 38816967 BLAKE2B 
b3ab5613359b43eaace36de9a8ab753df954bdf60e5acfe168e270474e0dc400acd46b5dcec809fad3d59babdf52988b3b5a8c20e8a0253b6388b7eb60ff4ba1
 SHA512 
923da7d61ef89a7bd83e0223c72fcdc556ef31cb97015a129a3adbdc3aad29dbf49f6fd23dc5188a53722e22cf4ba35c6a98e6ca9fdc6c24bb72ab87153d8bc4
 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.130.run 47539521 BLAKE2B 
d0b84aa6e0a41d7202cce247a419adad5c94d0d98feb83594644d8e0a9426d0c07a5b5889297bc830c7456a4e8cc165a3b23c004e83cabad1000bf5a6e1a147a
 SHA512 
0ed01818606eb7309811a3cb0ae71e9906e318d579dfd85bafcbae498a27f801836c1f1eefee6791ec5d9c6a4c41d244c43b8329583ae4991b45171cac99638d
 DIST NVIDIA-Linux-x86-387.34.run 47797853 BLAKE2B 
4ae211ee00e09fe385f24e05cfac3af28447ec18e7a7f53e7f310c210ec22f60094be087aae45d0ea99c90214a07d3c46ce6867984ac0ff6e56559693fcdf148
 SHA512 
ba9362123a75f85a0a5a9dcc95c06bcb350a8dff2db864db30a73172db44006fa39eee8e23cf959ab2012b61b922d1f0d7ab225329815737819f27d1be300b95
 DIST NVIDIA-Linux-x86-390.42.run 47248228 BLAKE2B 
1a9ca86c8e449627d68e474f0c4226d55839b27d06c630a059f1a36007b37328b7be2ecf12a94b82722e088b387ef943c4e117fd1a35743b053959160950e7a7
 SHA512 
079cfae9ce318e30d8699c7a1e9b8fc528382be68605ceea16b5cb671d11588098af001b6cb4c66c904a248193742efc450e18101f9dda73c1ca101ab8aca2ce
+DIST NVIDIA-Linux-x86-390.48.run 47374800 BLAKE2B 
a17c85d141a5442cb9f5df7cd58d4f377f9deb74e214009af9d3e9a845c6d13910f33206e1d546eb9f8287f4ddcee7ba139acb86d02703c7bca33946d5b015c4
 SHA512 
9d80616abbf1f95c89bb3e6bda864708adc887a62ccdf8865e956c305bb013b0e54ffb3f495805363ee60a9115ab5fb38adf1534750a6afb69a457a4d034daeb
 DIST NVIDIA-Linux-x86_64-304.137.run 70087133 BLAKE2B 
8db0ade7cf64231ae11e6fc55a16a68a2f7b11a8bb7debb49799fee96eba06a3062b97fe539b093727623a1ed1067282813de047c2aeb89d93bf35a97c71aac5
 SHA512 
d7fae1e486005ffa2f2bf7f14f901bf5156fc784407a9acfea584f49bdab92ff5f4d0fb66c4c5b2800a461fc06aebb7d760bcb59f69ce4f2cb4e03e11816b3e9
 DIST NVIDIA-Linux-x86_64-340.106.run 69987642 BLAKE2B 
9b5644a58169557bda2ca6b367909bbbbe9c94ab869a91a4df8f8446a1e66f051f8b9c67e10d809d7e7a319fb318be3c5d0f35862cb315fdaf5623ce8794efb5
 SHA512 
64474a2dc664142868125df3562ccb676cef02659c5e45d570a2f00f2ab172ba3e61ea6ca42faade1747516c9a0c8b2c4e7cd3037ee90fb072b0c5cae45431bc
 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.130.run 82260837 BLAKE2B 
55b6f3627680c881821f5d20f05cb6c7941b1deebf28f22f6712cac73d07e6202507c9f3b98eb8fc59ca8ed0c6aaa4819db5fc5a331f4505887dac6f31774335
 SHA512 
301fa7d9d73a0654e0090bf4bae98896388c1f52453f1b886e320e36765dc529f802c509a2d518714f2b348df59f9c9048e01b3874819bde4f53cf98aaa2cfff
 DIST NVIDIA-Linux-x86_64-387.34.run 82784271 BLAKE2B 
b7140d5d6a693892df50b3ad2e20387673dec6b5ac609cc0300bdc4b4a93ca94849255699126e4d55e67f10e488bfe6008e987197ea239b1a1b643b4ae5c7808
 SHA512 
6742768f1258a028c9ba56ad1d72f27d7eea4b6bfd324ba29c7f057ab5819816bd728aeaf2a8058031dadcd4c51bc6d08f0e0e0e26c68ed57955e90d68ac5a4b
 DIST NVIDIA-Linux-x86_64-390.42.run 81836210 BLAKE2B 
a72c581b3aadb234d8e5230fb8d1a4cdbb03aa43434320e6cb3ef7b409dcc299d64b21b7c822736760fc12193da2d603009b8353312573b2b2a16311a88fc96b
 SHA512 
6cbf02630ac79a5cbb37f442f4def2a196b4a9d2a3600b0f5cdc3c148dd59d07994a2cee2efe0ac4139b6543698331c07f015c37b391d4f00acab7b2f033ad18
+DIST NVIDIA-Linux-x86_64-390.48.run 81341723 BLAKE2B 
0b787e7f667bf1edb6e5c4c1bfc7c6bea2546208148f84f044c405a857bdbee5c8fbeb4ce325375acf32b4d27d8a10c7f18fbcd880afe1e1e06f31997642c092
 SHA512 
47f4bcc0d88d1e80ed0c03cacde96301b1c657bec88935ee2edf9b96726620f70c747a174f1a8725b56f4812961878c01df02c249ac4810dc4aedf62d1152a7f
 DIST nvidia-settings-304.137.tar.bz2 1481361 BLAKE2B 
cf52a55a34eeb03a685a683487af6a198ba467dd8ba9983cc75624a37a226373cd931d98e8448b7b8ed430c54be2118c7b240ed2a9100b19bec5e832e2f6cdad
 SHA512 
676d1f70c9a78ee234f5f1a283412430a386fa604de211afba02806a45906c5e246a002989b724d74752178d28c92a268de1c98d4c87876797d991253f16b0cc
 DIST nvidia-settings-340.106.tar.bz2 1549841 BLAKE2B 
3419467424bc05a4a36f588e326eac4214250686f54c6c440c9a46bab80b15dee77e65d5880ed4338c0fc421306844d20a4dda0d5151a8d49441ef5048ab9bf6
 SHA512 
670f8469d5127f0966794ed822492f16f7a84656530d0b96f1ccdc915e6c588e9f1417b7ce1cc741df256383292820affaa10784ab748575f4adf2f98f961a27
 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.130.tar.bz2 1633217 BLAKE2B 
ffc1381e680e94aee95752074c39163e48082615f92c6184c01fc7d21e20bf18308d30960db0db602baf89b34fdd295a715692446d21fb2491056ec707e8b844
 SHA512 
3d878552a78234347f4e51920e8358e56b42d595375e8fd2b0520c3495b02d6fc3877d4346354145c420acd79ff1e9607c312330b2a2e27781a3a576f8860939
 DIST nvidia-settings-387.34.tar.gz 1267616 BLAKE2B 
62d2fd329417f54bf384918889603921065e0ef6d4fb691e914534a75ab0062a17d8f886c593cf772d29bb6b56ce30aaf7b1548191b2f9ad5fbee71770ed5308
 SHA512 
559c859c0740575ab93edce013587250b98d7d2cd55198b5103fe97423d31ed9f113d83c240c402404de88074c285a07e46342538610d3d5dade7bed59d60090
 DIST nvidia-settings-390.42.tar.bz2 1109291 BLAKE2B 
34eb3712286c5dccf268cc478a90f37d0fe41a32d39226973c913bb50f1f9d4943f7c49c5b3d3a5f4726209f1b6ec0a6b0a8df25a33155c4fce1b71f563b06be
 SHA512 
5907aa76cbcd136593c0b517c0a6c08764d9b14a90fa0951278fdbaa6c44c8d3149a902bace1f8203ba621af376030bcf7c51f3579edb1cb3152a97eb443134a
+DIST nvidia-settings-390.48.tar.bz2 1109673 BLAKE2B 
5aae2556185cc3a1fdb0f0bf051108661c53868a41d38b46223e4e63447c57971bc565059f107e8a4474356bffecce359966621f463d529c6fc59b5d6706cf26
 SHA512 
8252f5258e0a3533645d78b8be6c08c5362421423bf4c8e648a4c11ecc1ea2ab56eca07e51e5064dcfa1e4d61b64f837728091bf3ce244526baef58eaf20f1b9

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-340.106.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-340.106.ebuild
index cb601342d6e..44c8c619b85 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-340.106.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-340.106.ebuild
@@ -78,11 +78,11 @@ nvidia_drivers_versions_check() {
                die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
        fi
 
-       if use kernel_linux && kernel_is ge 4 11; then
+       if use kernel_linux && kernel_is ge 4 15; then
                ewarn "Gentoo supports kernels which are supported by NVIDIA"
                ewarn "which are limited to the following kernels:"
-               ewarn "<sys-kernel/gentoo-sources-4.11"
-               ewarn "<sys-kernel/vanilla-sources-4.11"
+               ewarn "<sys-kernel/gentoo-sources-4.15"
+               ewarn "<sys-kernel/vanilla-sources-4.15"
                ewarn ""
                ewarn "You are free to utilize eapply_user to provide whatever"
                ewarn "support you feel is appropriate, but will not receive"

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-340.106.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-384.130.ebuild
similarity index 62%
copy from x11-drivers/nvidia-drivers/nvidia-drivers-340.106.ebuild
copy to x11-drivers/nvidia-drivers/nvidia-drivers-384.130.ebuild
index cb601342d6e..bc0b31a4f6c 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-340.106.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-384.130.ebuild
@@ -5,29 +5,39 @@ 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}"
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx";
+
+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}"
 X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
 
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx";
+NV_URI="http://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 )
+       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? ( ${NV_URI}nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
+       tools? (
+               
https://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"
+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 )
@@ -35,38 +45,43 @@ COMMON="
                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.4:2
+               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}
-       app-arch/xz-utils
        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/libvdpau-0.3-r1
+               >=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}]
-               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}/
@@ -78,13 +93,13 @@ nvidia_drivers_versions_check() {
                die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
        fi
 
-       if use kernel_linux && kernel_is ge 4 11; then
+       if use kernel_linux && kernel_is ge 4 16; then
                ewarn "Gentoo supports kernels which are supported by NVIDIA"
                ewarn "which are limited to the following kernels:"
-               ewarn "<sys-kernel/gentoo-sources-4.11"
-               ewarn "<sys-kernel/vanilla-sources-4.11"
+               ewarn "<sys-kernel/gentoo-sources-4.16"
+               ewarn "<sys-kernel/vanilla-sources-4.16"
                ewarn ""
-               ewarn "You are free to utilize eapply_user to provide whatever"
+               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 ""
@@ -117,9 +132,10 @@ pkg_setup() {
        export DISTCC_DISABLE=1
        export CCACHE_DISABLE=1
 
-       if use kernel_linux; then
+       if use driver && use kernel_linux; then
                MODULE_NAMES="nvidia(video:${S}/kernel)"
-               use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel/uvm)"
+               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
@@ -127,7 +143,7 @@ pkg_setup() {
                linux-mod_pkg_setup
 
                BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-               SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
+               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
@@ -136,6 +152,10 @@ pkg_setup() {
                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}"
@@ -159,23 +179,11 @@ pkg_setup() {
 }
 
 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
+               eapply "${FILESDIR}"/${PN}-375.20-pax.patch
        fi
 
        local man_file
@@ -185,6 +193,11 @@ src_prepare() {
 
        # 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() {
@@ -196,75 +209,73 @@ src_compile() {
        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
+       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/libXNVCtrl clean
-               emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
+               emake -C "${S}"/nvidia-settings-${PV}/src \
                        AR="$(tc-getAR)" \
                        CC="$(tc-getCC)" \
+                       LIBDIR="$(get_libdir)" \
+                       NV_VERBOSE=1 \
                        RANLIB="$(tc-getRANLIB)" \
-                       libXNVCtrl.a
+                       DO_STRIP= \
+                       build-xnvctrl
+
                emake -C "${S}"/nvidia-settings-${PV}/src \
-                       AR="$(tc-getAR)" \
                        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 \
-                       RANLIB="$(tc-getRANLIB)" \
-                       STRIP_CMD=true
+                       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 its not /usr/lib
+# the third parameter is the target directory if it is not /usr/lib
 donvidia() {
-       # Full path to library minus SOVER
-       MY_LIB="$1"
+       # Full path to library
+       nv_LIB="${1}"
 
        # SOVER to use
-       MY_SOVER="$2"
+       nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
 
        # Where to install
-       MY_DEST="$3"
+       nv_DEST="${2}"
 
-       if [[ -z "${MY_DEST}" ]]; then
-               MY_DEST="/usr/$(get_libdir)"
-               action="dolib.so"
-       else
-               exeinto ${MY_DEST}
+       # 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
 
-       # 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}"
+       # Install the library
+       ${action} ${nv_LIB} || die "failed to install ${nv_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"
+       # 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
 
-       # Always create the symlink from the raw lib to the .1
-       dosym ${libname}.1 \
-               ${MY_DEST}/${libname} || \
-               die "failed to create ${libname} symlink"
+       dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
+               || die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
 }
 
 src_install() {
-       if use kernel_linux; then
+       if use driver && use kernel_linux; then
                linux-mod_src_install
 
                # Add the aliases
@@ -272,7 +283,7 @@ src_install() {
                # pkg_preinst, see bug #491414
                insinto /etc/modprobe.d
                newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-               use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
+               doins "${FILESDIR}"/nvidia-rmmod.conf
 
                # Ensures that our device nodes are created when not using X
                exeinto "$(get_udevdir)"
@@ -289,42 +300,56 @@ src_install() {
        fi
 
        # NVIDIA kernel <-> userspace driver config lib
-       donvidia "${NV_OBJ}"/libnvidia-cfg.so ${NV_SOVER}
+       donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
 
        # NVIDIA framebuffer capture library
-       donvidia "${NV_OBJ}"/libnvidia-fbc.so ${NV_SOVER}
+       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}
+               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
+               doins ${NV_X11}/nvidia_drv.so
 
                # Xorg GLX driver
-               donvidia "${NV_X11}"/libglx.so ${NV_SOVER} \
+               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
+               doins ${NV_OBJ}/nvidia.icd
        fi
 
        # Documentation
        if use kernel_FreeBSD; then
-               dodoc "${NV_DOC}"/README
+               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
+               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
@@ -332,24 +357,27 @@ src_install() {
        fi
 
        docinto html
-       dodoc -r "${NV_DOC}"/html/*
+       dodoc -r ${NV_DOC}/html/*
 
        # Helper Apps
        exeinto /opt/bin/
 
        if use X; then
-               doexe "${NV_OBJ}"/nvidia-xconfig
+               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
+       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
+               doexe ${NV_OBJ}/nvidia-modprobe
                fowners root:video /opt/bin/nvidia-modprobe
                fperms 4710 /opt/bin/nvidia-modprobe
                dosym /{opt,usr}/bin/nvidia-modprobe
@@ -365,9 +393,12 @@ src_install() {
        if use tools; then
                emake -C "${S}"/nvidia-settings-${PV}/src/ \
                        DESTDIR="${D}" \
+                       GTK3_AVAILABLE=$(usex gtk3 1 0) \
                        LIBDIR="${D}/usr/$(get_libdir)" \
-                       PREFIX=/usr \
                        NV_USE_BUNDLED_LIBJANSSON=0 \
+                       NV_VERBOSE=1 \
+                       PREFIX=/usr \
+                       DO_STRIP= \
                        install
 
                if use static-libs; then
@@ -386,22 +417,19 @@ src_install() {
 
                # There is no icon in the FreeBSD tarball.
                use kernel_FreeBSD || \
-                       doicon "${NV_OBJ}"/nvidia-settings.png
+                       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
+       dobin ${NV_OBJ}/nvidia-bug-report.sh
 
-       #doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
-
-       if has_multilib_profile && use multilib ; then
+       if has_multilib_profile && use multilib; then
                local OABI=${ABI}
-               for ABI in $(get_install_abis) ; do
+               for ABI in $(get_install_abis); do
                        src_install-libs
                done
                ABI=${OABI}
@@ -421,52 +449,74 @@ src_install-libs() {
        local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
        local nv_libdir="${NV_OBJ}"
 
-       if use kernel_linux && has_multilib_profile && \
-                       [[ ${ABI} == "x86" ]] ; then
+       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}
+               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.$(usex compat ${NV_SOVER} 1.2.0) 
${GL_ROOT}"
+                       "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+                       "libGLESv2.so.$(usex compat ${NV_SOVER} 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-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
 
-               # VDPAU
-               donvidia "${nv_libdir}"/libvdpau_nvidia.so ${NV_SOVER}
+               if use kernel_linux && has_multilib_profile && [[ ${ABI} == 
"amd64" ]];
+               then
+                       NV_GLX_LIBRARIES+=(
+                               "libnvidia-wfb.so.${NV_SOVER}"
+                       )
+               fi
 
-               # 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
+               if use kernel_FreeBSD; then
+                       NV_GLX_LIBRARIES+=(
+                               "libnvidia-tls.so.${NV_SOVER}"
+                       )
+               fi
 
-       # NVIDIA monitoring library
-       if use kernel_linux ; then
-               donvidia "${nv_libdir}"/libnvidia-ml.so ${NV_SOVER}
-       fi
+               if use kernel_linux; then
+                       NV_GLX_LIBRARIES+=(
+                               "libnvidia-ml.so.${NV_SOVER}"
+                               "tls/libnvidia-tls.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}
+               for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
+                       donvidia "${nv_libdir}"/${NV_LIB}
+               done
        fi
 }
 
 pkg_preinst() {
-       if use kernel_linux; then
+       if use driver && use kernel_linux; then
                linux-mod_pkg_preinst
 
                local videogroup="$(egetent group video | cut -d ':' -f 3)"
@@ -483,17 +533,17 @@ pkg_preinst() {
 
        # Clean the dynamic libGL stuff's home to ensure
        # we dont have stale libs floating around
-       if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
+       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
+       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
+       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
@@ -524,6 +574,6 @@ pkg_prerm() {
 }
 
 pkg_postrm() {
-       use kernel_linux && linux-mod_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-340.106.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-390.48.ebuild
similarity index 61%
copy from x11-drivers/nvidia-drivers/nvidia-drivers-340.106.ebuild
copy to x11-drivers/nvidia-drivers/nvidia-drivers-390.48.ebuild
index cb601342d6e..fab8a7c22cd 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-340.106.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.48.ebuild
@@ -5,29 +5,39 @@ 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}"
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx";
+
+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}"
 X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
-AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
+X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
 
-DESCRIPTION="NVIDIA Accelerated Graphics Driver"
-HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx";
+NV_URI="http://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 )
+       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? ( ${NV_URI}nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
+       tools? (
+               
https://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"
+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 )
@@ -35,40 +45,43 @@ COMMON="
                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.4:2
+               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}
-       app-arch/xz-utils
        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/libvdpau-0.3-r1
+               >=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}]
-               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() {
@@ -78,13 +91,13 @@ nvidia_drivers_versions_check() {
                die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
        fi
 
-       if use kernel_linux && kernel_is ge 4 11; then
+       if use kernel_linux && kernel_is ge 4 16; then
                ewarn "Gentoo supports kernels which are supported by NVIDIA"
                ewarn "which are limited to the following kernels:"
-               ewarn "<sys-kernel/gentoo-sources-4.11"
-               ewarn "<sys-kernel/vanilla-sources-4.11"
+               ewarn "<sys-kernel/gentoo-sources-4.16"
+               ewarn "<sys-kernel/vanilla-sources-4.16"
                ewarn ""
-               ewarn "You are free to utilize eapply_user to provide whatever"
+               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 ""
@@ -117,9 +130,10 @@ pkg_setup() {
        export DISTCC_DISABLE=1
        export CCACHE_DISABLE=1
 
-       if use kernel_linux; then
+       if use driver && use kernel_linux; then
                MODULE_NAMES="nvidia(video:${S}/kernel)"
-               use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel/uvm)"
+               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
@@ -127,7 +141,7 @@ pkg_setup() {
                linux-mod_pkg_setup
 
                BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
-               SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
+               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
@@ -136,6 +150,10 @@ pkg_setup() {
                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}"
@@ -159,23 +177,11 @@ pkg_setup() {
 }
 
 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
+               eapply "${FILESDIR}"/${PN}-375.20-pax.patch
        fi
 
        local man_file
@@ -183,8 +189,20 @@ src_prepare() {
                gunzip $man_file || die
        done
 
-       # Allow user patches so they can support RC kernels and whatever else
-       eapply_user
+       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
+
+       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() {
@@ -196,75 +214,76 @@ src_compile() {
        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
+       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/libXNVCtrl clean
-               emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
+               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)" \
-                       libXNVCtrl.a
+                       build-xnvctrl
+
                emake -C "${S}"/nvidia-settings-${PV}/src \
-                       AR="$(tc-getAR)" \
                        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 \
-                       RANLIB="$(tc-getRANLIB)" \
-                       STRIP_CMD=true
+                       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 its not /usr/lib
+# the third parameter is the target directory if it is not /usr/lib
 donvidia() {
-       # Full path to library minus SOVER
-       MY_LIB="$1"
+       # Full path to library
+       nv_LIB="${1}"
 
        # SOVER to use
-       MY_SOVER="$2"
+       nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
 
        # Where to install
-       MY_DEST="$3"
+       nv_DEST="${2}"
 
-       if [[ -z "${MY_DEST}" ]]; then
-               MY_DEST="/usr/$(get_libdir)"
-               action="dolib.so"
-       else
-               exeinto ${MY_DEST}
+       # 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
 
-       # Get just the library name
-       libname=$(basename $1)
+       # Install the library
+       ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
 
-       # 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"
+       # 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
 
-       # Always create the symlink from the raw lib to the .1
-       dosym ${libname}.1 \
-               ${MY_DEST}/${libname} || \
-               die "failed to create ${libname} symlink"
+       dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
+               || die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
 }
 
 src_install() {
-       if use kernel_linux; then
+       if use driver && use kernel_linux; then
                linux-mod_src_install
 
                # Add the aliases
@@ -272,7 +291,7 @@ src_install() {
                # pkg_preinst, see bug #491414
                insinto /etc/modprobe.d
                newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
-               use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
+               doins "${FILESDIR}"/nvidia-rmmod.conf
 
                # Ensures that our device nodes are created when not using X
                exeinto "$(get_udevdir)"
@@ -289,42 +308,56 @@ src_install() {
        fi
 
        # NVIDIA kernel <-> userspace driver config lib
-       donvidia "${NV_OBJ}"/libnvidia-cfg.so ${NV_SOVER}
+       donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
 
        # NVIDIA framebuffer capture library
-       donvidia "${NV_OBJ}"/libnvidia-fbc.so ${NV_SOVER}
+       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}
+               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
+               doins ${NV_X11}/nvidia_drv.so
 
                # Xorg GLX driver
-               donvidia "${NV_X11}"/libglx.so ${NV_SOVER} \
+               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
+               doins ${NV_OBJ}/nvidia.icd
        fi
 
        # Documentation
        if use kernel_FreeBSD; then
-               dodoc "${NV_DOC}"/README
+               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
+               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
@@ -332,24 +365,27 @@ src_install() {
        fi
 
        docinto html
-       dodoc -r "${NV_DOC}"/html/*
+       dodoc -r ${NV_DOC}/html/*
 
        # Helper Apps
        exeinto /opt/bin/
 
        if use X; then
-               doexe "${NV_OBJ}"/nvidia-xconfig
+               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
+       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
+               doexe ${NV_OBJ}/nvidia-modprobe
                fowners root:video /opt/bin/nvidia-modprobe
                fperms 4710 /opt/bin/nvidia-modprobe
                dosym /{opt,usr}/bin/nvidia-modprobe
@@ -365,9 +401,12 @@ src_install() {
        if use tools; then
                emake -C "${S}"/nvidia-settings-${PV}/src/ \
                        DESTDIR="${D}" \
+                       GTK3_AVAILABLE=$(usex gtk3 1 0) \
                        LIBDIR="${D}/usr/$(get_libdir)" \
-                       PREFIX=/usr \
                        NV_USE_BUNDLED_LIBJANSSON=0 \
+                       NV_VERBOSE=1 \
+                       PREFIX=/usr \
+                       DO_STRIP= \
                        install
 
                if use static-libs; then
@@ -386,22 +425,19 @@ src_install() {
 
                # There is no icon in the FreeBSD tarball.
                use kernel_FreeBSD || \
-                       doicon "${NV_OBJ}"/nvidia-settings.png
+                       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
+       dobin ${NV_OBJ}/nvidia-bug-report.sh
 
-       if has_multilib_profile && use multilib ; then
+       if has_multilib_profile && use multilib; then
                local OABI=${ABI}
-               for ABI in $(get_install_abis) ; do
+               for ABI in $(get_install_abis); do
                        src_install-libs
                done
                ABI=${OABI}
@@ -421,52 +457,74 @@ src_install-libs() {
        local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
        local nv_libdir="${NV_OBJ}"
 
-       if use kernel_linux && has_multilib_profile && \
-                       [[ ${ABI} == "x86" ]] ; then
+       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}
+               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-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
 
-               # VDPAU
-               donvidia "${nv_libdir}"/libvdpau_nvidia.so ${NV_SOVER}
+               if use kernel_linux && has_multilib_profile && [[ ${ABI} == 
"amd64" ]];
+               then
+                       NV_GLX_LIBRARIES+=(
+                               "libnvidia-wfb.so.${NV_SOVER}"
+                       )
+               fi
 
-               # 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
+               if use kernel_FreeBSD; then
+                       NV_GLX_LIBRARIES+=(
+                               "libnvidia-tls.so.${NV_SOVER}"
+                       )
+               fi
 
-       # NVIDIA monitoring library
-       if use kernel_linux ; then
-               donvidia "${nv_libdir}"/libnvidia-ml.so ${NV_SOVER}
-       fi
+               if use kernel_linux; then
+                       NV_GLX_LIBRARIES+=(
+                               "libnvidia-ml.so.${NV_SOVER}"
+                               "tls/libnvidia-tls.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}
+               for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
+                       donvidia "${nv_libdir}"/${NV_LIB}
+               done
        fi
 }
 
 pkg_preinst() {
-       if use kernel_linux; then
+       if use driver && use kernel_linux; then
                linux-mod_pkg_preinst
 
                local videogroup="$(egetent group video | cut -d ':' -f 3)"
@@ -483,17 +541,17 @@ pkg_preinst() {
 
        # Clean the dynamic libGL stuff's home to ensure
        # we dont have stale libs floating around
-       if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
+       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
+       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
+       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
@@ -524,6 +582,6 @@ pkg_prerm() {
 }
 
 pkg_postrm() {
-       use kernel_linux && linux-mod_pkg_postrm
+       use driver && use kernel_linux && linux-mod_pkg_postrm
        use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
 }

Reply via email to