diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2021-04-28 20:21:43 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2021-04-28 20:21:43 +0100 |
commit | 40aaaa64e86ba6710bbeb31c4615a6ce80e75e11 (patch) | |
tree | 758c221bad35c9288d0bd6df9c7dfc226728e52c /x11-drivers/nvidia-drivers | |
parent | 8d5dbd847cbc704a6a06405856e94b461011afe3 (diff) |
gentoo resync : 28.04.2021
Diffstat (limited to 'x11-drivers/nvidia-drivers')
23 files changed, 1988 insertions, 2384 deletions
diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest index bfd51a59ab92..49f93464672d 100644 --- a/x11-drivers/nvidia-drivers/Manifest +++ b/x11-drivers/nvidia-drivers/Manifest @@ -4,53 +4,65 @@ AUX nvidia-390.conf 199 BLAKE2B e7eabfb3a61cc0e95da78270964a6bb55ae71fdad81376d4 AUX nvidia-430.conf 734 BLAKE2B 8332fcce02f603e84598cf817a4ba6c948f198c962b699d5d765f868eb0f4e88586390b3d0ebb14f9b3defa8ab84db9196358c9cd5754b5f4e336ace441abf95 SHA512 51691436b9ccd2e21b2a1a8b5f431865aa811ec9ca07899b1f4d8f9ff8e38a71a8c7f910a06df5b686e274447e2e570e96c07bd13bbb69bc6a570c8dd393daec AUX nvidia-460.conf 734 BLAKE2B c266b4ffcc3f8f3666c8838273da1eb21527dfc29ab1c276fbd77c4bad993e4f206112e0e0bf6e4a899f417ccbe4522053df8e019bbbeac29ec9364ae2fa3bef SHA512 4f716c9c67f269f361ad48cd18039df3cc4495e29a8a74d1b162fc0db96942afbdc440ef21a8477271b9e561483715ce7e0c2863f382d8721f235406fcaa3095 AUX nvidia-blacklist-nouveau.conf 150 BLAKE2B ab88433271de205cd928589eda1c5b7ca88d5febb9ca5f6a743e038d461e0d1bf4a1abddf272c8f15633c04a8ed1c09daed4eb81391768dfe96586b966186f33 SHA512 f345998328e28a34ba578e96f0ff08a94b909b151f9fe883fb59dfcffe754d0eb324caa8bbb1f42ca1c9604960b6ab1dc4e72b5edb773c3c7ade59d7adbb3057 -AUX nvidia-drivers-440.26-locale.patch 299 BLAKE2B ad9065b968f1ad62c90e3aeddaa5af9fe007f89e5e80fc74f4c200c642b968196d8880511cc05d1f2fd04e5ab4f189cd2935eda993f9f174f0f0f4d58b7de711 SHA512 1723963b3e7562332909322ee28373dff83f253db4805d4c77c837abec04a73946afdd2837a699d0babd989090ddfcc33574993c2f8d3857eb24cf0e9ad4e6ce AUX nvidia-modprobe-390.141-uvm-perms.patch 563 BLAKE2B 9befd708ad2193e507583e066f306e11d55e82912f456e738d850b804d35331df2ca5de3a35e8ab551188c1103af762941098639fa9581b4437bc5e68595ddd6 SHA512 0546d51a86554985cd7cc036e7b8f65b457cd1a1c0549ef496422fa422d2757354a47b83247b100597f908c2653314878c721b3918ebc529cae4282824d4eada -AUX nvidia-persistenced.conf 250 BLAKE2B 8b3514f981d992d34c949011a25fda5737d85ade831f15481843db14f67494e6f271eb7947a459a28c7991cdeb86092a2a7920e6f40213bcded90b7f9f15dae0 SHA512 9c9562bb15bf4552754dd50a1b01dec5df76f7f5666fba2fff642a169f87e9ed421a260f2258ab469f7e4cd9ef8161653355795624387fe7ad5ae6a0d71e5f46 AUX nvidia-persistenced.confd 213 BLAKE2B dd57e63944a97a77e83a8373dd34ef2f56824dcfadcfbbb54cdf6eeac17066d78753bd1b21a9bad8f0437c279c95492319205c15b84b7f96e0515415dfddbc26 SHA512 a311b73bb47448538e5261ba658d42e923890c909c335eeac3cc90ad0ffd3fd5fb983df8e91077f3098eaa13b07f27b23dc24a4579b1df411ae272976ef089b3 -AUX nvidia-persistenced.init 650 BLAKE2B 3be9ea563ecb9741bad4de1516ab9cf373c5b412eea52cf4d8e6446ee09f6adee47bcd1f65217c7379b55d99de1966b2335ecdfa940f9c7544cd103992ba280f SHA512 864c90573a033e30d151c9adb9f0f12c5bcba2b5a7eaaa62f86fc11747f13956825fc5acb4fb1fb453a32acefe850e73264a650fafa6014cc96bbc7e3b56fdaa AUX nvidia-persistenced.initd 404 BLAKE2B 2115075a9b0c9d0eeee55e2b3c531da82ae6aea5bf25bcedc618b108aeddab95c0ac852d6d9b96bd9bf6dba62a13db487d7c3627b244ef29c047bb7a137f2413 SHA512 34143639ca5456cacfbfcb2bc30e51dce02d9af4784791a84ba93a26f2f7f31f2dc75685bbed52138c35df310cca1c19072a5fab2b067f854550f5ee4d96aa9c AUX nvidia-rmmod.conf 108 BLAKE2B 8a14963d7498c08f22c60f0e7286b66375c22e9db081454d973738bf847bfd4343c82f4e1c529ec6b904ae3e8cf29e2570dd4cf2fbb8c8aa9bd33491d2e4f543 SHA512 cb6b70ba0fc9c6d81d43f31d724538beff79e7e9b02c610485f1e46757d7bf16410d5cb2853d8d67ea6e4da59e7e1687ad14dc4b494415c6db6fab517a03b28b AUX nvidia-settings-390.141-fno-common.patch 478 BLAKE2B 2b222b26049aeb6692350618bd1e4dff3c4f25452c1e18c5789fd3e85ffb3edba4c54c4cdf02aec95f65c7eafb2c01e39a76b888a4f0691de6279d2981ab4f5f SHA512 a6574bc7be6299ab6f7aa3b7872506cc135ffda5591f6d385f6828ca5691e964852b4461fde771130a17b315798f986c2af6e1108e9d2298dcdf3f786e665a93 -AUX nvidia-settings-fno-common.patch 762 BLAKE2B 7a4895d004ca9f5468e88f41fdb86cd14c9ffc8267c308e372722008487f0b10037dfb683fa5dc007eb99107c4f798504470a4aebc42b1f787770be0fd522226 SHA512 830bf286ff708655c358b47e6260b318b5d06eb40cb73a5e03e511a04d048440a925e47c5ca0c2da53d445cee8f5f7bcb5273a1141f5edd83e7e8d43d6c08c95 -AUX nvidia-settings-linker.patch 1048 BLAKE2B a4a0a26d93514c3c43a0bc0db87b5b8dd8c20d0a9f15942db2a2f34662886436371e72c6e033d4bb2eb4d8996962f048144b93c1493149ea603ef71044cbed41 SHA512 11cd04a3efe95046d01c749df9fc055473284cb99a6138768916db841c8fadf2af5c93646b52f7bce6454e43b8621aa518964ef734c18283162fb2671f6dd9f9 -AUX nvidia-settings.desktop 185 BLAKE2B 5fab31cdfad3e882095bf0fb5c3821b5d934992f1d330b80dd825da727b7cf587177f21ad6d2f83eabc6a451c15e2dc4bbe88684deb5892199da53fdef77f428 SHA512 30cab269daf282b9716e53ecf2f8993289e8d4ad05c40d6ddaad3ea6e95477c36a4d65a28d0ec3c1c9c7e845fde140df9012944306f70131a02c9ffef0a9f523 -AUX nvidia-smi.init 545 BLAKE2B f4a0743f1fa5136c9c0f327645d8b66932492f2539b5c2b0bd45d29b2010fff6bbdc9e97b619e67d38bce38104d29fc4d00a9e0efc31b8ff408cb02370785bec SHA512 f7f04a73d646b90cdc14a408f53650324d7c1d7754a1d92acc9a8acaef163bda1eef33acb831df77657786e7ceebe0d7f9d25d2edd57d1590be340ce12fea6e5 -AUX nvidia-udev.sh-r1 285 BLAKE2B 6ea76f2f913b2bc2c9955e7564c770368ea6a0327887684d086040047fb95a0088387c5f87f22bc1f5a093cc79299ad72dd1495719bb344c504a342d03f34db3 SHA512 493b0d5f2698d299e3b8d5782ac7fb8174e7ee93f1dae66bc1161eb4dd16d4db91048444dc6e7bea344960936c0a5c825041f6909af004438d8009a3d3fe71c9 -AUX nvidia-uvm.udev-rule 167 BLAKE2B c4606309aaa522f4c86568928b072f09578d4e78540517eda38e50f9f372e62c312a8962f190f9715ebda18cadd8fb0513c07d9083e34591512350144a267a1b SHA512 9420f9b80abed3660a33c973554603c2db477e1779c03b79093076719feee7d84e2f1c47c1b337e88318f20bd1a10b2715b098f7bd065a5c825f26c13bca038d -AUX nvidia.udev-rule 462 BLAKE2B d417e0e4f5a64c5cee235f4640554ff1ba4d34590a6c3459fd8b4e10dc7581010c006f96cfd01f2c9a847c79979631f6e5afbef01724d110201377e8f8c75966 SHA512 96f9edaa0b46bea5fce17596f868bea5265b303d7185af6ba81527bbd7b8fdf92de9311317cbde51a29d222083d451c25ab77c3d6837cbc4072a50d9af89aa86 DIST NVIDIA-Linux-aarch64-450.102.04.run 80469462 BLAKE2B dcabed08bdd2c4c328794238e175e96831ceb0ff683c7727a1873b5aaf07612f997d47c915ef7d3c5dcfcd1d40e75f9a51a83fb28eb84d4200e7e5bc41245d9f SHA512 6b0fcdbe8a0ef3a86357bcd7a48d38c2bb65d9608bfbde0fa270b7cec198acaf9b60d458406fc7c841c75c98089644e8dcfb87bd9d0d3c45bc77ec3c936d9371 +DIST NVIDIA-Linux-aarch64-450.119.03.run 80498137 BLAKE2B 1834fb1d1f6254665339b7c0476466223240e8e8fc61223825d7aa51b23becef0c88106dc0b01a59922f815309836f5c03bd6c0dc44096ca150432a83a6201f3 SHA512 60d757be68714aa8d0da754ccdd760858ad787216822766f34ec3c1b85feef37b247feb4d369eef1f2c73be08c99f5d9d6acd344a15058f6d7f71a6eccc2ce25 DIST NVIDIA-Linux-aarch64-460.67.run 112551235 BLAKE2B cc1166454f6e8771c7fe97010906919e9f2afd74ac86321006628f90f4d8dee033c3e09b2d9cac9063fe3fd313c0b529b347bcf38c051588ca7a972617c45026 SHA512 6ba17844dd215967f2f55a6620535464f244075a13f4b2b6d0ffaeeb6d97397fae0ba0de032d971847556d7b78ac8a1010ecec5127f45eb7ec73db87b1507ca1 +DIST NVIDIA-Linux-aarch64-460.73.01.run 112529526 BLAKE2B 64481ebba998cf168e4b9b1ad47f474a174e3f5e384889695d5f240a9f8f5f3265efb344b9082e3d1ad74da9fc90381b5d6e72064cde463c6b3bc7bf62d9c520 SHA512 e6a7d0ecbd99b763f7bfc793c6dbea1a64e290e9d200d7e500896dffdc97aca01f14bf0d4d26286f381c8c986210e7cfb0345b004be085aa58578c30a4ba118e +DIST NVIDIA-Linux-aarch64-465.24.02.run 149677255 BLAKE2B 0478850c66ed4cc5c204b4634fd60879d9de11566b087f561eaddc819e2e51f8c48c1997f49758c70844c92736b928832b5f81cbc150c291850c2b161515a84a SHA512 0d5f9c1320ffcb540ac32eb6ca8147fee2d732087d15b6f062a783b6e12a37de33e8f1645349ec442d602a75a6375e908be351d73113b169f64b4291277826cc DIST NVIDIA-Linux-x86-390.141.run 49589744 BLAKE2B 304672806b89885adbf8459ea99ca872769e44a42ff041a5b79ef05d113d7717f505f543441e7a2fc6c569f6d66391f0380a4f23f3e68108c8de817bf251f850 SHA512 6dfde3b54520070954b45f6bc071251084e1741f55e582b1abd806eb367e4b9ce0015615bf6a887fa784d075b3db08b6940da4163b960969773d1bdc52b4961e +DIST NVIDIA-Linux-x86-390.143.run 49327068 BLAKE2B c6e0600885bfd834be6dca18346259a58e05640afe4b1ea394d5795e4c8a4b0fa9fdf5c4a331a128843708ece9e95df2ff7e0b3cf2ac5875b5d731c73423c112 SHA512 17bbcc2f5e9dde3f131b7924ea1e99a591b5e18b835dd324c528d17f74eded94e087c6a9a2b364189851e9972ad27bcd47e901c9ec14eedc568b99890f1e0a4f DIST NVIDIA-Linux-x86_64-390.141.run 85330901 BLAKE2B 7759d8cf6c9a75607b9a3ecd53cdd6f6a93f2f372d740a5a87d4d3f41a22f3bd953cc7dd6a0dc0e23a829ec86df8d65b9de499a76cfd4266a13b0aa3288aceb5 SHA512 5448d70e6e64a6403e61a004d83c69a442dd8ed0d61da3a31d3e3b7943c06c559a66b0f8d135982868ecbf209a965f60dae1a633367630b4d9287f725bbaa53c +DIST NVIDIA-Linux-x86_64-390.143.run 85686808 BLAKE2B 0ad3ec661565cc52553c0b4f73256665fd3b505e39bffbfbffb3d148193369471b5160d59717dbecbd5f00bd28d9d17c9c7b5284e493f57f84ce19e310e477dc SHA512 79b61bd274964ed2e6a7ce99f0066d616d65b5a074de2ed84cdebb9ec6e8a608f71e511105e9a03e0c6e6d259f0111fed5772638ea72b08951eb2712c80505d0 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-450.119.03.run 141295706 BLAKE2B 854dd0063ea1f11e052f6ba5454792ebeb41dc50cd5cde17260d8c715b4401fa19514cfd3d2fad905564607244748e8083880bc2e360a86f8dbca970ebe5e744 SHA512 5557328f445381e23358c8bce220da062cdd3b5d396764228f7eb285e8dd6419bfc3943fc9e98516ad8cd2db13d0d7c125fc9c94c1e565668f76c872140d9082 DIST NVIDIA-Linux-x86_64-460.67.run 177691692 BLAKE2B 25a7d87cc128933a98100d7c5ef37f93c3a870c096eea3228a28ef79d712ce104608f9422221cc1eadc21dccbbc8bc41ab1832795cfee75e217600ed0d76489e SHA512 80fdc023a8ce80e3a103896f28a5564bb43903af6bfc719f755c48eb225e79ec6abf219ab20eb80ada5808ef932ef5fa0fe710c6e0a07dd8a248daff2ba3b898 +DIST NVIDIA-Linux-x86_64-460.73.01.run 177241975 BLAKE2B 5a43076c4f2c64ee7761824f8e4bf29dc053cf6ccd143b730ea062303124dbb5afe95882b752cd25e707375bafbca3beaabaee955cd2cf7b73a96190b9340bae SHA512 fa468747770f092b94658ef8c7896f69e05a8818f1269ce219c293cc02b0a042b73b755ef28a3012576dae54984a989cd3262ead674f62bdce4af13feac3c064 +DIST NVIDIA-Linux-x86_64-465.24.02.run 235706017 BLAKE2B 383e7ceee60de40ff74f31ce380c0d4bc6a2f4200a1b1a2e0cb54ce1ce17e216fe953cab18cf6b888de51ab25bdec3c7bc068bbbe1128fb11ac9f40399508752 SHA512 1beb59554a8fafdd61f4ebe6ffc1b714eb2cf67efe0aa7ddae5b146c9c4d932820f93dd91ec79162b65582364cab8ba9559ebf8f5174814eb670bb522f0e357f DIST nvidia-installer-390.141.tar.gz 205299 BLAKE2B b95ddcf9a8d61247572d73faa04558564962782b0eb222601315d741d1ee71fa0636fa87d31105ecc5ec61328d3174a3ed646046e02b6b5f29f071215a0e8bdd SHA512 3848a4ec17510bf4d3060e5ef8aafa1ad921215ec39d26c54b3bbdd8a5867c46e01d247b24b05ad6906fed7fb4ae6dc37346a7da6e5aae88b5b47584c0b07a02 +DIST nvidia-installer-390.143.tar.gz 205320 BLAKE2B 5c27dd769ec5a2effc56ea86474ee45b86362c26844d2f902d7bb2ab8e58b2763f4f761341ce4051e85cfd8189eab9d441744f1b9946a6dc46105888dc5ba58a SHA512 a45cbae70e8d9f1108d5e2c04b4beee350b8469df987ff80793dda7fc4e6efe3a787db0d47e7dfe22b88b29647b99cc24ab418666d1ef2fc038143f574faba36 DIST nvidia-installer-450.102.04.tar.gz 197642 BLAKE2B 5d94dee76057eaea236090e2eb8cba4fdf90f4959a0ae26805bc771262a0eb05640846c191f2a5a5485e0584ae07ba64d2989201118594df747c3ac13503f90d SHA512 2c1608c0dd971122978a395edc5a51de6cb76d72aac45b4f9303e1a99e292ec0ddd9c03f2e95b10c357c0da1dc2824197c2553828eedbd0c4434b431aa593f6f +DIST nvidia-installer-450.119.03.tar.gz 197635 BLAKE2B 01581676e11622e3c6c32171e699f13483e08a9b5256f6248cad190008a875b0b06561ff4d6732265c35b2429aaf6ba4cddf1a618d46730c88c5de63550bca9e SHA512 7491873e6324aefbe0dcbe57edeb2d1194352c6a9738c3b47f2562eb9e3ad58ca9519e5499f56d1208c2151900e2b43582fdbbe8ca80b6ebee824f8f8050c552 DIST nvidia-installer-460.67.tar.gz 198484 BLAKE2B 0eaf3e3eccd6749e4fe89394905dded58e739f42cbc33c8a91575f4505030a216670fc8c0fd4d1d42659acf301c9ba59d4052a80c6eba6c5db84ed022acb2620 SHA512 8fff0fa13a82cb7eaf2fd1d05be509e9124e67bb05810f8937fb1f16c4a2362a5c1a50bc9a5155cfc90a9bbcee38a54fb5ae0ae164e205900a49f6d21779d54f +DIST nvidia-installer-460.73.01.tar.gz 198500 BLAKE2B 4036c8385e7ac59019ba2d189e227f46c52543d619aa9aa91bca726694bc0635e642a9e40b8fc785d7f7fe239062ca3bb7f4815f2c8f4722e6345b8a6f2a8493 SHA512 910e8dfb86147ecba6336f00d09f22d7505337832d0c0ace5d15fdfb355c22b6cd9d350bf469352db13971abb7379d980b05cd0c05271fe654122b92b4fa99ab +DIST nvidia-installer-465.24.02.tar.gz 200388 BLAKE2B 94a8b7daab32195b065ed950149fae31eee155161c4fca3370c61754566693b4034207576436ae09cb6f17d33c9df7f7022dff7f5c95a7fb9dbaebe9b181ec95 SHA512 3a7bb9dbc752fdef0846095966fe4fd064931a94cf98e6de7107184918ce1ec02b81310d8d31ae6146eceee592985c2170e81fe8d78998d9223912d67a7d5e26 DIST nvidia-modprobe-390.141.tar.gz 39965 BLAKE2B 46c01ec3e53569454a032e42561a81154712485ffb11d0393d9e9007a3825a33c8d045ea7296dd8465ad9b2cee36a639274c55ff31c70e93d334ac9fe724f7b1 SHA512 c0abec334fee4293a55a43edbcc6a7a8cd8ff6b6fbb954b428182542a24eba90f47100977c84ea9cbe557a39fc5fb90677b4f2227f49a6f30a56f6941508f40e +DIST nvidia-modprobe-390.143.tar.gz 39968 BLAKE2B 09f043521f195327630c0ca575473da42e051e2d34def22dcfb54295a94ca85e95ff41ee9564765567df19b88f90aba3d8cfffd489054779f2ce7d29f6e64b76 SHA512 066aaf031907fe2ba424e3b92e677ae78b4a938308bea82b7aa20cf0ba5c3678f93b6c9bf8a41fcd4fadcdcc870674a2be777ddcc2a5018974bd56b09a9ef271 DIST nvidia-modprobe-450.102.04.tar.gz 42139 BLAKE2B 79218a4e76dacdafadd31e45a27d3578924db6a74894064ce856498121fbf9d80e7b07046dfc36426340e0cefd78b416b017202bc93858fdf8cc77ba335bbaf8 SHA512 ac9d8d8849606d7ef3772570c976e5efab36f66e83a62f959b28c88cd798bba860052033dc5eb18c0f9e4a6f2d8e6082456d9b1586977a23f240cfa3a750d7ef +DIST nvidia-modprobe-450.119.03.tar.gz 42137 BLAKE2B 054879187d33fbaaf4debdaa530b5f70bf19347891b905ac519bcb612146f0c4481629b88b07a872a4aed0f13e25fbbba3d1ed7f96ec3bb8a5c8da0855a1822a SHA512 c299d08c82b3f226f5861a61c523100809eeca90f4573ef5c2d3968f74945aae652b7ad07c859ef31f1df5c3a8687f34af6cf1f5f26e45b928a702de4bc19e73 DIST nvidia-modprobe-460.67.tar.gz 43140 BLAKE2B 8243d355f9d51495c9d09f25ccbcb39c0a6ef472cbfaded98f10818fae655e1cf62ff2edcf40baea72b8cca9eebc947742b2516bb057410239193201bb843538 SHA512 16c8239b54988622196e0eea113173e44ff8b60cdcdf585bf859e6440aff2c6699bb107962776e69056dd7d5e3bbd6289ea628a2255ac27e22ef79521e9baad3 +DIST nvidia-modprobe-460.73.01.tar.gz 43136 BLAKE2B eca07b2573b0771989c6fa78a97336151a4ce157f363af0fabe3636d734c5ef4086e3e8e93913a20b0ac2bc1feb2e558575e128f5bc3a5264c13a32de406a055 SHA512 1b8462197cabd99116aeafcae26440eb3b6a535e3fa1de8a941b2fa14dc83944d1722fd58a4a99c76695f1e301cefdd805a3ad7eceee1b0d8a432b91e0c12ffc +DIST nvidia-modprobe-465.24.02.tar.gz 43380 BLAKE2B 83930261cd5aa6b1407fe9f6678c3c2695c19fa905561aedde4f11e86c3f7cd2d722af60acf29d4f7e8d54ce0a4cc9546951318937a69b7ec7140f7cbb87157d SHA512 82b9091a634ed94513e6b557bba8ce701609312d5e664db0f098800e345e58d9b7bdcfe032902c17c1b089b18edc9b4431e4d0b1e40812ddbe147d837638037d DIST nvidia-persistenced-390.141.tar.gz 55984 BLAKE2B c4e889d15643f6e8a4e37b32d89e14acaa792c681863c74281b17e414021dc56e4692e91e7552762ef8b8ef977284ee2f307b14216a2562a9d30b2ab7a1ba522 SHA512 d9ea32c842d8d13a59128b28ce985fe3a421d2848eac30fc8a671a391c63516b58c46d3c5b21403b4e5b016577d23aebaec1f5b4e59b25a20668120f52e231a5 +DIST nvidia-persistenced-390.143.tar.gz 55994 BLAKE2B 1cfa469b84ecc9abdf0423d624244e7023a63225dfb16ac93223c462230b50099e4b59493be2d10cd6f2717e31c02655c76797e3222947d561f02ff72a52dd46 SHA512 37c3eb0bcce83e9b9ac5bdefa736e26e94b82de379a0f5c29e1611631c79103a797e58f5d1dea34221dd3a3f1a521b6db556eed48b1f38465481da2509d2f21a DIST nvidia-persistenced-450.102.04.tar.gz 52485 BLAKE2B 1fec24c86875789303aee8bf4362c9c35f76957a2906e2682aa5c07e914cc2acde769439d88007420904a71526e9f0d03ab9d0a3c5dcd1355047e03958d006f9 SHA512 6c51daaed3e7ecdb8d98bdcf0618e50962895895f88cc45a5f861c08d3c10f590d4a6a3f0a683ce0dce0e327d5977da1a76fdde974a97031dc698120ef990b07 +DIST nvidia-persistenced-450.119.03.tar.gz 52488 BLAKE2B bb6c759ce73f8c143d04e0cc5cb05cd0cb39f12f330485a0a4fc628b0ba3752f0bdee686f55675e60c1365ee7d9e0f9dd8c3c883ecb6fab9a1b78903664c20c9 SHA512 b8040d8bff15cb97252b6a7311c1cd0dbcf3dda17f91e8b46a1f950a388a0e2ed72d9ac59c808376dfdb1d1fd64fc721b55b95022f59afef17a37c20c646171b DIST nvidia-persistenced-460.67.tar.gz 53334 BLAKE2B 1354ec98fd2b95d264fd7df6219f639cf5d73173e6f0843a0880e6b18953904412cb756bd2c60432f6ae4c253d047515a9e32a128210fd94386ae6bc9a341b5c SHA512 0b4f7d8aa781c3536f6cd020225d2a3bab4b83498090419198488a2bec811534e61ba90461ae846bd09f4530f19984d77ca41edf0a851b1b700d1c0e053d537f -DIST nvidia-settings-390.141.tar.bz2 1108755 BLAKE2B 210c33d4bb483dd9abe13275feb641a00d7c39a7222cbe828c925b9cfca6d4422f8fa3333dd77b73f2ba4071a7badf77625be88e02a1835177bda490c3c3c368 SHA512 44bf5f6b5bfbe3146f97d9ac82a75cc5653b6002002623ac6fa6cd233bbd3ef0d15f0b8091b59de5dbfdbde4fbe1b5212c9f9a1653ec98597c9049c9b137902e +DIST nvidia-persistenced-460.73.01.tar.gz 53338 BLAKE2B 5dac040fbc20a8fa94dd91845d71a78e437ef32a5d80751e7328c40b2e41c2ddf1966eba6dd23455a128e982a5cdb16fe9f5f80fb586d93842a27e103b111cac SHA512 00274992853e4d518b2cd1c8674fc56b8466da134320c318476ac94c1e8526a8f8511f040d68d7ebf62761029c8ce2e84de740d11b4e49c7a829a4cccc2c61ea +DIST nvidia-persistenced-465.24.02.tar.gz 53563 BLAKE2B c21bcd7e9013de984a78a1283f371bf8ff8849ffb2190b2e46288cb07e6703ccfb138542fe5cecc5d728b20e791368bcde2d3cd9f61193fc651d69181bc17616 SHA512 44f0b78809b22139ff05d3645cb056966f4a6e2144ecef79be5c2e2897cd38a1831ecfacaccecaeeb336ce928d25a841800acffb7cc19007b6a11388579370e0 DIST nvidia-settings-390.141.tar.gz 1297261 BLAKE2B 452870df1ba598692f5da47444eb2daf4db40c79cac98c10b1c994c0ff39fc7936909b9d7788cbfe784999e68a2bdbbc12e85d63c3bc02ac872e6b3c46834697 SHA512 dbf7c389bbdc94291a1b974adfa33414148b1ab752aa7d948a27e91ee1bceb3b8435aceb6b7ef3cb806333572db11b5524667045ef7686b119d7955d2699cb04 -DIST nvidia-settings-450.102.04.tar.bz2 1057126 BLAKE2B 4e27ac75441d455122860b3834f2584e4736fff1f641e9a1d3ced4a354cb0e0e35c4e7a71e7bc05940d585e0ceca576f726fdfffbb84aae8057d06355b91293f SHA512 33f27b9a2832f7f24603d3a741b6c34cdd3f27a7075b523f8b98ae89325f810e13c134fcc7503e72d44a6f6c7a0d8587bfdad898a4ab5fa252bd9c7360a32341 +DIST nvidia-settings-390.143.tar.gz 1297258 BLAKE2B d63b48c03069d4d2ae7f7034b4bc13ff3a1004bd64ce54ee553e614cb88cb081842b6c1428fd556e031ce69361927074822c5c620d2cde8d37a5887051ff56de SHA512 7bbef03e77e73bb1e05585cfaf6823913e2446b1df8353044ae01f80693bb884fdcc1b38fa51b171756edaa234479cda027d6569d025b120b7b64f226f8eedce DIST nvidia-settings-450.102.04.tar.gz 1229675 BLAKE2B 166b73a0e9fe1cc1c16f83128aa94f3b9ef44fc71004e80c2681299dd564df6b458b52bedfd60eaaecf6142d0ea7d5147cb9c509d4db4e6b85bc72dd4dc75751 SHA512 c514bb3cc72954a52f4821674f9b783ebc0bd8c7294a296716619ddad15f2b63f50ada47797dee1386709deb7d407cb1d6c04532b7ca6e03d84234555751c9a9 -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-450.119.03.tar.gz 1229730 BLAKE2B 17c7f4803b1a5ead8ea6616f3575325459aa6abb4759f7146bd99b4cac8c4cde80b92fa2d82897392a5fed20d4f324418ac9990caa4557b0d457e7f3b24fcb71 SHA512 f0c2226e05063bfd78453b561a92e28f64711ba3ce3d82026c39db3cd44959a2cf98f8a781fb604108bf6ef9dfe52cad4a9270b94005d8e4e5134f6ea4966da7 DIST nvidia-settings-460.67.tar.gz 1233189 BLAKE2B 33ffceefea4e184cb1873cdce97db26637e87cd20c82bcabcbfe88bcb084ac3d833ac5688cafa33a5a89383040d5c1c5d46de9c3f9a8ba6174574aa57aea2e46 SHA512 d1828379aa477394747ae3e5d3505e864d38a349dd159a04cb263613380afea9aea2081300b0d2b8ae205b800bfe6e8ba504e612989da394d757f00e4399b617 +DIST nvidia-settings-460.73.01.tar.gz 1233791 BLAKE2B 7f32764907f1444ed8a819e5cde7bc6306134eb69afeee8bb4dc2e0c2eb2b929ca00b16b5b698c0fe9dc0cdd3589814442fe008462896f9f02e760e320bb5253 SHA512 12ea1eb791b7b11b54a4e9518efc9c40ac8e33325996e23ff7cedcb33d32e0f83f6b15695b93c7adc9f95aaa7c6a56a6838c900796733cd5d9b642124cc1b207 +DIST nvidia-settings-465.24.02.tar.gz 1233945 BLAKE2B 183d74af414d5e61ac75b61f32312e8a63fab6e5fc174d3f7ba11379e30bd2d28740674aa6452fea09bea2d13999ed6718c5d875935101ceadd9b5d594ca5b61 SHA512 0cefc7111476c9206e373d9af50018721c88df899758786d155a0f51806b13adddf139805d41fb19437c824ba1cdcee20703100c78a068afc7ccce49204e7466 DIST nvidia-xconfig-390.141.tar.gz 140293 BLAKE2B 08ee93be953f75dbe078c557af7c062092ce8a3b53af0735d43b7feabe6d1c99390b9533027fbc5017d207a70dfa5aecf88d211905bf8f0e846f769a6ea16c2b SHA512 9fedee2f720d86bd24e393328249bf970a1f242b9e750543e757eb13ca30f6ecfda6c63441093ab96ae28d5f38d4e55cc6de6316eb82d2a2f33074144a1eef2f +DIST nvidia-xconfig-390.143.tar.gz 140282 BLAKE2B 3de0fe4bc0a049381e4504002bbe94887334310ca7b17d83add1237d7c15b7783e4f418acba3e261da564b1c00ca244f4ad02f3d2cbca0f0f68ee2900098fb36 SHA512 0c82dda4dd6db0c21cd9a2b88e4a77129bc4a0be8a17b398497328f4f1cb5c319f0428d7fbc3b0177d69246d55f96b03dd740d3480d67bb03049cd0cbe190132 DIST nvidia-xconfig-450.102.04.tar.gz 141072 BLAKE2B 0d299429ccb10f351de0e7b81fa7ce8199da83db346483a7d791fd77276ff6d70b46ba153cdf6503b945d80f4a0108a6ec02a3955c9d7310de901f0e3b1e6e36 SHA512 f5752d7c49d1cb3c0061caace8cf5899c8d61e76f0b7080e05d70cd77758496dd8646a1551d93a12c8ad5f9fcfd53a49c51206af96f36ec1eec7ccfe59505f2d +DIST nvidia-xconfig-450.119.03.tar.gz 141079 BLAKE2B 15200bdc8cfecb2575d95803b62fd110c4ff5bbfbe529ffda35455caba1ce3de91b26b21e40604cf5f57bdca0d6da2754a578ffb376a5582d46c6bbdf0adccbe SHA512 d30f46d56dc3dc0e2ee4c26acb8a229ffb47b5fc45dc288c1c25d197d0138b2cc0a0e94f4a821d5613b359f12b5a34872d7631a9d606916e9f92c61e87cfb0cb DIST nvidia-xconfig-460.67.tar.gz 142323 BLAKE2B 09c7281de09a2c2968b5f4a48eca63110e6db988429c844b55f8efc28fbcd9d44c79ad47149c25f657c2a98ae7576c01b2c9b7f643b8321fe1393adc571ebcaa SHA512 0e65c81ec40d3eaeec036fbd8f46a3052a75ff0ad200c58438ff6c782a5764e62e51d03b4a2080770c32522894641288ac495f62bc39c3d5658b1ff87c9f6cdd -EBUILD nvidia-drivers-390.141-r1.ebuild 10347 BLAKE2B 4208a7f622d515327845c067b007bb8bf262e48153741af240445927d3b828951af664e603e50993128869276f8f9c05e26d66f33f55c390046dfdf699032cf8 SHA512 654dc5e93d4e9b17f0e4508bcd39e4155068d2e5555f97cb2bf69383e432829d984f62d590709fbf5e584ce6fde1b06431a9780d7544f14bc8a4bc80fb67feea -EBUILD nvidia-drivers-390.141.ebuild 11741 BLAKE2B a8b6d64c68c56980d9084ae0efc1714595c0b25bb837136c7bec532e1a039bb6879d436fb7bca12590034b63e582435b921f017febece4308a387ba00caf49ee SHA512 1ec93229573d15474a14065e1b33a09a932428bb09a86e628488396270f7b0623674cfe6437dfd62ed35ca76ecefd0891ec3d5f5b231b013fa70b7967ac870aa -EBUILD nvidia-drivers-450.102.04-r1.ebuild 10837 BLAKE2B b661a414a336b025934b40bf9e22cf784fda726145ae46b9146b656d8513243169eb60c65e0ad92100422fd00766517788dd1773816747acab89edc08d73907b SHA512 8004363510c302da8b373980adcd0595271bfe072f16ea36939ae27bd2a0cef392c5ea39654f0dba858c6911906929bfdd22a1033877a3f9be6e904ee46c417a -EBUILD nvidia-drivers-450.102.04.ebuild 12181 BLAKE2B c4b10edd2bdf5042c4b45b604782e515330dda0143863559351f089ad33ed397fa918dd12b2b516847bf066a73e74e2ab068b3a1b247d798ecb91734bc0d33a4 SHA512 da3857f183185af4303cf26891f029b8906f80c5ec97b241ec397d97cde188dac3af1dcb1f11d443806b4abfca85bbb44012c36060f2d680b360e2d972df4967 -EBUILD nvidia-drivers-460.39-r1.ebuild 12179 BLAKE2B 58e1872093075700d88b6679eb4a1bb6c8368836c9214eded9e084a70c411a0fc245b176b1a97a983f1a85d29efc22cd8e89d04467665f31b1bf5d3dfbff1041 SHA512 71a904989afd4b82e36356e0842c2ca67dbb8efae186b7074a3a6d20c9572f6911681f3ca89ab2a179d4f0699256c2228e40a5d3094ef98cd9704c47aefcd138 -EBUILD nvidia-drivers-460.56.ebuild 12180 BLAKE2B 44da00ff67edfee139d1ea40eb6c5db417daf299d7280bdfc5d7a318f9d29d1553b3490814e98042f92338bf008656a1dff7667def2eef127caf379acac28268 SHA512 cab248b945b07096a35d6f6f77df191d7bc4b3660d754fd5e43882dc11d0fe7f4048395994a10189ab70895af64a27fd8a116fa5d6feff7012f6353279bc1672 -EBUILD nvidia-drivers-460.67.ebuild 10867 BLAKE2B 7a7a30f071407628e016534c879c8b63115d188ba0104513f51ae8c5b48788c499809390fa878382d71ebcd296ddb2aab2671397cb40dfda3290ed3f6fafbe92 SHA512 9052dbc6db2e3a71d2f0bcafea12435bdbc9fcfe6b797f4f0da661cb2dc57d8b23489f7dac09a66901d4dde550c2bc93ff393d63d11fd81fc5b960fcd8887ed1 -MISC metadata.xml 1176 BLAKE2B 1042aa6da7f868c83e5d5beff5edc2ffef8345053bc2e9d9c45c0ac27651c880fa3f967d9849a7398792c0ed86ed57b84af478f5f21a35428824d440d273831d SHA512 ba249c97d7c2d07019dafdad6b8886e8a159670a116324777f9ca8d45cbde631c5c2ba3e5125a81a58686eb8d004c253496a7cc7e8674161cf34a24a18a0392a +DIST nvidia-xconfig-460.73.01.tar.gz 142326 BLAKE2B eb833095365c18fd264086d333d366bf18b312055c59cfe3c50df5d94e4ff3e8dafcd11aab4de1ddfc8594b99216f14054d77263a02063497f6b665a9339a09c SHA512 3e292232a1593cc2893d673b176c1c9738b5c3d8127432d35d5a87d1a142311aec91ff5d59cc2074b1ea2411ac9c188c898fbc6a4c032718f1def92bd862b6dc +DIST nvidia-xconfig-465.24.02.tar.gz 142550 BLAKE2B d0247e4c3cbbd093f8e6a4af4873cc9f85f2b07440bf2aa37c54a54c0e66c7e81dd6dda9381880b0b49a0a3a568cd9bcc8688e9d3534305ec8ceb9857e91293c SHA512 549f6e961eb9406837b02f7a2d0ef8ae61b67117b3e72c0a0edd44cade00ff881a9e14c6101253097021f7950ed7a32fb7df94ef79887a07d5a13098969c1e13 +EBUILD nvidia-drivers-390.141-r2.ebuild 10849 BLAKE2B ddd98ffc162302957d18aa4a4688f098ad26bea8d7a12f86146998b3e23a8cac87b0e94628127f47d10b90edeb91d6c90fbfe70a5dd65c788ca40481359fa88d SHA512 c48adaff9f9f95f06a5b973036d5b885856dd954716fb04a9f8d651d2554f64bbeecce3c673db069a007f122ae2bd46c9121e376ed9a71af3eff5b089ae0ed42 +EBUILD nvidia-drivers-390.143-r1.ebuild 10851 BLAKE2B 2297d5aae4dee4d7acac7a29fd3070b3037e2c05aec47854e6519a1977acc1bd71b658739fb5ffb1ee277734c19218369ece3f1fba22cd6a2a51cf0faa88c23d SHA512 6b8e80f74528fe4abbac946d0815e61c65420fc20f466a287ded5887cce13bb5880fb3fc76737dd44fdd7b74c36a1be45289eff0e0d7917df458671fddc91785 +EBUILD nvidia-drivers-450.102.04-r1.ebuild 11071 BLAKE2B a792c5e83e93e11142ff81ef106f20826e30f374c09760584f9d50d8e49befee62fbddd7a1334b0f622557fb561d19a24c6ce8e7ea2245c2d35de899d746e2c1 SHA512 20197c57a202b1455f98b37ed5157a2996d40023ea9b5cf43c019c29a88deb54209591b45b0a71af9af001d2b92595f40fcba6543319348ca79ed56542c76ebe +EBUILD nvidia-drivers-450.119.03.ebuild 11249 BLAKE2B a45267cb693c1ca82ad161798570f384cb4db962f483eeee4616c2369cf811f5342ef1d772e35def0637a98989a73ce9b691665f316658c17838e5da47b334e2 SHA512 337a91bb85c3b00f31ef4c54abcbc2b289325ff569536a2f69d8634b6927d0e3a6765b1907ccd3336f8ab2462a1af14352317fb60775c9df6e0cc7e161208528 +EBUILD nvidia-drivers-460.67.ebuild 11233 BLAKE2B c7b180f613c520a5a450af53354d7ef22a25e9a88f85fa6c43b60a2a8626e41515a3e77b6e7d1e745c381a218ed45705c08c3befe92ac1feb072c9cc9e524594 SHA512 89046a08b8b968d9b0146455b70761924b867c0bbe2e6a0145a8f698d329f592bdc332632f50bca998e7d2fcf369d2c61262d12bdd65f513f1d6df07ee61d313 +EBUILD nvidia-drivers-460.73.01.ebuild 11234 BLAKE2B d718ff03860759fcbd523a1bedde81500efda774a9a9d36415e8bf8845ce54bdb6f12ec9f37e4e72adaef962a3836ddb199222a40e0095cbc982f7221f1af7f1 SHA512 afe1c81ca6985151af389f9c230392ceafadc743fe5c025171b6729157cb97ed59cb35489742d6c7baf7b09f8353459467e2bf7148f712fc834c658dbbb306d4 +EBUILD nvidia-drivers-465.24.02.ebuild 11353 BLAKE2B 3f0e866da5fd8db8ff96ca6e1aa978b2a3b6273132e66a3bd543d456b2cda6076ffcd9e96c4360af1329e0b2ed0fb223b819629dc9eb65e4819da38968fd8a80 SHA512 fe6ff772b8579cf69d57073419a3f393e474d448de0a925388c576ff0e6aa05ecf79d988a53d192cbe13475e5e60dad0d9c9d66958d413d781f1a0a5ebafbead +MISC metadata.xml 888 BLAKE2B c1692e287a60432083543e47445339c17c3bbfb8d61fa58b8205e7dc8bbed33bea60f47fa6674c563c72c3c56e9766ae4f33b4a943dfae76c30e51603b158156 SHA512 c8d9975e1c5be02971bbfbcb545686034f6f02956d0dde98afd5d9779478e883c2ead731e9ccab8cd0b695437dd1d1cbcc41dd234210b78d40294bfcb07128ab diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-440.26-locale.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-440.26-locale.patch deleted file mode 100644 index aa2a74349f2f..000000000000 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-440.26-locale.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/kernel/conftest.sh -+++ b/kernel/conftest.sh -@@ -6,6 +6,10 @@ - SCRIPTDIR=`dirname $0` - cd $SCRIPTDIR - -+# translate_and_compile_header_files() expects the default locale -+# https://bugs.gentoo.org/698238 -+export LC_ALL=C -+ - CC="$1" - ARCH=$2 - ISYSTEM=`$CC -print-file-name=include 2> /dev/null` diff --git a/x11-drivers/nvidia-drivers/files/nvidia-persistenced.conf b/x11-drivers/nvidia-drivers/files/nvidia-persistenced.conf deleted file mode 100644 index 637ac1afb415..000000000000 --- a/x11-drivers/nvidia-drivers/files/nvidia-persistenced.conf +++ /dev/null @@ -1,8 +0,0 @@ -# run-time configuration file for /etc/init.d/nvidia-persistenced - -# NVPD_USER: The user nvidia-persistenced is intended to run for -NVPD_USER="" - -# ARGS: Additional arguments to set the default persistence mode -# (see nvidia-persistenced(1)) -ARGS="" diff --git a/x11-drivers/nvidia-drivers/files/nvidia-persistenced.init b/x11-drivers/nvidia-drivers/files/nvidia-persistenced.init deleted file mode 100644 index f80456d16036..000000000000 --- a/x11-drivers/nvidia-drivers/files/nvidia-persistenced.init +++ /dev/null @@ -1,24 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -pidfile="/var/run/nvidia-persistenced/nvidia-persistenced.pid" - -start() { - if ! [ "${NVPD_USER}x" = x ]; then - ebegin "Starting nvidia-persistenced for ${NVPD_USER}" - NVPD_USER_ARG="--user ${NVPD_USER}" - else - ebegin "Starting nvidia-persistenced" - fi - start-stop-daemon --start --quiet --pidfile ${pidfile} \ - --background --exec /opt/bin/nvidia-persistenced \ - -- ${NVPD_USER_ARG} ${ARGS} - eend $? -} - -stop() { - ebegin "Stopping nvidia-persistenced" - start-stop-daemon --stop --quiet --pidfile ${pidfile} - eend $? -} diff --git a/x11-drivers/nvidia-drivers/files/nvidia-settings-fno-common.patch b/x11-drivers/nvidia-drivers/files/nvidia-settings-fno-common.patch deleted file mode 100644 index 06e046ff61d3..000000000000 --- a/x11-drivers/nvidia-drivers/files/nvidia-settings-fno-common.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/nvidia-settings-@PV@/src/gtk+-2.x/ctkvdpau.c -+++ b/nvidia-settings-@PV@/src/gtk+-2.x/ctkvdpau.c -@@ -103,6 +103,8 @@ - const gchar* __video_mixer_attribute_help = - "This shows the video mixer attributes and any applicable ranges."; - -+struct VDPAUDeviceImpl VDPAUDeviceFunctions; -+ - static int queryOutputSurface(CtkVDPAU *ctk_vdpau, VdpDevice device, - VdpGetProcAddress *getProcAddress); - ---- a/nvidia-settings-@PV@/src/gtk+-2.x/ctkvdpau.h -+++ b/nvidia-settings-@PV@/src/gtk+-2.x/ctkvdpau.h -@@ -46,7 +46,7 @@ - (G_TYPE_INSTANCE_GET_CLASS ((obj), CTK_TYPE_VDPAU, CtkVDPAUClass)) - - --struct VDPAUDeviceImpl { -+extern struct VDPAUDeviceImpl { - - VdpGetErrorString *GetErrorString; - VdpGetProcAddress *GetProcAddress; diff --git a/x11-drivers/nvidia-drivers/files/nvidia-settings-linker.patch b/x11-drivers/nvidia-drivers/files/nvidia-settings-linker.patch deleted file mode 100644 index fe9d336413fd..000000000000 --- a/x11-drivers/nvidia-drivers/files/nvidia-settings-linker.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/nvidia-settings-@PV@/utils.mk -+++ b/nvidia-settings-@PV@/utils.mk -@@ -475,7 +475,7 @@ - define READ_ONLY_OBJECT_FROM_FILE_RULE - $$(OUTPUTDIR)/$$(notdir $(1)).o: $(1) - $(at_if_quiet)cd $$(dir $(1)); \ -- $$(call quiet_cmd_no_at,LD) -r -z noexecstack --format=binary \ -+ $$(call quiet_cmd_no_at,NVLD) -r -z noexecstack --format=binary \ - $$(notdir $(1)) -o $$(OUTPUTDIR_ABSOLUTE)/$$(notdir $$@) - $$(call quiet_cmd,OBJCOPY) \ - --rename-section .data=.rodata,contents,alloc,load,data,readonly \ ---- a/nvidia-settings-@PV@/src/libXNVCtrl/utils.mk -+++ b/nvidia-settings-@PV@/src/libXNVCtrl/utils.mk -@@ -475,7 +475,7 @@ - define READ_ONLY_OBJECT_FROM_FILE_RULE - $$(OUTPUTDIR)/$$(notdir $(1)).o: $(1) - $(at_if_quiet)cd $$(dir $(1)); \ -- $$(call quiet_cmd_no_at,LD) -r -z noexecstack --format=binary \ -+ $$(call quiet_cmd_no_at,NVLD) -r -z noexecstack --format=binary \ - $$(notdir $(1)) -o $$(OUTPUTDIR_ABSOLUTE)/$$(notdir $$@) - $$(call quiet_cmd,OBJCOPY) \ - --rename-section .data=.rodata,contents,alloc,load,data,readonly \ diff --git a/x11-drivers/nvidia-drivers/files/nvidia-settings.desktop b/x11-drivers/nvidia-drivers/files/nvidia-settings.desktop deleted file mode 100644 index b4b452ec829a..000000000000 --- a/x11-drivers/nvidia-drivers/files/nvidia-settings.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Type=Application -Name=NVIDIA X Server Settings -Comment=Configure NVIDIA X Server Settings -Exec=/usr/bin/nvidia-settings -Icon=nvidia-settings -Categories=System;Settings; diff --git a/x11-drivers/nvidia-drivers/files/nvidia-smi.init b/x11-drivers/nvidia-drivers/files/nvidia-smi.init deleted file mode 100644 index 8ee51e348939..000000000000 --- a/x11-drivers/nvidia-drivers/files/nvidia-smi.init +++ /dev/null @@ -1,24 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -pidfile="/run/nvidia-smi.pid" - -depend() { - after modules -} - -start() { - ebegin "Starting NVIDIA System Management Interface" - rm -f ${pidfile} - start-stop-daemon --start --quiet --pidfile ${pidfile} \ - --make-pidfile --background --exec /opt/bin/nvidia-smi -- \ - -q -l 300 - eend $? -} - -stop() { - ebegin "Stopping NVIDIA System Management Interface" - start-stop-daemon --stop --quiet --pidfile ${pidfile} - eend $? -} diff --git a/x11-drivers/nvidia-drivers/files/nvidia-udev.sh-r1 b/x11-drivers/nvidia-drivers/files/nvidia-udev.sh-r1 deleted file mode 100644 index 6579bf74adb2..000000000000 --- a/x11-drivers/nvidia-drivers/files/nvidia-udev.sh-r1 +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -if [ $# -ne 1 ]; then - echo "Invalid args" >&2 - exit 1 -fi - -case $1 in - add|ADD) - #hopefully this prevents infinite loops like bug #454740 - if lsmod | grep -iq nvidia; then - /opt/bin/nvidia-smi > /dev/null - fi - ;; - remove|REMOVE) - rm -f /dev/nvidia* - ;; -esac - -exit 0 diff --git a/x11-drivers/nvidia-drivers/files/nvidia-uvm.udev-rule b/x11-drivers/nvidia-drivers/files/nvidia-uvm.udev-rule deleted file mode 100644 index 0602a4353fef..000000000000 --- a/x11-drivers/nvidia-drivers/files/nvidia-uvm.udev-rule +++ /dev/null @@ -1 +0,0 @@ -KERNEL=="nvidia_uvm", RUN+="/bin/bash -c '/bin/mknod -m 660 /dev/nvidia-uvm c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0; /bin/chgrp video /dev/nvidia-uvm'" diff --git a/x11-drivers/nvidia-drivers/files/nvidia.udev-rule b/x11-drivers/nvidia-drivers/files/nvidia.udev-rule deleted file mode 100644 index 2eb30bb0eba5..000000000000 --- a/x11-drivers/nvidia-drivers/files/nvidia.udev-rule +++ /dev/null @@ -1,6 +0,0 @@ -ACTION=="add", DEVPATH=="/module/nvidia", SUBSYSTEM=="module", RUN+="nvidia-udev.sh $env{ACTION}" -# Previously the ACTION was "add|remove" but one user on bug #376527 had a -# problem until he recompiled udev-171-r5, which is one of the versions I -# tested with and it was fine. I'm breaking the rules out just to be safe -# so someone else doesn't have an issue -ACTION=="remove", DEVPATH=="/module/nvidia", SUBSYSTEM=="module", RUN+="nvidia-udev.sh $env{ACTION}" diff --git a/x11-drivers/nvidia-drivers/metadata.xml b/x11-drivers/nvidia-drivers/metadata.xml index 294430ee9cfd..107804d69d10 100644 --- a/x11-drivers/nvidia-drivers/metadata.xml +++ b/x11-drivers/nvidia-drivers/metadata.xml @@ -9,11 +9,8 @@ <email>soap@gentoo.org</email> </maintainer> <use> - <flag name="compat">Install non-GLVND libGL for backwards compatibility</flag> <flag name="driver">Install kernel driver modules</flag> - <flag name="kms">Enable support for kernel mode setting (KMS)</flag> <flag name="tools">Install additional tools such as nvidia-settings</flag> - <flag name="uvm">Install the Unified Memory kernel module (nvidia-uvm) for sharing memory between CPU and GPU in CUDA programs</flag> </use> <upstream> <remote-id type="cpe">cpe:/a:nvidia:gpu_driver</remote-id> diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.141-r2.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.141-r2.ebuild new file mode 100644 index 000000000000..50b08991c3fb --- /dev/null +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.141-r2.ebuild @@ -0,0 +1,388 @@ +# 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 \ + readme.gentoo-r1 systemd toolchain-funcs unpacker + +NV_KERNEL_MAX="5.10" +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 ) + x86? ( ${NV_BIN_URI}x86/${PV}/NVIDIA-Linux-x86-${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" +SLOT="0/${PV%%.*}" +KEYWORDS="-* amd64 x86" +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 + "${FILESDIR}"/nvidia-settings-390.141-fno-common.patch +) +DOCS=( + README.txt NVIDIA_Changelog + nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt +) +HTML_DOCS=( html/. ) + +DISABLE_AUTOFORMATTING="yes" +DOC_CONTENTS="Users should be in the 'video' group to use NVIDIA devices. +You can add yourself by using: gpasswd -a my-user video + +For general information on using nvidia-drivers, please see: +https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers" + +pkg_setup() { + use driver || return + + local CONFIG_CHECK=" + PROC_FS + ~DRM_KMS_HELPER + ~SYSVIPC + ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT + ~!LOCKDEP + !DEBUG_MUTEXES" + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection + of drivers (no custom config), and optional nvidia-drm.modeset=1. + Cannot be directly selected in the kernel's menuconfig, so enable + options such as CONFIG_DRM_FBDEV_EMULATION instead. + 390.xx branch: also used by a GLX workaround needed for OpenGL." + + BUILD_PARAMS='NV_VERBOSE=1 IGNORE_CC_MISMATCH=yes SYSSRC="${KV_DIR}" SYSOUT="${KV_OUT_DIR}"' + use x86 && BUILD_PARAMS+=' ARCH=i386' # needed for recognition + BUILD_TARGETS="modules" # defaults' clean sometimes deletes modules + MODULE_NAMES=" + nvidia(video:kernel) + nvidia-drm(video:kernel) + nvidia-modeset(video:kernel)" + use amd64 && MODULE_NAMES+=" nvidia-uvm(video:kernel)" # no x86 support + + linux-mod_pkg_setup + + if [[ ${MERGE_TYPE} != binary ]] && kernel_is -gt ${NV_KERNEL_MAX/./ }; then + 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 + + # alternate tls library needed for 390's libglx.so (bug #785289) + mv tls/libnvidia-tls.so.${PV} . || die + if [[ -d 32 ]]; then + mv 32/tls/libnvidia-tls.so.${PV} 32 || die + fi + + # 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 + + sed 's/__NV_VK_ICD__/libGLX_nvidia.so.0/' \ + nvidia_icd.json.template > nvidia_icd.json || die + + sed "s/%LIBDIR%/$(get_libdir)/g" "${FILESDIR}/nvidia-390.conf" \ + > nvidia-drm-outputclass.conf || 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 + + # 390.xx persistenced doesn't auto-detect libtirpc + LIBS=$($(tc-getPKG_CONFIG) --libs libtirpc) \ + common_cflags=$($(tc-getPKG_CONFIG) --cflags libtirpc) \ + nvidia-drivers_make persistenced + + nvidia-drivers_make modprobe + use X && nvidia-drivers_make xconfig + + if use tools; then + nvidia-drivers_make settings + elif use static-libs; then + nvidia-drivers_make settings/src build-xnvctrl + 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-compiler + nvidia-eglcore + nvidia-encode + nvidia-fatbinaryloader + nvidia-glcore + nvidia-glsi + nvidia-ml + nvidia-opencl + nvidia-ptxjitcompiler + nvidia-tls + ) + + if use X; then + libs+=( + GLX_nvidia + nvidia-fbc + nvidia-ifr + vdpau_nvidia + ) + fi + + local libdir=. + if [[ -d 32 && ${ABI} == x86 ]]; then + libdir+=/32 + else + libs+=( + nvidia-cfg + nvidia-wfb + ) + 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-169.07 nvidia.conf + doins "${FILESDIR}"/nvidia-blacklist-nouveau.conf + doins "${FILESDIR}"/nvidia-rmmod.conf + fi + + if use X; then + exeinto /usr/$(get_libdir)/xorg/modules/drivers + doexe nvidia_drv.so + + # 390 has legacy glx needing a modified .conf (bug #713546) + exeinto /usr/$(get_libdir)/extensions/nvidia + newexe libglx.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 + 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/libXNVCtrl/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 + + einstalldocs + readme.gentoo_create_doc +} + +pkg_preinst() { + has_version "x11-drivers/nvidia-drivers[wayland]" && NV_HAD_WAYLAND=1 + + 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 +} + +pkg_postinst() { + use driver && linux-mod_pkg_postinst + + readme.gentoo_print_elog + + if [[ -r /proc/driver/nvidia/version && + $(grep -o ' [0-9.]* ' /proc/driver/nvidia/version) != " ${PV} " ]]; then + ewarn "Currently loaded NVIDIA modules do not match the newly installed" + ewarn "libraries and will lead to GPU-using application issues." + use driver && ewarn "The easiest way to fix this is usually to reboot." + fi + + if use x86 && [[ ! ${REPLACING_VERSIONS} ]]; then + elog "Note that NVIDIA is no longer offering support for the unified memory" + elog "module (nvidia-uvm) on x86 (32bit), as such the module was not built." + elog "This means OpenCL/CUDA (and related, like nvenc) cannot be used." + elog "Other functions, like OpenGL, will continue to work." + fi + + if [[ ${NV_HAD_WAYLAND} ]]; then + elog "Support for EGLStream (egl-wayland) is no longer offered with legacy" + elog "nvidia-drivers. It is recommended to use nouveau drivers for wayland." + fi +} diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.141.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.141.ebuild deleted file mode 100644 index d2473bd071db..000000000000 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.141.ebuild +++ /dev/null @@ -1,470 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \ - nvidia-driver toolchain-funcs unpacker udev - -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}" -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}" - -NV_URI="https://us.download.nvidia.com/XFree86/" -SRC_URI=" - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run ) - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run ) - tools? ( - https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 - )" - -EMULTILIB_PKG="true" - -LICENSE="GPL-2 NVIDIA-r2" -SLOT="0/${PV%%.*}" -KEYWORDS="-* amd64 x86" -IUSE="compat +driver +kms multilib static-libs +tools uvm wayland +X" -REQUIRED_USE=" - tools? ( X ) - static-libs? ( tools )" - -COMMON=" - driver? ( acct-group/video ) - tools? ( - dev-libs/atk - dev-libs/glib:2 - dev-libs/jansson - x11-libs/cairo - x11-libs/gdk-pixbuf - x11-libs/gtk+:3 - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXrandr - x11-libs/libXv - x11-libs/libXxf86vm - x11-libs/pango[X] - ) - X? ( - app-misc/pax-utils - media-libs/libglvnd[X,${MULTILIB_USEDEP}] - )" -DEPEND=" - ${COMMON} - virtual/linux-sources - tools? ( sys-apps/dbus )" -RDEPEND=" - ${COMMON} - uvm? ( >=virtual/opencl-3 ) - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] ) - X? ( - <x11-base/xorg-server-1.20.99:= - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}] - sys-libs/zlib[${MULTILIB_USEDEP}] - )" - -QA_PREBUILT="opt/* usr/lib*" -S="${WORKDIR}" -NV_KV_MAX_PLUS="5.11" -CONFIG_CHECK=" - !DEBUG_MUTEXES - ~!I2C_NVIDIA_GPU - ~!LOCKDEP - ~DRM - ~DRM_KMS_HELPER - ~SYSVIPC" - -pkg_pretend() { - use x86 && CONFIG_CHECK+=" ~HIGHMEM" - nvidia-driver_check -} - -pkg_setup() { - use x86 && CONFIG_CHECK+=" ~HIGHMEM" - nvidia-driver_check - - # try to turn off distcc and ccache for people that have a problem with it - export DISTCC_DISABLE=1 - export CCACHE_DISABLE=1 - - if use driver; then - MODULE_NAMES="nvidia(video:${S}/kernel)" - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)" - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)" - - # This needs to run after MODULE_NAMES (so that the eclass checks - # whether the kernel supports loadable modules) but before BUILD_PARAMS - # is set (so that KV_DIR is populated). - linux-mod_pkg_setup - - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \ - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1" - - # linux-mod_src_compile calls set_arch_to_kernel, which - # sets the ARCH to x86 but NVIDIA's wrapping Makefile - # expects x86_64 or i386 and then converts it to x86 - # later on in the build process - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')" - fi -} - -src_prepare() { - gunzip *1.gz || die - - if use tools; then - cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die - cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die - sed -i \ - -e "s:@PV@:${PV}:g" \ - "${WORKDIR}"/nvidia-settings-fno-common.patch \ - "${WORKDIR}"/nvidia-settings-linker.patch \ - || die - eapply "${WORKDIR}"/nvidia-settings-fno-common.patch - eapply "${WORKDIR}"/nvidia-settings-linker.patch - - # remove GTK2 support entirely (#592730) - sed -i \ - -e '/^GTK2LIB = /d;/INSTALL.*GTK2LIB/,+1d' \ - nvidia-settings-${PV}/src/Makefile || die - fi - - default - - if ! [[ -f nvidia_icd.json ]]; then - cp nvidia_icd.json.template nvidia_icd.json || die - sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die - fi - - sed "s:%LIBDIR%:$(get_libdir):g" "${FILESDIR}/nvidia-390.conf" \ - > "${T}"/nvidia-390.conf || die -} - -src_configure() { - tc-export AR CC LD OBJCOPY - default -} - -src_compile() { - pushd kernel >/dev/null || die - if use driver; then - BUILD_TARGETS=module linux-mod_src_compile \ - KERNELRELEASE="${KV_FULL}" \ - src="${KERNEL_DIR}" - fi - popd >/dev/null || die - - if use tools; then - emake -C nvidia-settings-${PV}/src \ - DO_STRIP= \ - LIBDIR="$(get_libdir)" \ - NVLD="$(tc-getLD)" \ - NV_VERBOSE=1 \ - RANLIB="$(tc-getRANLIB)" \ - build-xnvctrl - - emake -C nvidia-settings-${PV}/src \ - DO_STRIP= \ - GTK3_AVAILABLE=1 \ - LIBDIR="$(get_libdir)" \ - NVLD="$(tc-getLD)" \ - NVML_ENABLED=0 \ - NV_USE_BUNDLED_LIBJANSSON=0 \ - NV_VERBOSE=1 - fi -} - -# Install nvidia library: -# the first parameter is the library to install -# the second parameter is the provided soversion -# the third parameter is the target directory if it is not /usr/lib -donvidia() { - # Full path to library - nv_LIB="${1}" - - # SOVER to use - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})" - - # Where to install - nv_DEST="${2}" - - # Get just the library name - nv_LIBNAME=$(basename "${nv_LIB}") - - if [[ -n ${nv_DEST} ]]; then - exeinto ${nv_DEST} - action="doexe" - else - nv_DEST="/usr/$(get_libdir)" - action="dolib.so" - fi - - # Install the library - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}" - - # If the library has a SONAME and SONAME does not match the library name, - # then we need to create a symlink - if [[ -n ${nv_SOVER} && ${nv_SOVER} != ${nv_LIBNAME} ]]; then - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} - fi - - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} -} - -src_install() { - if use driver; then - linux-mod_src_install - - # Add the aliases - # This file is tweaked with the appropriate video group in - # pkg_preinst, see bug #491414 - insinto /etc/modprobe.d - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf - if use uvm; then - doins "${FILESDIR}"/nvidia-rmmod.conf - udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules - else - sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \ - > "${T}"/nvidia-rmmod.conf || die - doins "${T}"/nvidia-rmmod.conf - fi - - # Ensures that our device nodes are created when not using X - exeinto "$(get_udevdir)" - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules - fi - - # NVIDIA kernel <-> userspace driver config lib - donvidia libnvidia-cfg.so.${PV} - - # NVIDIA framebuffer capture library - donvidia libnvidia-fbc.so.${PV} - - # NVIDIA video encode/decode <-> CUDA - donvidia libnvcuvid.so.${PV} - donvidia libnvidia-encode.so.${PV} - - if use X; then - # Xorg DDX driver - exeinto /usr/$(get_libdir)/xorg/modules/drivers - doexe nvidia_drv.so - - # Xorg GLX driver - donvidia libglx.so.${PV} \ - /usr/$(get_libdir)/extensions/nvidia - - # Xorg nvidia.conf - insinto /usr/share/X11/xorg.conf.d - newins {,50-}nvidia-drm-outputclass.conf - - insinto /usr/share/glvnd/egl_vendor.d - doins 10_nvidia.json - fi - - if use wayland; then - insinto /usr/share/egl/egl_external_platform.d - doins 10_nvidia_wayland.json - fi - - # OpenCL ICD for NVIDIA - insinto /etc/OpenCL/vendors - doins nvidia.icd - - # Helper Apps - exeinto /opt/bin/ - - if use X; then - doexe nvidia-xconfig - - insinto /etc/vulkan/icd.d - doins nvidia_icd.json - - insinto /etc/X11/xorg.conf.d - doins "${T}"/nvidia-390.conf - fi - - doexe nvidia-cuda-mps-control - doexe nvidia-cuda-mps-server - doexe nvidia-debugdump - doexe nvidia-persistenced - doexe nvidia-smi - - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092) - doexe nvidia-modprobe - fowners root:video /opt/bin/nvidia-modprobe - fperms 4710 /opt/bin/nvidia-modprobe - dosym ../../opt/bin/nvidia-modprobe /usr/bin/nvidia-modprobe - - doman nvidia-cuda-mps-control.1 - doman nvidia-modprobe.1 - doman nvidia-persistenced.1 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced - - if use tools; then - emake -C nvidia-settings-${PV}/src/ \ - DESTDIR="${ED}" \ - DO_STRIP= \ - GTK3_AVAILABLE=1 \ - LIBDIR="${ED}/usr/$(get_libdir)" \ - NV_USE_BUNDLED_LIBJANSSON=0 \ - NV_VERBOSE=1 \ - PREFIX=/usr \ - install - - if use static-libs; then - dolib.a nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a - - insinto /usr/include/NVCtrl - doins nvidia-settings-${PV}/src/libXNVCtrl/*.h - fi - - insinto /usr/share/nvidia/ - doins nvidia-application-profiles-${PV}-key-documentation - - insinto /etc/nvidia - newins \ - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc - - doicon nvidia-settings.png - domenu "${FILESDIR}"/nvidia-settings.desktop - - exeinto /etc/X11/xinit/xinitrc.d - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings - fi - - dobin nvidia-bug-report.sh - - if has_multilib_profile && use multilib; then - local OABI=${ABI} - for ABI in $(multilib_get_enabled_abis); do - src_install-libs - done - ABI=${OABI} - unset OABI - else - src_install-libs - fi - - is_final_abi || die "failed to iterate through all ABIs" - - # Documentation - newdoc README.txt README - dodoc NVIDIA_Changelog - doman nvidia-smi.1 - use X && doman nvidia-xconfig.1 - use tools && doman nvidia-settings.1 - doman nvidia-cuda-mps-control.1 - - readme.gentoo_create_doc - - docinto html - dodoc -r html/. -} - -src_install-libs() { - local inslibdir=$(get_libdir) - local GL_ROOT="/usr/$(get_libdir)" - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia" - local nv_libdir="${S}" - - if has_multilib_profile && [[ ${ABI} == "x86" ]]; then - nv_libdir="${S}"/32 - fi - - if use X; then - NV_GLX_LIBRARIES=( - "libEGL_nvidia.so.${PV} ${GL_ROOT}" - "libGLESv1_CM_nvidia.so.${PV} ${GL_ROOT}" - "libGLESv2_nvidia.so.${PV} ${GL_ROOT}" - "libGLX_nvidia.so.${PV} ${GL_ROOT}" - "libOpenCL.so.1.0.0 ${CL_ROOT}" - "libcuda.so.${PV}" - "libnvcuvid.so.${PV}" - "libnvidia-compiler.so.${PV}" - "libnvidia-eglcore.so.${PV}" - "libnvidia-encode.so.${PV}" - "libnvidia-fatbinaryloader.so.${PV}" - "libnvidia-fbc.so.${PV}" - "libnvidia-glcore.so.${PV}" - "libnvidia-glsi.so.${PV}" - "libnvidia-ifr.so.${PV}" - "libnvidia-opencl.so.${PV}" - "libnvidia-ptxjitcompiler.so.${PV}" - "libvdpau_nvidia.so.${PV}" - ) - - if use wayland && [[ ${ABI} == "amd64" ]]; then - NV_GLX_LIBRARIES+=( - "libnvidia-egl-wayland.so.1.0.2" - ) - fi - - if [[ ${ABI} == "amd64" ]]; then - NV_GLX_LIBRARIES+=( - "libnvidia-wfb.so.${PV}" - ) - fi - - NV_GLX_LIBRARIES+=( - "libnvidia-ml.so.${PV}" - "tls/libnvidia-tls.so.${PV}" - ) - - local nv_lib - for nv_lib in "${NV_GLX_LIBRARIES[@]}"; do - donvidia "${nv_libdir}"/${nv_lib} - done - fi -} - -pkg_preinst() { - if use driver; then - linux-mod_pkg_preinst - - local videogroup="$(getent group video | cut -d ':' -f 3)" - if [[ -z ${videogroup} ]]; then - eerror "Failed to determine the video group gid" - die "Failed to determine the video group gid" - else - sed -i \ - -e "s:PACKAGE:${PF}:g" \ - -e "s:VIDEOGID:${videogroup}:" \ - "${ED}"/etc/modprobe.d/nvidia.conf || die - fi - fi - - # Clean the dynamic libGL stuff's home to ensure - # we dont have stale libs floating around - rm -rf "${EROOT}"/usr/lib/opengl/nvidia/* || die - # Make sure we nuke the old nvidia-glx's env.d file - rm -f "${EROOT}"/etc/env.d/09nvidia || die -} - -pkg_postinst() { - use driver && linux-mod_pkg_postinst - - readme.gentoo_print_elog - - if ! use X; then - elog "You have elected to not install the X.org driver. Along with" - elog "this the OpenGL libraries and VDPAU libraries were not" - elog "installed. Additionally, once the driver is loaded your card" - elog "and fan will run at max speed which may not be desirable." - elog "Use the 'nvidia-smi' init script to have your card and fan" - elog "speed scale appropriately." - elog - fi - if ! use tools; then - elog "USE=tools controls whether the nvidia-settings application" - elog "is installed. If you would like to use it, enable that" - elog "flag and re-emerge this ebuild. Optionally you can install" - elog "media-video/nvidia-settings" - elog - fi -} - -pkg_postrm() { - use driver && linux-mod_pkg_postrm -} diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.141-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.143-r1.ebuild index c639458a22d9..8cb722145a59 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.141-r1.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.143-r1.ebuild @@ -5,9 +5,9 @@ EAPI=7 MODULES_OPTIONAL_USE="driver" inherit desktop linux-info linux-mod multilib-build \ - optfeature systemd toolchain-funcs unpacker + readme.gentoo-r1 systemd toolchain-funcs unpacker -NV_KERNEL_MAX="5.10" +NV_KERNEL_MAX="5.12" NV_BIN_URI="https://download.nvidia.com/XFree86/Linux-" NV_GIT_URI="https://github.com/NVIDIA/nvidia-" @@ -72,18 +72,6 @@ BDEPEND=" QA_PREBUILT="opt/* usr/lib*" -CONFIG_CHECK=" - ~DRM_KMS_HELPER - ~SYSVIPC - ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT - ~!LOCKDEP - !DEBUG_MUTEXES" -ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection - of drivers (no custom config), and optional nvidia-drm.modeset=1. - Cannot be directly selected in the kernel's menuconfig, so enable - options such as CONFIG_DRM_FBDEV_EMULATION instead. - 390.xx branch: also used by a GLX workaround needed for OpenGL." - PATCHES=( "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch "${FILESDIR}"/nvidia-settings-390.141-fno-common.patch @@ -94,8 +82,29 @@ DOCS=( ) HTML_DOCS=( html/. ) +DISABLE_AUTOFORMATTING="yes" +DOC_CONTENTS="Users should be in the 'video' group to use NVIDIA devices. +You can add yourself by using: gpasswd -a my-user video + +For general information on using nvidia-drivers, please see: +https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers" + pkg_setup() { use driver || return + + local CONFIG_CHECK=" + PROC_FS + ~DRM_KMS_HELPER + ~SYSVIPC + ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT + ~!LOCKDEP + !DEBUG_MUTEXES" + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection + of drivers (no custom config), and optional nvidia-drm.modeset=1. + Cannot be directly selected in the kernel's menuconfig, so enable + options such as CONFIG_DRM_FBDEV_EMULATION instead. + 390.xx branch: also used by a GLX workaround needed for OpenGL." + BUILD_PARAMS='NV_VERBOSE=1 IGNORE_CC_MISMATCH=yes SYSSRC="${KV_DIR}" SYSOUT="${KV_OUT_DIR}"' use x86 && BUILD_PARAMS+=' ARCH=i386' # needed for recognition BUILD_TARGETS="modules" # defaults' clean sometimes deletes modules @@ -104,9 +113,10 @@ pkg_setup() { nvidia-drm(video:kernel) nvidia-modeset(video:kernel)" use amd64 && MODULE_NAMES+=" nvidia-uvm(video:kernel)" # no x86 support + linux-mod_pkg_setup - if [[ ${MERGE_TYPE} != binary ]] && kernel_is gt ${NV_KERNEL_MAX/./ }; then + if [[ ${MERGE_TYPE} != binary ]] && kernel_is -gt ${NV_KERNEL_MAX/./ }; then ewarn "Kernel ${KV_MAJOR}.${KV_MINOR} is either known to break this version of nvidia-drivers" ewarn "or was not tested with it. It is recommended to use one of:" ewarn " <=sys-kernel/gentoo-kernel-${NV_KERNEL_MAX}" @@ -128,6 +138,12 @@ src_prepare() { default + # alternate tls library needed for 390's libglx.so (bug #785289) + mv tls/libnvidia-tls.so.${PV} . || die + if [[ -d 32 ]]; then + mv 32/tls/libnvidia-tls.so.${PV} 32 || die + fi + # prevent detection of incomplete kernel DRM support (bug #603818) sed 's/defined(CONFIG_DRM)/defined(CONFIG_DRM_KMS_HELPER)/' \ -i kernel/conftest.sh || die @@ -153,16 +169,18 @@ src_prepare() { gzip -d nvidia-{cuda-mps-control,smi}.1.gz || die } -nvidia-drivers_make() { - emake -C nvidia-${1} ${2} \ - DESTDIR="${ED}" PREFIX=/usr LIBDIR="${ED}/usr/$(get_libdir)" \ - HOST_CC="$(tc-getBUILD_CC)" HOST_LD="$(tc-getBUILD_LD)" \ - DO_STRIP= MANPAGE_GZIP= \ - NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 OUTPUTDIR=out -} - src_compile() { + nvidia-drivers_make() { + emake -C nvidia-${1} ${2} \ + PREFIX="${EPREFIX}/usr" \ + HOST_CC="$(tc-getBUILD_CC)" \ + HOST_LD="$(tc-getBUILD_LD)" \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 DO_STRIP= OUTPUTDIR=out + } + tc-export AR CC LD OBJCOPY + # may no longer be relevant but kept as a safety export DISTCC_DISABLE=1 CCACHE_DISABLE=1 @@ -183,60 +201,69 @@ src_compile() { fi } -nvidia-drivers_libs_install() { - local libs=( - EGL_nvidia - GLESv1_CM_nvidia - GLESv2_nvidia - cuda - nvcuvid - nvidia-compiler - nvidia-eglcore - nvidia-encode - nvidia-fatbinaryloader - nvidia-glcore - nvidia-glsi - nvidia-ml - nvidia-opencl - nvidia-ptxjitcompiler - nvidia-tls - ) - - if use X; then - libs+=( - GLX_nvidia - nvidia-fbc - nvidia-ifr - vdpau_nvidia +src_install() { + nvidia-drivers_make_install() { + emake -C nvidia-${1} install \ + DESTDIR="${D}" \ + PREFIX="${EPREFIX}/usr" \ + LIBDIR="${ED}/usr/$(get_libdir)" \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + } + + nvidia-drivers_libs_install() { + local libs=( + EGL_nvidia + GLESv1_CM_nvidia + GLESv2_nvidia + cuda + nvcuvid + nvidia-compiler + nvidia-eglcore + nvidia-encode + nvidia-fatbinaryloader + nvidia-glcore + nvidia-glsi + nvidia-ml + nvidia-opencl + nvidia-ptxjitcompiler + nvidia-tls ) - fi - local libdir=. - if multilib_is_native_abi; then - libs+=( - nvidia-cfg - nvidia-wfb - ) - else - libdir+=/32 - fi - - local lib soname - for lib in "${libs[@]}"; do - [[ ${lib:0:3} != lib ]] && lib=lib${lib}.so.${PV} + if use X; then + libs+=( + GLX_nvidia + nvidia-fbc + nvidia-ifr + vdpau_nvidia + ) + fi - # auto-detect soname and create appropriate symlinks - soname=$(scanelf -qF'%S#F' "${lib}") || die "Scanning ${lib} failed" - if [[ ${soname} && ${soname} != ${lib} ]]; then - ln -s ${lib} ${libdir}/${soname} || die + local libdir=. + if [[ -d 32 && ${ABI} == x86 ]]; then + libdir+=/32 + else + libs+=( + nvidia-cfg + nvidia-wfb + ) fi - ln -s ${lib} ${libdir}/${lib%.so*}.so || die - dolib.so ${libdir}/${lib%.so*}* - done -} + local lib soname + for lib in "${libs[@]}"; do + lib=lib${lib}.so.${PV} + + # auto-detect soname and create appropriate symlinks + soname=$(scanelf -qF'%S#F' ${lib}) || die "Scanning ${lib} failed" + if [[ ${soname} && ${soname} != ${lib} ]]; then + ln -s ${lib} ${libdir}/${soname} || die + fi + ln -s ${lib} ${libdir}/${lib%.so*}.so || die + + dolib.so ${libdir}/${lib%.so*}* + done + } -src_install() { if use driver; then linux-mod_src_install @@ -271,20 +298,20 @@ src_install() { newins nvidia-application-profiles{-${PV},}-rc # install built helpers - nvidia-drivers_make modprobe install + nvidia-drivers_make_install modprobe # allow video group to load mods and create devs (bug #505092) fowners root:video /usr/bin/nvidia-modprobe fperms 4710 /usr/bin/nvidia-modprobe - nvidia-drivers_make persistenced install + nvidia-drivers_make_install persistenced newconfd "${FILESDIR}/nvidia-persistenced.confd" nvidia-persistenced newinitd "${FILESDIR}/nvidia-persistenced.initd" nvidia-persistenced systemd_dounit nvidia-persistenced.service - use X && nvidia-drivers_make xconfig install + use X && nvidia-drivers_make_install xconfig if use tools; then - nvidia-drivers_make settings install + nvidia-drivers_make_install settings doicon nvidia-settings/doc/nvidia-settings.png domenu nvidia-settings/doc/nvidia-settings.desktop @@ -316,13 +343,15 @@ src_install() { doman nvidia-smi.1 # install prebuilt-only libraries - mv tls/* . || die # alternate tls lib needed for libglx.so multilib_foreach_abi nvidia-drivers_libs_install einstalldocs + readme.gentoo_create_doc } pkg_preinst() { + has_version "x11-drivers/nvidia-drivers[wayland]" && NV_HAD_WAYLAND=1 + use driver || return linux-mod_pkg_preinst @@ -336,30 +365,24 @@ pkg_preinst() { pkg_postinst() { use driver && linux-mod_pkg_postinst - optfeature "wayland EGLStream with nvidia-drm.modeset=1" gui-libs/egl-wayland + readme.gentoo_print_elog 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." + use driver && ewarn "The easiest way to fix this is usually to reboot." 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" + if use x86 && [[ ! ${REPLACING_VERSIONS} ]]; then + elog "Note that NVIDIA is no longer offering support for the unified memory" + elog "module (nvidia-uvm) on x86 (32bit), as such the module was not built." + elog "This means OpenCL/CUDA (and related, like nvenc) cannot be used." + elog "Other functions, like OpenGL, will continue to work." fi - if [[ ! ${REPLACING_VERSIONS} ]]; then - if use x86; then - elog "Note that NVIDIA is no longer offering support for the unified memory" - elog "module (nvidia-uvm) on x86 (32bit), as such the module was not built." - elog "This means OpenCL/CUDA (and related, like nvenc) cannot be used." - elog "Other functions, like OpenGL, will continue to work." - elog - fi - elog "For general information with using NVIDIA on Gentoo, please see:" - elog "https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers" + if [[ ${NV_HAD_WAYLAND} ]]; then + elog "Support for EGLStream (egl-wayland) is no longer offered with legacy" + elog "nvidia-drivers. It is recommended to use nouveau drivers for wayland." fi } diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04-r1.ebuild index d28ef6effc7b..e68be3dba2a4 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04-r1.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04-r1.ebuild @@ -4,8 +4,8 @@ EAPI=7 MODULES_OPTIONAL_USE="driver" -inherit desktop linux-info linux-mod multilib-build \ - optfeature systemd toolchain-funcs unpacker +inherit desktop linux-info linux-mod multilib-build optfeature \ + readme.gentoo-r1 systemd toolchain-funcs unpacker NV_KERNEL_MAX="5.10" NV_BIN_URI="https://download.nvidia.com/XFree86/Linux-" @@ -26,7 +26,7 @@ S="${WORKDIR}" LICENSE="GPL-2 MIT NVIDIA-r2 ZLIB" SLOT="0/${PV%%.*}" -KEYWORDS="-* ~amd64" +KEYWORDS="-* amd64" IUSE="+X +driver static-libs +tools" COMMON_DEPEND=" @@ -72,17 +72,6 @@ BDEPEND=" QA_PREBUILT="opt/* usr/lib*" -CONFIG_CHECK=" - ~DRM_KMS_HELPER - ~SYSVIPC - ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT - ~!LOCKDEP - !DEBUG_MUTEXES" -ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection - of drivers (no custom config), and optional nvidia-drm.modeset=1. - Cannot be directly selected in the kernel's menuconfig, so enable - options such as CONFIG_DRM_FBDEV_EMULATION instead." - PATCHES=( "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch ) @@ -92,8 +81,28 @@ DOCS=( ) HTML_DOCS=( html/. ) +DISABLE_AUTOFORMATTING="yes" +DOC_CONTENTS="Users should be in the 'video' group to use NVIDIA devices. +You can add yourself by using: gpasswd -a my-user video + +For general information on using nvidia-drivers, please see: +https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers" + pkg_setup() { use driver || return + + local CONFIG_CHECK=" + PROC_FS + ~DRM_KMS_HELPER + ~SYSVIPC + ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT + ~!LOCKDEP + !DEBUG_MUTEXES" + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection + of drivers (no custom config), and optional nvidia-drm.modeset=1. + Cannot be directly selected in the kernel's menuconfig, so enable + options such as CONFIG_DRM_FBDEV_EMULATION instead." + BUILD_PARAMS='NV_VERBOSE=1 IGNORE_CC_MISMATCH=yes SYSSRC="${KV_DIR}" SYSOUT="${KV_OUT_DIR}"' BUILD_TARGETS="modules" # defaults' clean sometimes deletes modules MODULE_NAMES=" @@ -101,9 +110,10 @@ pkg_setup() { nvidia-drm(video:kernel) nvidia-modeset(video:kernel) nvidia-uvm(video:kernel)" + linux-mod_pkg_setup - if [[ ${MERGE_TYPE} != binary ]] && kernel_is gt ${NV_KERNEL_MAX/./ }; then + if [[ ${MERGE_TYPE} != binary ]] && kernel_is -gt ${NV_KERNEL_MAX/./ }; then ewarn "Kernel ${KV_MAJOR}.${KV_MINOR} is either known to break this version of nvidia-drivers" ewarn "or was not tested with it. It is recommended to use one of:" ewarn " <=sys-kernel/gentoo-kernel-${NV_KERNEL_MAX}" @@ -144,16 +154,18 @@ src_prepare() { gzip -d nvidia-{cuda-mps-control,smi}.1.gz || die } -nvidia-drivers_make() { - emake -C nvidia-${1} ${2} \ - DESTDIR="${ED}" PREFIX=/usr LIBDIR="${ED}/usr/$(get_libdir)" \ - HOST_CC="$(tc-getBUILD_CC)" HOST_LD="$(tc-getBUILD_LD)" \ - DO_STRIP= MANPAGE_GZIP= \ - NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 OUTPUTDIR=out -} - src_compile() { + nvidia-drivers_make() { + emake -C nvidia-${1} ${2} \ + PREFIX="${EPREFIX}/usr" \ + HOST_CC="$(tc-getBUILD_CC)" \ + HOST_LD="$(tc-getBUILD_LD)" \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 DO_STRIP= OUTPUTDIR=out + } + tc-export AR CC LD OBJCOPY + # may no longer be relevant but kept as a safety export DISTCC_DISABLE=1 CCACHE_DISABLE=1 @@ -170,69 +182,78 @@ src_compile() { fi } -nvidia-drivers_libs_install() { - local libs=( - EGL_nvidia - GLESv1_CM_nvidia - GLESv2_nvidia - cuda - nvcuvid - nvidia-allocator - nvidia-eglcore - nvidia-encode - nvidia-glcore - nvidia-glsi - nvidia-glvkspirv - nvidia-ml - nvidia-opencl - nvidia-opticalflow - nvidia-ptxjitcompiler - nvidia-tls - ) - use amd64 && libs+=( nvidia-compiler ) - - if use X; then - libs+=( - GLX_nvidia - vdpau_nvidia +src_install() { + nvidia-drivers_make_install() { + emake -C nvidia-${1} install \ + DESTDIR="${D}" \ + PREFIX="${EPREFIX}/usr" \ + LIBDIR="${ED}/usr/$(get_libdir)" \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + } + + nvidia-drivers_libs_install() { + local libs=( + EGL_nvidia + GLESv1_CM_nvidia + GLESv2_nvidia + cuda + nvcuvid + nvidia-allocator + nvidia-eglcore + nvidia-encode + nvidia-glcore + nvidia-glsi + nvidia-glvkspirv + nvidia-ml + nvidia-opencl + nvidia-opticalflow + nvidia-ptxjitcompiler + nvidia-tls ) - if use amd64; then + use amd64 && libs+=( nvidia-compiler ) + + if use X; then libs+=( - nvidia-fbc - nvidia-ifr + GLX_nvidia + vdpau_nvidia ) + if use amd64; then + libs+=( + nvidia-fbc + nvidia-ifr + ) + fi fi - fi - local libdir=. - if multilib_is_native_abi; then - libs+=( - nvidia-cbl - nvidia-cfg - nvidia-rtcore - nvoptix - ) - use amd64 && libs+=( nvidia-ngx ) - else - libdir+=/32 - fi + local libdir=. + if [[ ${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:0:3} != lib ]] && lib=lib${lib}.so.${PV} + local lib soname + for lib in "${libs[@]}"; do + lib=lib${lib}.so.${PV} - # auto-detect soname and create appropriate symlinks - soname=$(scanelf -qF'%S#F' "${lib}") || die "Scanning ${lib} failed" - if [[ ${soname} && ${soname} != ${lib} ]]; then - ln -s ${lib} ${libdir}/${soname} || die - fi - ln -s ${lib} ${libdir}/${lib%.so*}.so || die + # auto-detect soname and create appropriate symlinks + soname=$(scanelf -qF'%S#F' ${lib}) || die "Scanning ${lib} failed" + if [[ ${soname} && ${soname} != ${lib} ]]; then + ln -s ${lib} ${libdir}/${soname} || die + fi + ln -s ${lib} ${libdir}/${lib%.so*}.so || die - dolib.so ${libdir}/${lib%.so*}* - done -} + dolib.so ${libdir}/${lib%.so*}* + done + } -src_install() { if use driver; then linux-mod_src_install @@ -273,20 +294,20 @@ src_install() { newins nvidia-application-profiles{-${PV},}-rc # install built helpers - nvidia-drivers_make modprobe install + nvidia-drivers_make_install modprobe # allow video group to load mods and create devs (bug #505092) fowners root:video /usr/bin/nvidia-modprobe fperms 4710 /usr/bin/nvidia-modprobe - nvidia-drivers_make persistenced install + nvidia-drivers_make_install persistenced newconfd "${FILESDIR}/nvidia-persistenced.confd" nvidia-persistenced newinitd "${FILESDIR}/nvidia-persistenced.initd" nvidia-persistenced systemd_dounit nvidia-persistenced.service - use X && nvidia-drivers_make xconfig install + use X && nvidia-drivers_make_install xconfig if use tools; then - nvidia-drivers_make settings install + nvidia-drivers_make_install settings doicon nvidia-settings/doc/nvidia-settings.png domenu nvidia-settings/doc/nvidia-settings.desktop @@ -320,12 +341,14 @@ src_install() { # install prebuilt-only libraries multilib_foreach_abi nvidia-drivers_libs_install + # install systemd sleep services exeinto /lib/systemd/system-sleep doexe nvidia dobin nvidia-sleep.sh - systemd_dounit *.service + systemd_dounit nvidia-{hibernate,resume,suspend}.service einstalldocs + readme.gentoo_create_doc } pkg_preinst() { @@ -340,7 +363,7 @@ pkg_preinst() { # 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 "\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \ + 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)) @@ -356,17 +379,18 @@ pkg_preinst() { pkg_postinst() { use driver && linux-mod_pkg_postinst + readme.gentoo_print_elog + optfeature "wayland EGLStream with nvidia-drm.modeset=1" gui-libs/egl-wayland if [[ -r /proc/driver/nvidia/version && $(grep -o ' [0-9.]* ' /proc/driver/nvidia/version) != " ${PV} " ]]; then ewarn "Currently loaded NVIDIA modules do not match the newly installed" ewarn "libraries and will lead to GPU-using application issues." - use driver && ewarn "The easiest way to fix this is to reboot." + use driver && ewarn "The easiest way to fix this is usually 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 @@ -377,15 +401,4 @@ pkg_postinst() { 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 } diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04.ebuild deleted file mode 100644 index 5e638d857b41..000000000000 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04.ebuild +++ /dev/null @@ -1,485 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \ - nvidia-driver systemd toolchain-funcs unpacker udev - -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}" -ARM64_NV_PACKAGE="NVIDIA-Linux-aarch64-${PV}" - -NV_URI="https://us.download.nvidia.com/XFree86/" -SRC_URI=" - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run ) - tools? ( - https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 - )" - -EMULTILIB_PKG="true" - -LICENSE="GPL-2 NVIDIA-r2" -SLOT="0/${PV%%.*}" -# TODO: for arm64, keyword virtual/opencl on arm64 -KEYWORDS="-* amd64" -IUSE="compat +driver +kms multilib static-libs +tools uvm wayland +X" -REQUIRED_USE=" - tools? ( X ) - static-libs? ( tools )" - -COMMON=" - driver? ( acct-group/video ) - tools? ( - dev-libs/atk - dev-libs/glib:2 - dev-libs/jansson - x11-libs/cairo - x11-libs/gdk-pixbuf - x11-libs/gtk+:3 - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXrandr - x11-libs/libXv - x11-libs/libXxf86vm - x11-libs/pango[X] - ) - X? ( - app-misc/pax-utils - media-libs/libglvnd[X,${MULTILIB_USEDEP}] - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}] - )" -DEPEND=" - ${COMMON} - virtual/linux-sources - tools? ( sys-apps/dbus )" -RDEPEND=" - ${COMMON} - net-libs/libtirpc - uvm? ( >=virtual/opencl-3 ) - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] ) - X? ( - <x11-base/xorg-server-1.20.99:= - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] - sys-libs/zlib[${MULTILIB_USEDEP}] - )" - -QA_PREBUILT="opt/* usr/lib*" -S="${WORKDIR}" -NV_KV_MAX_PLUS="5.11" -CONFIG_CHECK=" - !DEBUG_MUTEXES - ~!I2C_NVIDIA_GPU - ~!LOCKDEP - ~DRM - ~DRM_KMS_HELPER - ~SYSVIPC" - -PATCHES=( "${FILESDIR}"/${PN}-440.26-locale.patch ) - -pkg_pretend() { - nvidia-driver_check -} - -pkg_setup() { - nvidia-driver_check - - # try to turn off distcc and ccache for people that have a problem with it - export DISTCC_DISABLE=1 - export CCACHE_DISABLE=1 - - if use driver; then - MODULE_NAMES="nvidia(video:${S}/kernel)" - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)" - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)" - - # This needs to run after MODULE_NAMES (so that the eclass checks - # whether the kernel supports loadable modules) but before BUILD_PARAMS - # is set (so that KV_DIR is populated). - linux-mod_pkg_setup - - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \ - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1" - - # linux-mod_src_compile calls set_arch_to_kernel, which - # sets the ARCH to x86 but NVIDIA's wrapping Makefile - # expects x86_64 or i386 and then converts it to x86 - # later on in the build process - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')" - fi -} - -src_prepare() { - gunzip *1.gz || die - - if use tools; then - cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die - sed -i \ - -e "s:@PV@:${PV}:g" \ - "${WORKDIR}"/nvidia-settings-linker.patch \ - || die - eapply "${WORKDIR}"/nvidia-settings-linker.patch - - # remove GTK2 support entirely (#592730) - sed -i \ - -e '/^GTK2LIB = /d;/INSTALL.*GTK2LIB/,+1d' \ - nvidia-settings-${PV}/src/Makefile || die - fi - - default - - if ! [[ -f nvidia_icd.json ]]; then - cp nvidia_icd.json.template nvidia_icd.json || die - sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die - fi -} - -src_configure() { - tc-export AR CC LD OBJCOPY - default -} - -src_compile() { - pushd kernel >/dev/null || die - if use driver; then - BUILD_TARGETS=module linux-mod_src_compile \ - KERNELRELEASE="${KV_FULL}" \ - src="${KERNEL_DIR}" - fi - popd >/dev/null || die - - if use tools; then - emake -C nvidia-settings-${PV}/src/libXNVCtrl \ - DO_STRIP= \ - LIBDIR="$(get_libdir)" \ - NVLD="$(tc-getLD)" \ - NV_VERBOSE=1 \ - OUTPUTDIR=. \ - RANLIB="$(tc-getRANLIB)" - - emake -C nvidia-settings-${PV}/src \ - DO_STRIP= \ - GTK3_AVAILABLE=1 \ - LIBDIR="$(get_libdir)" \ - NVLD="$(tc-getLD)" \ - NVML_ENABLED=0 \ - NV_USE_BUNDLED_LIBJANSSON=0 \ - NV_VERBOSE=1 \ - OUTPUTDIR=. - fi -} - -# Install nvidia library: -# the first parameter is the library to install -# the second parameter is the provided soversion -# the third parameter is the target directory if it is not /usr/lib -donvidia() { - # Full path to library - nv_LIB="${1}" - - # SOVER to use - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})" - - # Where to install - nv_DEST="${2}" - - # Get just the library name - nv_LIBNAME=$(basename "${nv_LIB}") - - if [[ -n ${nv_DEST} ]]; then - exeinto ${nv_DEST} - action="doexe" - else - nv_DEST="/usr/$(get_libdir)" - action="dolib.so" - fi - - # Install the library - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}" - - # If the library has a SONAME and SONAME does not match the library name, - # then we need to create a symlink - if [[ -n ${nv_SOVER} && ${nv_SOVER} != ${nv_LIBNAME} ]]; then - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} - fi - - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} -} - -src_install() { - if use driver; then - linux-mod_src_install - - # Add the aliases - # This file is tweaked with the appropriate video group in - # pkg_preinst, see bug #491414 - insinto /etc/modprobe.d - newins "${FILESDIR}"/nvidia-430.conf nvidia.conf - - if use uvm; then - doins "${FILESDIR}"/nvidia-rmmod.conf - udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules - else - sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \ - > "${T}"/nvidia-rmmod.conf || die - doins "${T}"/nvidia-rmmod.conf - fi - - # Ensures that our device nodes are created when not using X - exeinto "$(get_udevdir)" - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules - fi - - # NVIDIA kernel <-> userspace driver config lib - donvidia libnvidia-cfg.so.${PV} - - # NVIDIA framebuffer capture library - donvidia libnvidia-fbc.so.${PV} - - # NVIDIA video encode/decode <-> CUDA - donvidia libnvcuvid.so.${PV} - donvidia libnvidia-encode.so.${PV} - - if use X; then - # Xorg DDX driver - exeinto /usr/$(get_libdir)/xorg/modules/drivers - doexe nvidia_drv.so - - # Xorg GLX driver - donvidia libglxserver_nvidia.so.${PV} \ - /usr/$(get_libdir)/xorg/modules/extensions - - # Xorg nvidia.conf - insinto /usr/share/X11/xorg.conf.d - newins {,50-}nvidia-drm-outputclass.conf - - insinto /usr/share/glvnd/egl_vendor.d - doins 10_nvidia.json - fi - - if use wayland; then - insinto /usr/share/egl/egl_external_platform.d - doins 10_nvidia_wayland.json - fi - - insinto /etc/vulkan/icd.d - doins nvidia_icd.json - - insinto /etc/vulkan/implicit_layer.d - doins nvidia_layers.json - - # OpenCL ICD for NVIDIA - insinto /etc/OpenCL/vendors - doins nvidia.icd - - # Helper Apps - exeinto /opt/bin/ - - use X && doexe nvidia-xconfig - - doexe nvidia-cuda-mps-control - doexe nvidia-cuda-mps-server - doexe nvidia-debugdump - doexe nvidia-persistenced - doexe nvidia-smi - - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092) - doexe nvidia-modprobe - fowners root:video /opt/bin/nvidia-modprobe - fperms 4710 /opt/bin/nvidia-modprobe - dosym ../../opt/bin/nvidia-modprobe /usr/bin/nvidia-modprobe - - doman nvidia-cuda-mps-control.1 - doman nvidia-modprobe.1 - doman nvidia-persistenced.1 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced - - if use tools; then - emake -C nvidia-settings-${PV}/src/ \ - DESTDIR="${ED}" \ - DO_STRIP= \ - GTK3_AVAILABLE=1 \ - LIBDIR="${ED}/usr/$(get_libdir)" \ - NV_USE_BUNDLED_LIBJANSSON=0 \ - NV_VERBOSE=1 \ - OUTPUTDIR=. \ - PREFIX=/usr \ - install - - if use static-libs; then - dolib.a nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a - - insinto /usr/include/NVCtrl - doins nvidia-settings-${PV}/src/libXNVCtrl/*.h - fi - - insinto /usr/share/nvidia/ - doins nvidia-application-profiles-${PV}-key-documentation - - insinto /etc/nvidia - newins \ - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc - - doicon nvidia-settings.png - domenu "${FILESDIR}"/nvidia-settings.desktop - - exeinto /etc/X11/xinit/xinitrc.d - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings - fi - - dobin nvidia-bug-report.sh - - systemd_dounit *.service - dobin nvidia-sleep.sh - exeinto /lib/systemd/system-sleep - doexe nvidia - - if has_multilib_profile && use multilib; then - local OABI=${ABI} - for ABI in $(multilib_get_enabled_abis); do - src_install-libs - done - ABI=${OABI} - unset OABI - else - src_install-libs - fi - - is_final_abi || die "failed to iterate through all ABIs" - - # Documentation - newdoc README.txt README - dodoc NVIDIA_Changelog - doman nvidia-smi.1 - use X && doman nvidia-xconfig.1 - use tools && doman nvidia-settings.1 - doman nvidia-cuda-mps-control.1 - - readme.gentoo_create_doc - - dodoc supported-gpus.json - - docinto html - dodoc -r html/. -} - -src_install-libs() { - local inslibdir=$(get_libdir) - local GL_ROOT="/usr/$(get_libdir)" - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia" - local nv_libdir="${S}" - - if has_multilib_profile && [[ ${ABI} == "x86" ]]; then - nv_libdir="${S}"/32 - fi - - if use X; then - NV_GLX_LIBRARIES=( - "libEGL_nvidia.so.${PV} ${GL_ROOT}" - "libGLESv1_CM_nvidia.so.${PV} ${GL_ROOT}" - "libGLESv2_nvidia.so.${PV} ${GL_ROOT}" - "libGLX_nvidia.so.${PV} ${GL_ROOT}" - "libOpenCL.so.1.0.0 ${CL_ROOT}" - "libcuda.so.${PV}" - "libnvcuvid.so.${PV}" - "libnvidia-compiler.so.${PV}" - "libnvidia-eglcore.so.${PV}" - "libnvidia-encode.so.${PV}" - "libnvidia-fbc.so.${PV}" - "libnvidia-glcore.so.${PV}" - "libnvidia-glsi.so.${PV}" - "libnvidia-glvkspirv.so.${PV}" - "libnvidia-ifr.so.${PV}" - "libnvidia-opencl.so.${PV}" - "libnvidia-ptxjitcompiler.so.${PV}" - "libvdpau_nvidia.so.${PV}" - ) - - if use wayland && [[ ${ABI} == "amd64" ]]; then - NV_GLX_LIBRARIES+=( - "libnvidia-egl-wayland.so.1.1.4" - ) - fi - - NV_GLX_LIBRARIES+=( - "libnvidia-ml.so.${PV}" - "libnvidia-tls.so.${PV}" - ) - - if [[ ${ABI} == "amd64" ]]; then - NV_GLX_LIBRARIES+=( - "libnvidia-cbl.so.${PV}" - "libnvidia-ngx.so.${PV}" - "libnvidia-rtcore.so.${PV}" - "libnvoptix.so.${PV}" - ) - fi - - local nv_lib - for nv_lib in "${NV_GLX_LIBRARIES[@]}"; do - donvidia "${nv_libdir}"/${nv_lib} - done - fi -} - -pkg_preinst() { - if use driver; then - linux-mod_pkg_preinst - - local videogroup="$(getent group video | cut -d ':' -f 3)" - if [[ -z ${videogroup} ]]; then - eerror "Failed to determine the video group gid" - die "Failed to determine the video group gid" - else - sed -i \ - -e "s:PACKAGE:${PF}:g" \ - -e "s:VIDEOGID:${videogroup}:" \ - "${ED}"/etc/modprobe.d/nvidia.conf || die - fi - fi - - # Clean the dynamic libGL stuff's home to ensure - # we dont have stale libs floating around - rm -rf "${EROOT}"/usr/lib/opengl/nvidia/* || die - # Make sure we nuke the old nvidia-glx's env.d file - rm -f "${EROOT}"/etc/env.d/09nvidia || die -} - -pkg_postinst() { - use driver && linux-mod_pkg_postinst - - readme.gentoo_print_elog - - if ! use X; then - elog "You have elected to not install the X.org driver. Along with" - elog "this the OpenGL libraries and VDPAU libraries were not" - elog "installed. Additionally, once the driver is loaded your card" - elog "and fan will run at max speed which may not be desirable." - elog "Use the 'nvidia-smi' init script to have your card and fan" - elog "speed scale appropriately." - elog - fi - if ! use tools; then - elog "USE=tools controls whether the nvidia-settings application" - elog "is installed. If you would like to use it, enable that" - elog "flag and re-emerge this ebuild. Optionally you can install" - elog "media-video/nvidia-settings" - elog - fi - - elog "To enable nvidia sleep services under systemd, run these commands:" - elog " systemctl enable nvidia-suspend.service" - elog " systemctl enable nvidia-hibernate.service" - elog " systemctl enable nvidia-resume.service" - elog "Set the NVreg_TemporaryFilePath kernel module parameter to a" - elog "suitable path in case the default of /tmp does not work for you" - elog "For more information see:" - elog "${EROOT}/usr/share/doc/${PF}/html/powermanagement.html" -} - -pkg_postrm() { - use driver && linux-mod_pkg_postrm -} diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-450.119.03.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-450.119.03.ebuild new file mode 100644 index 000000000000..0f37a333d294 --- /dev/null +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-450.119.03.ebuild @@ -0,0 +1,409 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +MODULES_OPTIONAL_USE="driver" +inherit desktop linux-info linux-mod multilib-build optfeature \ + readme.gentoo-r1 systemd toolchain-funcs unpacker + +NV_KERNEL_MAX="5.12" +NV_BIN_URI="https://download.nvidia.com/XFree86/Linux-" +NV_GIT_URI="https://github.com/NVIDIA/nvidia-" + +DESCRIPTION="NVIDIA Accelerated Graphics Driver" +HOMEPAGE="https://www.nvidia.com/download/index.aspx" +SRC_URI=" + amd64? ( ${NV_BIN_URI}x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run ) + arm64? ( ${NV_BIN_URI}aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run ) + ${NV_GIT_URI}installer/archive/${PV}.tar.gz -> nvidia-installer-${PV}.tar.gz + ${NV_GIT_URI}modprobe/archive/${PV}.tar.gz -> nvidia-modprobe-${PV}.tar.gz + ${NV_GIT_URI}persistenced/archive/${PV}.tar.gz -> nvidia-persistenced-${PV}.tar.gz + ${NV_GIT_URI}settings/archive/${PV}.tar.gz -> nvidia-settings-${PV}.tar.gz + ${NV_GIT_URI}xconfig/archive/${PV}.tar.gz -> nvidia-xconfig-${PV}.tar.gz" +# nvidia-installer is unused but here for GPL-2's "distribute sources" +S="${WORKDIR}" + +LICENSE="GPL-2 MIT NVIDIA-r2 ZLIB" +SLOT="0/${PV%%.*}" +KEYWORDS="-* ~amd64" +IUSE="+X +driver static-libs +tools" + +COMMON_DEPEND=" + acct-group/video + acct-user/nvpd + net-libs/libtirpc + tools? ( + dev-libs/atk + dev-libs/glib:2 + dev-libs/jansson + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXxf86vm + x11-libs/pango + )" +RDEPEND=" + ${COMMON_DEPEND} + X? ( + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + )" +DEPEND=" + ${COMMON_DEPEND} + static-libs? ( + x11-libs/libX11 + x11-libs/libXext + ) + tools? ( + media-libs/libglvnd + sys-apps/dbus + x11-base/xorg-proto + x11-libs/libXrandr + x11-libs/libXv + x11-libs/libvdpau + )" +BDEPEND=" + app-misc/pax-utils + virtual/pkgconfig" + +QA_PREBUILT="opt/* usr/lib*" + +PATCHES=( + "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch +) +DOCS=( + README.txt NVIDIA_Changelog supported-gpus.json + nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt +) +HTML_DOCS=( html/. ) + +DISABLE_AUTOFORMATTING="yes" +DOC_CONTENTS="Users should be in the 'video' group to use NVIDIA devices. +You can add yourself by using: gpasswd -a my-user video + +For general information on using nvidia-drivers, please see: +https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers" + +pkg_setup() { + use driver || return + + local CONFIG_CHECK=" + PROC_FS + ~DRM_KMS_HELPER + ~SYSVIPC + ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT + ~!LOCKDEP + !DEBUG_MUTEXES" + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection + of drivers (no custom config), and optional nvidia-drm.modeset=1. + Cannot be directly selected in the kernel's menuconfig, so enable + options such as CONFIG_DRM_FBDEV_EMULATION instead." + + if kernel_is -lt 5 10; then + CONFIG_CHECK+=" PM" # needed for 460.67 backport (bug #778920) + local ERROR_PM="CONFIG_PM: is not set but needed with kernel version <5.10" + fi + + BUILD_PARAMS='NV_VERBOSE=1 IGNORE_CC_MISMATCH=yes SYSSRC="${KV_DIR}" SYSOUT="${KV_OUT_DIR}"' + BUILD_TARGETS="modules" # defaults' clean sometimes deletes modules + MODULE_NAMES=" + nvidia(video:kernel) + nvidia-drm(video:kernel) + nvidia-modeset(video:kernel) + nvidia-uvm(video:kernel)" + + linux-mod_pkg_setup + + if [[ ${MERGE_TYPE} != binary ]] && kernel_is -gt ${NV_KERNEL_MAX/./ }; then + ewarn "Kernel ${KV_MAJOR}.${KV_MINOR} is either known to break this version of nvidia-drivers" + ewarn "or was not tested with it. It is recommended to use one of:" + ewarn " <=sys-kernel/gentoo-kernel-${NV_KERNEL_MAX}" + ewarn " <=sys-kernel/gentoo-sources-${NV_KERNEL_MAX}" + ewarn "You are free to try or use /etc/portage/patches, but support will" + ewarn "not be given and issues wait until NVIDIA releases a fixed version." + ewarn + ewarn "Do _not_ file a bug report if run into issues." + ewarn + fi +} + +src_prepare() { + # make user patches usable across versions + rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die + rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die + rm nvidia-settings && mv nvidia-settings{-${PV},} || die + rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die + + default + + # prevent detection of incomplete kernel DRM support (bug #603818) + sed 's/defined(CONFIG_DRM)/defined(CONFIG_DRM_KMS_HELPER)/' \ + -i kernel/conftest.sh || die + + sed -e '/Exec=\|Icon=/s/_.*/nvidia-settings/' \ + -e '/Categories=/s/_.*/System;Settings;/' \ + -i nvidia-settings/doc/nvidia-settings.desktop || die + + # remove gtk2 support (bug #592730) + sed '/^GTK2LIB = /d;/INSTALL.*GTK2LIB/,+1d' \ + -i nvidia-settings/src/Makefile || die + + sed 's/__USER__/nvpd/' \ + nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ + > nvidia-persistenced.service || die + + gzip -d nvidia-{cuda-mps-control,smi}.1.gz || die +} + +src_compile() { + nvidia-drivers_make() { + emake -C nvidia-${1} ${2} \ + PREFIX="${EPREFIX}/usr" \ + HOST_CC="$(tc-getBUILD_CC)" \ + HOST_LD="$(tc-getBUILD_LD)" \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 DO_STRIP= OUTPUTDIR=out + } + + tc-export AR CC LD OBJCOPY + + # may no longer be relevant but kept as a safety + export DISTCC_DISABLE=1 CCACHE_DISABLE=1 + + use driver && linux-mod_src_compile + + nvidia-drivers_make modprobe + nvidia-drivers_make persistenced + use X && nvidia-drivers_make xconfig + + if use tools; then + nvidia-drivers_make settings + elif use static-libs; then + nvidia-drivers_make settings/src out/libXNVCtrl.a + fi +} + +src_install() { + nvidia-drivers_make_install() { + emake -C nvidia-${1} install \ + DESTDIR="${D}" \ + PREFIX="${EPREFIX}/usr" \ + LIBDIR="${ED}/usr/$(get_libdir)" \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + } + + nvidia-drivers_libs_install() { + local libs=( + EGL_nvidia + GLESv1_CM_nvidia + GLESv2_nvidia + cuda + nvcuvid + nvidia-allocator + nvidia-eglcore + nvidia-encode + nvidia-glcore + nvidia-glsi + nvidia-glvkspirv + nvidia-ml + nvidia-opencl + nvidia-opticalflow + nvidia-ptxjitcompiler + nvidia-tls + ) + use amd64 && libs+=( nvidia-compiler ) + + if use X; then + libs+=( + GLX_nvidia + vdpau_nvidia + ) + if use amd64; then + libs+=( + nvidia-fbc + nvidia-ifr + ) + fi + fi + + local libdir=. + if [[ ${ABI} == x86 ]]; then + libdir+=/32 + else + libs+=( + nvidia-cbl + nvidia-cfg + nvidia-rtcore + nvoptix + ) + use amd64 && libs+=( nvidia-ngx ) + fi + + local lib soname + for lib in "${libs[@]}"; do + lib=lib${lib}.so.${PV} + + # auto-detect soname and create appropriate symlinks + soname=$(scanelf -qF'%S#F' ${lib}) || die "Scanning ${lib} failed" + if [[ ${soname} && ${soname} != ${lib} ]]; then + ln -s ${lib} ${libdir}/${soname} || die + fi + ln -s ${lib} ${libdir}/${lib%.so*}.so || die + + dolib.so ${libdir}/${lib%.so*}* + done + } + + if use driver; then + linux-mod_src_install + + insinto /etc/modprobe.d + newins "${FILESDIR}"/nvidia-430.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.json + fi + + if use X; then + exeinto /usr/$(get_libdir)/xorg/modules/drivers + doexe nvidia_drv.so + + exeinto /usr/$(get_libdir)/xorg/modules/extensions + newexe libglxserver_nvidia.so{.${PV},} + + insinto /usr/share/X11/xorg.conf.d + newins {,50-}nvidia-drm-outputclass.conf + + # vulkan icd uses libGLX_nvidia.so and so requires X + insinto /usr/share/vulkan/icd.d + doins nvidia_icd.json + insinto /usr/share/vulkan/implicit_layer.d + doins nvidia_layers.json + fi + + insinto /usr/share/glvnd/egl_vendor.d + doins 10_nvidia.json + + insinto /etc/OpenCL/vendors + doins nvidia.icd + + insinto /etc/nvidia + newins nvidia-application-profiles{-${PV},}-rc + + # install built helpers + nvidia-drivers_make_install modprobe + # allow video group to load mods and create devs (bug #505092) + fowners root:video /usr/bin/nvidia-modprobe + fperms 4710 /usr/bin/nvidia-modprobe + + nvidia-drivers_make_install persistenced + newconfd "${FILESDIR}/nvidia-persistenced.confd" nvidia-persistenced + newinitd "${FILESDIR}/nvidia-persistenced.initd" nvidia-persistenced + systemd_dounit nvidia-persistenced.service + + use X && nvidia-drivers_make_install xconfig + + if use tools; then + nvidia-drivers_make_install settings + doicon nvidia-settings/doc/nvidia-settings.png + domenu nvidia-settings/doc/nvidia-settings.desktop + + insinto /usr/share/nvidia + newins nvidia-application-profiles{-${PV},}-key-documentation + + exeinto /etc/X11/xinit/xinitrc.d + newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings + fi + + if use static-libs; then + dolib.a nvidia-settings/src/out/libXNVCtrl.a + + insinto /usr/include/NVCtrl + doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h + fi + + # install prebuilt-only helpers + exeinto /opt/bin + + doexe nvidia-cuda-mps-control + doman nvidia-cuda-mps-control.1 + doexe nvidia-cuda-mps-server + + doexe nvidia-debugdump + dobin nvidia-bug-report.sh + + doexe nvidia-smi + doman nvidia-smi.1 + + # install prebuilt-only libraries + multilib_foreach_abi nvidia-drivers_libs_install + + # install systemd sleep services + exeinto /lib/systemd/system-sleep + doexe nvidia + dobin nvidia-sleep.sh + systemd_dounit nvidia-{hibernate,resume,suspend}.service + + einstalldocs + readme.gentoo_create_doc +} + +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 + + readme.gentoo_print_elog + + optfeature "wayland EGLStream with nvidia-drm.modeset=1" gui-libs/egl-wayland + + if [[ -r /proc/driver/nvidia/version && + $(grep -o ' [0-9.]* ' /proc/driver/nvidia/version) != " ${PV} " ]]; then + ewarn "Currently loaded NVIDIA modules do not match the newly installed" + ewarn "libraries and will lead to GPU-using application issues." + use driver && ewarn "The easiest way to fix this is usually to reboot." + fi + + if [[ ${NV_LEGACY_MASK} ]]; then + ewarn "You are installing a version of nvidia-drivers known not to work" + ewarn "with a GPU of the current system. If unwanted, add the mask:" + if [[ -d ${EROOT}/etc/portage/package.mask ]]; then + ewarn " echo '${NV_LEGACY_MASK}' > ${EROOT}/etc/portage/package.mask/${PN}" + else + ewarn " echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask" + fi + ewarn "...then downgrade to a legacy branch if possible. For details, see:" + ewarn "https://www.nvidia.com/object/IO_32667.html" + fi +} diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-460.39-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-460.39-r1.ebuild deleted file mode 100644 index 4867ebc5e195..000000000000 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-460.39-r1.ebuild +++ /dev/null @@ -1,485 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \ - nvidia-driver systemd toolchain-funcs unpacker udev - -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}" -ARM64_NV_PACKAGE="NVIDIA-Linux-aarch64-${PV}" - -NV_URI="https://us.download.nvidia.com/XFree86/" -SRC_URI=" - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run ) - tools? ( - https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 - )" - -EMULTILIB_PKG="true" - -LICENSE="GPL-2 NVIDIA-r2" -SLOT="0/${PV%%.*}" -# TODO: for arm64, keyword virtual/opencl on arm64 -KEYWORDS="-* amd64" -IUSE="compat +driver +kms multilib static-libs +tools uvm wayland +X" -REQUIRED_USE=" - tools? ( X ) - static-libs? ( tools )" - -COMMON=" - driver? ( acct-group/video ) - tools? ( - dev-libs/atk - dev-libs/glib:2 - dev-libs/jansson - x11-libs/cairo - x11-libs/gdk-pixbuf - x11-libs/gtk+:3 - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXrandr - x11-libs/libXv - x11-libs/libXxf86vm - x11-libs/pango[X] - ) - X? ( - app-misc/pax-utils - media-libs/libglvnd[X,${MULTILIB_USEDEP}] - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}] - )" -DEPEND=" - ${COMMON} - virtual/linux-sources - tools? ( sys-apps/dbus )" -RDEPEND=" - ${COMMON} - net-libs/libtirpc - uvm? ( >=virtual/opencl-3 ) - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] ) - X? ( - <x11-base/xorg-server-1.20.99:= - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] - sys-libs/zlib[${MULTILIB_USEDEP}] - )" - -QA_PREBUILT="opt/* usr/lib*" -S="${WORKDIR}" -NV_KV_MAX_PLUS="5.11" -CONFIG_CHECK=" - !DEBUG_MUTEXES - ~!I2C_NVIDIA_GPU - ~!LOCKDEP - ~DRM - ~DRM_KMS_HELPER - ~SYSVIPC" - -PATCHES=( "${FILESDIR}"/${PN}-440.26-locale.patch ) - -pkg_pretend() { - nvidia-driver_check -} - -pkg_setup() { - nvidia-driver_check - - # try to turn off distcc and ccache for people that have a problem with it - export DISTCC_DISABLE=1 - export CCACHE_DISABLE=1 - - if use driver; then - MODULE_NAMES="nvidia(video:${S}/kernel)" - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)" - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)" - - # This needs to run after MODULE_NAMES (so that the eclass checks - # whether the kernel supports loadable modules) but before BUILD_PARAMS - # is set (so that KV_DIR is populated). - linux-mod_pkg_setup - - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \ - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1" - - # linux-mod_src_compile calls set_arch_to_kernel, which - # sets the ARCH to x86 but NVIDIA's wrapping Makefile - # expects x86_64 or i386 and then converts it to x86 - # later on in the build process - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')" - fi -} - -src_prepare() { - gunzip *1.gz || die - - if use tools; then - cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die - sed -i \ - -e "s:@PV@:${PV}:g" \ - "${WORKDIR}"/nvidia-settings-linker.patch \ - || die - eapply "${WORKDIR}"/nvidia-settings-linker.patch - - # remove GTK2 support entirely (#592730) - sed -i \ - -e '/^GTK2LIB = /d;/INSTALL.*GTK2LIB/,+1d' \ - nvidia-settings-${PV}/src/Makefile || die - fi - - default - - if ! [[ -f nvidia_icd.json ]]; then - cp nvidia_icd.json.template nvidia_icd.json || die - sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die - fi -} - -src_configure() { - tc-export AR CC LD OBJCOPY - default -} - -src_compile() { - pushd kernel >/dev/null || die - if use driver; then - BUILD_TARGETS=module linux-mod_src_compile \ - KERNELRELEASE="${KV_FULL}" \ - src="${KERNEL_DIR}" - fi - popd >/dev/null || die - - if use tools; then - emake -C nvidia-settings-${PV}/src/libXNVCtrl \ - DO_STRIP= \ - LIBDIR="$(get_libdir)" \ - NVLD="$(tc-getLD)" \ - NV_VERBOSE=1 \ - OUTPUTDIR=. \ - RANLIB="$(tc-getRANLIB)" - - emake -C nvidia-settings-${PV}/src \ - DO_STRIP= \ - GTK3_AVAILABLE=1 \ - LIBDIR="$(get_libdir)" \ - NVLD="$(tc-getLD)" \ - NVML_ENABLED=0 \ - NV_USE_BUNDLED_LIBJANSSON=0 \ - NV_VERBOSE=1 \ - OUTPUTDIR=. - fi -} - -# Install nvidia library: -# the first parameter is the library to install -# the second parameter is the provided soversion -# the third parameter is the target directory if it is not /usr/lib -donvidia() { - # Full path to library - nv_LIB="${1}" - - # SOVER to use - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})" - - # Where to install - nv_DEST="${2}" - - # Get just the library name - nv_LIBNAME=$(basename "${nv_LIB}") - - if [[ -n ${nv_DEST} ]]; then - exeinto ${nv_DEST} - action="doexe" - else - nv_DEST="/usr/$(get_libdir)" - action="dolib.so" - fi - - # Install the library - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}" - - # If the library has a SONAME and SONAME does not match the library name, - # then we need to create a symlink - if [[ -n ${nv_SOVER} && ${nv_SOVER} != ${nv_LIBNAME} ]]; then - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} - fi - - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} -} - -src_install() { - if use driver; then - linux-mod_src_install - - # Add the aliases - # This file is tweaked with the appropriate video group in - # pkg_preinst, see bug #491414 - insinto /etc/modprobe.d - newins "${FILESDIR}"/nvidia-460.conf nvidia.conf - - if use uvm; then - doins "${FILESDIR}"/nvidia-rmmod.conf - udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules - else - sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \ - > "${T}"/nvidia-rmmod.conf || die - doins "${T}"/nvidia-rmmod.conf - fi - - # Ensures that our device nodes are created when not using X - exeinto "$(get_udevdir)" - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules - fi - - # NVIDIA kernel <-> userspace driver config lib - donvidia libnvidia-cfg.so.${PV} - - # NVIDIA framebuffer capture library - donvidia libnvidia-fbc.so.${PV} - - # NVIDIA video encode/decode <-> CUDA - donvidia libnvcuvid.so.${PV} - donvidia libnvidia-encode.so.${PV} - - if use X; then - # Xorg DDX driver - exeinto /usr/$(get_libdir)/xorg/modules/drivers - doexe nvidia_drv.so - - # Xorg GLX driver - donvidia libglxserver_nvidia.so.${PV} \ - /usr/$(get_libdir)/xorg/modules/extensions - - # Xorg nvidia.conf - insinto /usr/share/X11/xorg.conf.d - newins {,50-}nvidia-drm-outputclass.conf - - insinto /usr/share/glvnd/egl_vendor.d - doins 10_nvidia.json - fi - - if use wayland; then - insinto /usr/share/egl/egl_external_platform.d - doins 10_nvidia_wayland.json - fi - - insinto /etc/vulkan/icd.d - doins nvidia_icd.json - - insinto /etc/vulkan/implicit_layer.d - doins nvidia_layers.json - - # OpenCL ICD for NVIDIA - insinto /etc/OpenCL/vendors - doins nvidia.icd - - # Helper Apps - exeinto /opt/bin/ - - use X && doexe nvidia-xconfig - - doexe nvidia-cuda-mps-control - doexe nvidia-cuda-mps-server - doexe nvidia-debugdump - doexe nvidia-persistenced - doexe nvidia-smi - - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092) - doexe nvidia-modprobe - fowners root:video /opt/bin/nvidia-modprobe - fperms 4710 /opt/bin/nvidia-modprobe - dosym ../../opt/bin/nvidia-modprobe /usr/bin/nvidia-modprobe - - doman nvidia-cuda-mps-control.1 - doman nvidia-modprobe.1 - doman nvidia-persistenced.1 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced - - if use tools; then - emake -C nvidia-settings-${PV}/src/ \ - DESTDIR="${ED}" \ - DO_STRIP= \ - GTK3_AVAILABLE=1 \ - LIBDIR="${ED}/usr/$(get_libdir)" \ - NV_USE_BUNDLED_LIBJANSSON=0 \ - NV_VERBOSE=1 \ - OUTPUTDIR=. \ - PREFIX=/usr \ - install - - if use static-libs; then - dolib.a nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a - - insinto /usr/include/NVCtrl - doins nvidia-settings-${PV}/src/libXNVCtrl/*.h - fi - - insinto /usr/share/nvidia/ - doins nvidia-application-profiles-${PV}-key-documentation - - insinto /etc/nvidia - newins \ - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc - - doicon nvidia-settings.png - domenu "${FILESDIR}"/nvidia-settings.desktop - - exeinto /etc/X11/xinit/xinitrc.d - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings - fi - - dobin nvidia-bug-report.sh - - systemd_dounit *.service - dobin nvidia-sleep.sh - exeinto /lib/systemd/system-sleep - doexe nvidia - - if has_multilib_profile && use multilib; then - local OABI=${ABI} - for ABI in $(multilib_get_enabled_abis); do - src_install-libs - done - ABI=${OABI} - unset OABI - else - src_install-libs - fi - - is_final_abi || die "failed to iterate through all ABIs" - - # Documentation - newdoc README.txt README - dodoc NVIDIA_Changelog - doman nvidia-smi.1 - use X && doman nvidia-xconfig.1 - use tools && doman nvidia-settings.1 - doman nvidia-cuda-mps-control.1 - - readme.gentoo_create_doc - - dodoc -r supported-gpus - - docinto html - dodoc -r html/. -} - -src_install-libs() { - local inslibdir=$(get_libdir) - local GL_ROOT="/usr/$(get_libdir)" - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia" - local nv_libdir="${S}" - - if has_multilib_profile && [[ ${ABI} == "x86" ]]; then - nv_libdir="${S}"/32 - fi - - if use X; then - NV_GLX_LIBRARIES=( - "libEGL_nvidia.so.${PV} ${GL_ROOT}" - "libGLESv1_CM_nvidia.so.${PV} ${GL_ROOT}" - "libGLESv2_nvidia.so.${PV} ${GL_ROOT}" - "libGLX_nvidia.so.${PV} ${GL_ROOT}" - "libOpenCL.so.1.0.0 ${CL_ROOT}" - "libcuda.so.${PV}" - "libnvcuvid.so.${PV}" - "libnvidia-compiler.so.${PV}" - "libnvidia-eglcore.so.${PV}" - "libnvidia-encode.so.${PV}" - "libnvidia-fbc.so.${PV}" - "libnvidia-glcore.so.${PV}" - "libnvidia-glsi.so.${PV}" - "libnvidia-glvkspirv.so.${PV}" - "libnvidia-ifr.so.${PV}" - "libnvidia-opencl.so.${PV}" - "libnvidia-ptxjitcompiler.so.${PV}" - "libvdpau_nvidia.so.${PV}" - ) - - if use wayland && [[ ${ABI} == "amd64" ]]; then - NV_GLX_LIBRARIES+=( - "libnvidia-egl-wayland.so.1.1.5" - ) - fi - - NV_GLX_LIBRARIES+=( - "libnvidia-ml.so.${PV}" - "libnvidia-tls.so.${PV}" - ) - - if [[ ${ABI} == "amd64" ]]; then - NV_GLX_LIBRARIES+=( - "libnvidia-cbl.so.${PV}" - "libnvidia-ngx.so.${PV}" - "libnvidia-rtcore.so.${PV}" - "libnvoptix.so.${PV}" - ) - fi - - local nv_lib - for nv_lib in "${NV_GLX_LIBRARIES[@]}"; do - donvidia "${nv_libdir}"/${nv_lib} - done - fi -} - -pkg_preinst() { - if use driver; then - linux-mod_pkg_preinst - - local videogroup="$(getent group video | cut -d ':' -f 3)" - if [[ -z ${videogroup} ]]; then - eerror "Failed to determine the video group gid" - die "Failed to determine the video group gid" - else - sed -i \ - -e "s:PACKAGE:${PF}:g" \ - -e "s:VIDEOGID:${videogroup}:" \ - "${ED}"/etc/modprobe.d/nvidia.conf || die - fi - fi - - # Clean the dynamic libGL stuff's home to ensure - # we dont have stale libs floating around - rm -rf "${EROOT}"/usr/lib/opengl/nvidia/* || die - # Make sure we nuke the old nvidia-glx's env.d file - rm -f "${EROOT}"/etc/env.d/09nvidia || die -} - -pkg_postinst() { - use driver && linux-mod_pkg_postinst - - readme.gentoo_print_elog - - if ! use X; then - elog "You have elected to not install the X.org driver. Along with" - elog "this the OpenGL libraries and VDPAU libraries were not" - elog "installed. Additionally, once the driver is loaded your card" - elog "and fan will run at max speed which may not be desirable." - elog "Use the 'nvidia-smi' init script to have your card and fan" - elog "speed scale appropriately." - elog - fi - if ! use tools; then - elog "USE=tools controls whether the nvidia-settings application" - elog "is installed. If you would like to use it, enable that" - elog "flag and re-emerge this ebuild. Optionally you can install" - elog "media-video/nvidia-settings" - elog - fi - - elog "To enable nvidia sleep services under systemd, run these commands:" - elog " systemctl enable nvidia-suspend.service" - elog " systemctl enable nvidia-hibernate.service" - elog " systemctl enable nvidia-resume.service" - elog "Set the NVreg_TemporaryFilePath kernel module parameter to a" - elog "suitable path in case the default of /tmp does not work for you" - elog "For more information see:" - elog "${EROOT}/usr/share/doc/${PF}/html/powermanagement.html" -} - -pkg_postrm() { - use driver && linux-mod_pkg_postrm -} diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-460.56.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-460.56.ebuild deleted file mode 100644 index 8f678c958a97..000000000000 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-460.56.ebuild +++ /dev/null @@ -1,485 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \ - nvidia-driver systemd toolchain-funcs unpacker udev - -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}" -ARM64_NV_PACKAGE="NVIDIA-Linux-aarch64-${PV}" - -NV_URI="https://us.download.nvidia.com/XFree86/" -SRC_URI=" - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run ) - tools? ( - https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 - )" - -EMULTILIB_PKG="true" - -LICENSE="GPL-2 NVIDIA-r2" -SLOT="0/${PV%%.*}" -# TODO: for arm64, keyword virtual/opencl on arm64 -KEYWORDS="-* ~amd64" -IUSE="compat +driver +kms multilib static-libs +tools uvm wayland +X" -REQUIRED_USE=" - tools? ( X ) - static-libs? ( tools )" - -COMMON=" - driver? ( acct-group/video ) - tools? ( - dev-libs/atk - dev-libs/glib:2 - dev-libs/jansson - x11-libs/cairo - x11-libs/gdk-pixbuf - x11-libs/gtk+:3 - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXrandr - x11-libs/libXv - x11-libs/libXxf86vm - x11-libs/pango[X] - ) - X? ( - app-misc/pax-utils - media-libs/libglvnd[X,${MULTILIB_USEDEP}] - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}] - )" -DEPEND=" - ${COMMON} - virtual/linux-sources - tools? ( sys-apps/dbus )" -RDEPEND=" - ${COMMON} - net-libs/libtirpc - uvm? ( >=virtual/opencl-3 ) - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] ) - X? ( - <x11-base/xorg-server-1.20.99:= - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] - sys-libs/zlib[${MULTILIB_USEDEP}] - )" - -QA_PREBUILT="opt/* usr/lib*" -S="${WORKDIR}" -NV_KV_MAX_PLUS="5.12" -CONFIG_CHECK=" - !DEBUG_MUTEXES - ~!I2C_NVIDIA_GPU - ~!LOCKDEP - ~DRM - ~DRM_KMS_HELPER - ~SYSVIPC" - -PATCHES=( "${FILESDIR}"/${PN}-440.26-locale.patch ) - -pkg_pretend() { - nvidia-driver_check -} - -pkg_setup() { - nvidia-driver_check - - # try to turn off distcc and ccache for people that have a problem with it - export DISTCC_DISABLE=1 - export CCACHE_DISABLE=1 - - if use driver; then - MODULE_NAMES="nvidia(video:${S}/kernel)" - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)" - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)" - - # This needs to run after MODULE_NAMES (so that the eclass checks - # whether the kernel supports loadable modules) but before BUILD_PARAMS - # is set (so that KV_DIR is populated). - linux-mod_pkg_setup - - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \ - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1" - - # linux-mod_src_compile calls set_arch_to_kernel, which - # sets the ARCH to x86 but NVIDIA's wrapping Makefile - # expects x86_64 or i386 and then converts it to x86 - # later on in the build process - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')" - fi -} - -src_prepare() { - gunzip *1.gz || die - - if use tools; then - cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die - sed -i \ - -e "s:@PV@:${PV}:g" \ - "${WORKDIR}"/nvidia-settings-linker.patch \ - || die - eapply "${WORKDIR}"/nvidia-settings-linker.patch - - # remove GTK2 support entirely (#592730) - sed -i \ - -e '/^GTK2LIB = /d;/INSTALL.*GTK2LIB/,+1d' \ - nvidia-settings-${PV}/src/Makefile || die - fi - - default - - if ! [[ -f nvidia_icd.json ]]; then - cp nvidia_icd.json.template nvidia_icd.json || die - sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die - fi -} - -src_configure() { - tc-export AR CC LD OBJCOPY - default -} - -src_compile() { - pushd kernel >/dev/null || die - if use driver; then - BUILD_TARGETS=module linux-mod_src_compile \ - KERNELRELEASE="${KV_FULL}" \ - src="${KERNEL_DIR}" - fi - popd >/dev/null || die - - if use tools; then - emake -C nvidia-settings-${PV}/src/libXNVCtrl \ - DO_STRIP= \ - LIBDIR="$(get_libdir)" \ - NVLD="$(tc-getLD)" \ - NV_VERBOSE=1 \ - OUTPUTDIR=. \ - RANLIB="$(tc-getRANLIB)" - - emake -C nvidia-settings-${PV}/src \ - DO_STRIP= \ - GTK3_AVAILABLE=1 \ - LIBDIR="$(get_libdir)" \ - NVLD="$(tc-getLD)" \ - NVML_ENABLED=0 \ - NV_USE_BUNDLED_LIBJANSSON=0 \ - NV_VERBOSE=1 \ - OUTPUTDIR=. - fi -} - -# Install nvidia library: -# the first parameter is the library to install -# the second parameter is the provided soversion -# the third parameter is the target directory if it is not /usr/lib -donvidia() { - # Full path to library - nv_LIB="${1}" - - # SOVER to use - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})" - - # Where to install - nv_DEST="${2}" - - # Get just the library name - nv_LIBNAME=$(basename "${nv_LIB}") - - if [[ -n ${nv_DEST} ]]; then - exeinto ${nv_DEST} - action="doexe" - else - nv_DEST="/usr/$(get_libdir)" - action="dolib.so" - fi - - # Install the library - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}" - - # If the library has a SONAME and SONAME does not match the library name, - # then we need to create a symlink - if [[ -n ${nv_SOVER} && ${nv_SOVER} != ${nv_LIBNAME} ]]; then - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} - fi - - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} -} - -src_install() { - if use driver; then - linux-mod_src_install - - # Add the aliases - # This file is tweaked with the appropriate video group in - # pkg_preinst, see bug #491414 - insinto /etc/modprobe.d - newins "${FILESDIR}"/nvidia-460.conf nvidia.conf - - if use uvm; then - doins "${FILESDIR}"/nvidia-rmmod.conf - udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules - else - sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \ - > "${T}"/nvidia-rmmod.conf || die - doins "${T}"/nvidia-rmmod.conf - fi - - # Ensures that our device nodes are created when not using X - exeinto "$(get_udevdir)" - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules - fi - - # NVIDIA kernel <-> userspace driver config lib - donvidia libnvidia-cfg.so.${PV} - - # NVIDIA framebuffer capture library - donvidia libnvidia-fbc.so.${PV} - - # NVIDIA video encode/decode <-> CUDA - donvidia libnvcuvid.so.${PV} - donvidia libnvidia-encode.so.${PV} - - if use X; then - # Xorg DDX driver - exeinto /usr/$(get_libdir)/xorg/modules/drivers - doexe nvidia_drv.so - - # Xorg GLX driver - donvidia libglxserver_nvidia.so.${PV} \ - /usr/$(get_libdir)/xorg/modules/extensions - - # Xorg nvidia.conf - insinto /usr/share/X11/xorg.conf.d - newins {,50-}nvidia-drm-outputclass.conf - - insinto /usr/share/glvnd/egl_vendor.d - doins 10_nvidia.json - fi - - if use wayland; then - insinto /usr/share/egl/egl_external_platform.d - doins 10_nvidia_wayland.json - fi - - insinto /etc/vulkan/icd.d - doins nvidia_icd.json - - insinto /etc/vulkan/implicit_layer.d - doins nvidia_layers.json - - # OpenCL ICD for NVIDIA - insinto /etc/OpenCL/vendors - doins nvidia.icd - - # Helper Apps - exeinto /opt/bin/ - - use X && doexe nvidia-xconfig - - doexe nvidia-cuda-mps-control - doexe nvidia-cuda-mps-server - doexe nvidia-debugdump - doexe nvidia-persistenced - doexe nvidia-smi - - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092) - doexe nvidia-modprobe - fowners root:video /opt/bin/nvidia-modprobe - fperms 4710 /opt/bin/nvidia-modprobe - dosym ../../opt/bin/nvidia-modprobe /usr/bin/nvidia-modprobe - - doman nvidia-cuda-mps-control.1 - doman nvidia-modprobe.1 - doman nvidia-persistenced.1 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced - - if use tools; then - emake -C nvidia-settings-${PV}/src/ \ - DESTDIR="${ED}" \ - DO_STRIP= \ - GTK3_AVAILABLE=1 \ - LIBDIR="${ED}/usr/$(get_libdir)" \ - NV_USE_BUNDLED_LIBJANSSON=0 \ - NV_VERBOSE=1 \ - OUTPUTDIR=. \ - PREFIX=/usr \ - install - - if use static-libs; then - dolib.a nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a - - insinto /usr/include/NVCtrl - doins nvidia-settings-${PV}/src/libXNVCtrl/*.h - fi - - insinto /usr/share/nvidia/ - doins nvidia-application-profiles-${PV}-key-documentation - - insinto /etc/nvidia - newins \ - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc - - doicon nvidia-settings.png - domenu "${FILESDIR}"/nvidia-settings.desktop - - exeinto /etc/X11/xinit/xinitrc.d - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings - fi - - dobin nvidia-bug-report.sh - - systemd_dounit *.service - dobin nvidia-sleep.sh - exeinto /lib/systemd/system-sleep - doexe nvidia - - if has_multilib_profile && use multilib; then - local OABI=${ABI} - for ABI in $(multilib_get_enabled_abis); do - src_install-libs - done - ABI=${OABI} - unset OABI - else - src_install-libs - fi - - is_final_abi || die "failed to iterate through all ABIs" - - # Documentation - newdoc README.txt README - dodoc NVIDIA_Changelog - doman nvidia-smi.1 - use X && doman nvidia-xconfig.1 - use tools && doman nvidia-settings.1 - doman nvidia-cuda-mps-control.1 - - readme.gentoo_create_doc - - dodoc -r supported-gpus - - docinto html - dodoc -r html/. -} - -src_install-libs() { - local inslibdir=$(get_libdir) - local GL_ROOT="/usr/$(get_libdir)" - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia" - local nv_libdir="${S}" - - if has_multilib_profile && [[ ${ABI} == "x86" ]]; then - nv_libdir="${S}"/32 - fi - - if use X; then - NV_GLX_LIBRARIES=( - "libEGL_nvidia.so.${PV} ${GL_ROOT}" - "libGLESv1_CM_nvidia.so.${PV} ${GL_ROOT}" - "libGLESv2_nvidia.so.${PV} ${GL_ROOT}" - "libGLX_nvidia.so.${PV} ${GL_ROOT}" - "libOpenCL.so.1.0.0 ${CL_ROOT}" - "libcuda.so.${PV}" - "libnvcuvid.so.${PV}" - "libnvidia-compiler.so.${PV}" - "libnvidia-eglcore.so.${PV}" - "libnvidia-encode.so.${PV}" - "libnvidia-fbc.so.${PV}" - "libnvidia-glcore.so.${PV}" - "libnvidia-glsi.so.${PV}" - "libnvidia-glvkspirv.so.${PV}" - "libnvidia-ifr.so.${PV}" - "libnvidia-opencl.so.${PV}" - "libnvidia-ptxjitcompiler.so.${PV}" - "libvdpau_nvidia.so.${PV}" - ) - - if use wayland && [[ ${ABI} == "amd64" ]]; then - NV_GLX_LIBRARIES+=( - "libnvidia-egl-wayland.so.1.1.5" - ) - fi - - NV_GLX_LIBRARIES+=( - "libnvidia-ml.so.${PV}" - "libnvidia-tls.so.${PV}" - ) - - if [[ ${ABI} == "amd64" ]]; then - NV_GLX_LIBRARIES+=( - "libnvidia-cbl.so.${PV}" - "libnvidia-ngx.so.${PV}" - "libnvidia-rtcore.so.${PV}" - "libnvoptix.so.${PV}" - ) - fi - - local nv_lib - for nv_lib in "${NV_GLX_LIBRARIES[@]}"; do - donvidia "${nv_libdir}"/${nv_lib} - done - fi -} - -pkg_preinst() { - if use driver; then - linux-mod_pkg_preinst - - local videogroup="$(getent group video | cut -d ':' -f 3)" - if [[ -z ${videogroup} ]]; then - eerror "Failed to determine the video group gid" - die "Failed to determine the video group gid" - else - sed -i \ - -e "s:PACKAGE:${PF}:g" \ - -e "s:VIDEOGID:${videogroup}:" \ - "${ED}"/etc/modprobe.d/nvidia.conf || die - fi - fi - - # Clean the dynamic libGL stuff's home to ensure - # we dont have stale libs floating around - rm -rf "${EROOT}"/usr/lib/opengl/nvidia/* || die - # Make sure we nuke the old nvidia-glx's env.d file - rm -f "${EROOT}"/etc/env.d/09nvidia || die -} - -pkg_postinst() { - use driver && linux-mod_pkg_postinst - - readme.gentoo_print_elog - - if ! use X; then - elog "You have elected to not install the X.org driver. Along with" - elog "this the OpenGL libraries and VDPAU libraries were not" - elog "installed. Additionally, once the driver is loaded your card" - elog "and fan will run at max speed which may not be desirable." - elog "Use the 'nvidia-smi' init script to have your card and fan" - elog "speed scale appropriately." - elog - fi - if ! use tools; then - elog "USE=tools controls whether the nvidia-settings application" - elog "is installed. If you would like to use it, enable that" - elog "flag and re-emerge this ebuild. Optionally you can install" - elog "media-video/nvidia-settings" - elog - fi - - elog "To enable nvidia sleep services under systemd, run these commands:" - elog " systemctl enable nvidia-suspend.service" - elog " systemctl enable nvidia-hibernate.service" - elog " systemctl enable nvidia-resume.service" - elog "Set the NVreg_TemporaryFilePath kernel module parameter to a" - elog "suitable path in case the default of /tmp does not work for you" - elog "For more information see:" - elog "${EROOT}/usr/share/doc/${PF}/html/powermanagement.html" -} - -pkg_postrm() { - use driver && linux-mod_pkg_postrm -} diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild index e6d9570a2714..81f6e62f3d37 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild @@ -4,10 +4,10 @@ EAPI=7 MODULES_OPTIONAL_USE="driver" -inherit desktop linux-info linux-mod multilib-build \ - optfeature systemd toolchain-funcs unpacker +inherit desktop linux-info linux-mod multilib-build optfeature \ + readme.gentoo-r1 systemd toolchain-funcs unpacker -NV_KERNEL_MAX="5.11" +NV_KERNEL_MAX="5.12" NV_BIN_URI="https://download.nvidia.com/XFree86/Linux-" NV_GIT_URI="https://github.com/NVIDIA/nvidia-" @@ -26,7 +26,7 @@ S="${WORKDIR}" LICENSE="GPL-2 MIT NVIDIA-r2 ZLIB" SLOT="0/${PV%%.*}" -KEYWORDS="-* ~amd64" +KEYWORDS="-* amd64" IUSE="+X +driver static-libs +tools" COMMON_DEPEND=" @@ -72,17 +72,6 @@ BDEPEND=" QA_PREBUILT="opt/* usr/lib*" -CONFIG_CHECK=" - ~DRM_KMS_HELPER - ~SYSVIPC - ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT - ~!LOCKDEP - !DEBUG_MUTEXES" -ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection - of drivers (no custom config), and optional nvidia-drm.modeset=1. - Cannot be directly selected in the kernel's menuconfig, so enable - options such as CONFIG_DRM_FBDEV_EMULATION instead." - PATCHES=( "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch ) @@ -92,8 +81,32 @@ DOCS=( ) HTML_DOCS=( html/. ) +DISABLE_AUTOFORMATTING="yes" +DOC_CONTENTS="Users should be in the 'video' group to use NVIDIA devices. +You can add yourself by using: gpasswd -a my-user video + +For general information on using nvidia-drivers, please see: +https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers" + pkg_setup() { use driver || return + + local CONFIG_CHECK=" + PROC_FS + ~DRM_KMS_HELPER + ~SYSVIPC + ~!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=" @@ -101,9 +114,10 @@ pkg_setup() { nvidia-drm(video:kernel) nvidia-modeset(video:kernel) nvidia-uvm(video:kernel)" + linux-mod_pkg_setup - if [[ ${MERGE_TYPE} != binary ]] && kernel_is gt ${NV_KERNEL_MAX/./ }; then + if [[ ${MERGE_TYPE} != binary ]] && kernel_is -gt ${NV_KERNEL_MAX/./ }; then ewarn "Kernel ${KV_MAJOR}.${KV_MINOR} is either known to break this version of nvidia-drivers" ewarn "or was not tested with it. It is recommended to use one of:" ewarn " <=sys-kernel/gentoo-kernel-${NV_KERNEL_MAX}" @@ -144,16 +158,18 @@ src_prepare() { gzip -d nvidia-{cuda-mps-control,smi}.1.gz || die } -nvidia-drivers_make() { - emake -C nvidia-${1} ${2} \ - DESTDIR="${ED}" PREFIX=/usr LIBDIR="${ED}/usr/$(get_libdir)" \ - HOST_CC="$(tc-getBUILD_CC)" HOST_LD="$(tc-getBUILD_LD)" \ - DO_STRIP= MANPAGE_GZIP= \ - NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 OUTPUTDIR=out -} - src_compile() { + nvidia-drivers_make() { + emake -C nvidia-${1} ${2} \ + PREFIX="${EPREFIX}/usr" \ + HOST_CC="$(tc-getBUILD_CC)" \ + HOST_LD="$(tc-getBUILD_LD)" \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 DO_STRIP= OUTPUTDIR=out + } + tc-export AR CC LD OBJCOPY + # may no longer be relevant but kept as a safety export DISTCC_DISABLE=1 CCACHE_DISABLE=1 @@ -170,69 +186,78 @@ src_compile() { fi } -nvidia-drivers_libs_install() { - local libs=( - EGL_nvidia - GLESv1_CM_nvidia - GLESv2_nvidia - cuda - nvcuvid - nvidia-allocator - nvidia-eglcore - nvidia-encode - nvidia-glcore - nvidia-glsi - nvidia-glvkspirv - nvidia-ml - nvidia-opencl - nvidia-opticalflow - nvidia-ptxjitcompiler - nvidia-tls - ) - use amd64 && libs+=( nvidia-compiler ) - - if use X; then - libs+=( - GLX_nvidia - vdpau_nvidia +src_install() { + nvidia-drivers_make_install() { + emake -C nvidia-${1} install \ + DESTDIR="${D}" \ + PREFIX="${EPREFIX}/usr" \ + LIBDIR="${ED}/usr/$(get_libdir)" \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + } + + nvidia-drivers_libs_install() { + local libs=( + EGL_nvidia + GLESv1_CM_nvidia + GLESv2_nvidia + cuda + nvcuvid + nvidia-allocator + nvidia-eglcore + nvidia-encode + nvidia-glcore + nvidia-glsi + nvidia-glvkspirv + nvidia-ml + nvidia-opencl + nvidia-opticalflow + nvidia-ptxjitcompiler + nvidia-tls ) - if use amd64; then + use amd64 && libs+=( nvidia-compiler ) + + if use X; then libs+=( - nvidia-fbc - nvidia-ifr + GLX_nvidia + vdpau_nvidia ) + if use amd64; then + libs+=( + nvidia-fbc + nvidia-ifr + ) + fi fi - fi - local libdir=. - if multilib_is_native_abi; then - libs+=( - nvidia-cbl - nvidia-cfg - nvidia-rtcore - nvoptix - ) - use amd64 && libs+=( nvidia-ngx ) - else - libdir+=/32 - fi + local libdir=. + if [[ ${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:0:3} != lib ]] && lib=lib${lib}.so.${PV} + local lib soname + for lib in "${libs[@]}"; do + lib=lib${lib}.so.${PV} - # auto-detect soname and create appropriate symlinks - soname=$(scanelf -qF'%S#F' "${lib}") || die "Scanning ${lib} failed" - if [[ ${soname} && ${soname} != ${lib} ]]; then - ln -s ${lib} ${libdir}/${soname} || die - fi - ln -s ${lib} ${libdir}/${lib%.so*}.so || die + # auto-detect soname and create appropriate symlinks + soname=$(scanelf -qF'%S#F' ${lib}) || die "Scanning ${lib} failed" + if [[ ${soname} && ${soname} != ${lib} ]]; then + ln -s ${lib} ${libdir}/${soname} || die + fi + ln -s ${lib} ${libdir}/${lib%.so*}.so || die - dolib.so ${libdir}/${lib%.so*}* - done -} + dolib.so ${libdir}/${lib%.so*}* + done + } -src_install() { if use driver; then linux-mod_src_install @@ -273,20 +298,20 @@ src_install() { newins nvidia-application-profiles{-${PV},}-rc # install built helpers - nvidia-drivers_make modprobe install + nvidia-drivers_make_install modprobe # allow video group to load mods and create devs (bug #505092) fowners root:video /usr/bin/nvidia-modprobe fperms 4710 /usr/bin/nvidia-modprobe - nvidia-drivers_make persistenced install + nvidia-drivers_make_install persistenced newconfd "${FILESDIR}/nvidia-persistenced.confd" nvidia-persistenced newinitd "${FILESDIR}/nvidia-persistenced.initd" nvidia-persistenced systemd_dounit nvidia-persistenced.service - use X && nvidia-drivers_make xconfig install + use X && nvidia-drivers_make_install xconfig if use tools; then - nvidia-drivers_make settings install + nvidia-drivers_make_install settings doicon nvidia-settings/doc/nvidia-settings.png domenu nvidia-settings/doc/nvidia-settings.desktop @@ -320,12 +345,14 @@ src_install() { # install prebuilt-only libraries multilib_foreach_abi nvidia-drivers_libs_install + # install systemd sleep services exeinto /lib/systemd/system-sleep doexe nvidia dobin nvidia-sleep.sh - systemd_dounit *.service + systemd_dounit nvidia-{hibernate,resume,suspend}.service einstalldocs + readme.gentoo_create_doc } pkg_preinst() { @@ -340,7 +367,7 @@ pkg_preinst() { # 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 "\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \ + 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)) @@ -356,17 +383,18 @@ pkg_preinst() { pkg_postinst() { use driver && linux-mod_pkg_postinst + readme.gentoo_print_elog + optfeature "wayland EGLStream with nvidia-drm.modeset=1" gui-libs/egl-wayland if [[ -r /proc/driver/nvidia/version && $(grep -o ' [0-9.]* ' /proc/driver/nvidia/version) != " ${PV} " ]]; then ewarn "Currently loaded NVIDIA modules do not match the newly installed" ewarn "libraries and will lead to GPU-using application issues." - use driver && ewarn "The easiest way to fix this is to reboot." + use driver && ewarn "The easiest way to fix this is usually 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 @@ -377,15 +405,4 @@ pkg_postinst() { 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 } diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-460.73.01.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-460.73.01.ebuild new file mode 100644 index 000000000000..8e7b3dafc24f --- /dev/null +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-460.73.01.ebuild @@ -0,0 +1,408 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +MODULES_OPTIONAL_USE="driver" +inherit desktop linux-info linux-mod multilib-build optfeature \ + readme.gentoo-r1 systemd toolchain-funcs unpacker + +NV_KERNEL_MAX="5.12" +NV_BIN_URI="https://download.nvidia.com/XFree86/Linux-" +NV_GIT_URI="https://github.com/NVIDIA/nvidia-" + +DESCRIPTION="NVIDIA Accelerated Graphics Driver" +HOMEPAGE="https://www.nvidia.com/download/index.aspx" +SRC_URI=" + amd64? ( ${NV_BIN_URI}x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run ) + arm64? ( ${NV_BIN_URI}aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run ) + ${NV_GIT_URI}installer/archive/${PV}.tar.gz -> nvidia-installer-${PV}.tar.gz + ${NV_GIT_URI}modprobe/archive/${PV}.tar.gz -> nvidia-modprobe-${PV}.tar.gz + ${NV_GIT_URI}persistenced/archive/${PV}.tar.gz -> nvidia-persistenced-${PV}.tar.gz + ${NV_GIT_URI}settings/archive/${PV}.tar.gz -> nvidia-settings-${PV}.tar.gz + ${NV_GIT_URI}xconfig/archive/${PV}.tar.gz -> nvidia-xconfig-${PV}.tar.gz" +# nvidia-installer is unused but here for GPL-2's "distribute sources" +S="${WORKDIR}" + +LICENSE="GPL-2 MIT NVIDIA-r2 ZLIB" +SLOT="0/${PV%%.*}" +KEYWORDS="-* ~amd64" +IUSE="+X +driver static-libs +tools" + +COMMON_DEPEND=" + acct-group/video + acct-user/nvpd + net-libs/libtirpc + tools? ( + dev-libs/atk + dev-libs/glib:2 + dev-libs/jansson + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXxf86vm + x11-libs/pango + )" +RDEPEND=" + ${COMMON_DEPEND} + X? ( + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + )" +DEPEND=" + ${COMMON_DEPEND} + static-libs? ( + x11-libs/libX11 + x11-libs/libXext + ) + tools? ( + media-libs/libglvnd + sys-apps/dbus + x11-base/xorg-proto + x11-libs/libXrandr + x11-libs/libXv + x11-libs/libvdpau + )" +BDEPEND=" + app-misc/pax-utils + virtual/pkgconfig" + +QA_PREBUILT="opt/* usr/lib*" + +PATCHES=( + "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch +) +DOCS=( + README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json + nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt +) +HTML_DOCS=( html/. ) + +DISABLE_AUTOFORMATTING="yes" +DOC_CONTENTS="Users should be in the 'video' group to use NVIDIA devices. +You can add yourself by using: gpasswd -a my-user video + +For general information on using nvidia-drivers, please see: +https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers" + +pkg_setup() { + use driver || return + + local CONFIG_CHECK=" + PROC_FS + ~DRM_KMS_HELPER + ~SYSVIPC + ~!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 nvidia + dobin nvidia-sleep.sh + systemd_dounit nvidia-{hibernate,resume,suspend}.service + + einstalldocs + readme.gentoo_create_doc +} + +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 + + readme.gentoo_print_elog + + optfeature "wayland EGLStream with nvidia-drm.modeset=1" gui-libs/egl-wayland + + if [[ -r /proc/driver/nvidia/version && + $(grep -o ' [0-9.]* ' /proc/driver/nvidia/version) != " ${PV} " ]]; then + ewarn "Currently loaded NVIDIA modules do not match the newly installed" + ewarn "libraries and will lead to GPU-using application issues." + use driver && ewarn "The easiest way to fix this is usually to reboot." + fi + + if [[ ${NV_LEGACY_MASK} ]]; then + ewarn "You are installing a version of nvidia-drivers known not to work" + ewarn "with a GPU of the current system. If unwanted, add the mask:" + if [[ -d ${EROOT}/etc/portage/package.mask ]]; then + ewarn " echo '${NV_LEGACY_MASK}' > ${EROOT}/etc/portage/package.mask/${PN}" + else + ewarn " echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask" + fi + ewarn "...then downgrade to a legacy branch if possible. For details, see:" + ewarn "https://www.nvidia.com/object/IO_32667.html" + fi +} diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-465.24.02.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-465.24.02.ebuild new file mode 100644 index 000000000000..c5544af8ebf7 --- /dev/null +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-465.24.02.ebuild @@ -0,0 +1,409 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +MODULES_OPTIONAL_USE="driver" +inherit desktop linux-info linux-mod multilib-build optfeature \ + readme.gentoo-r1 systemd toolchain-funcs unpacker + +NV_KERNEL_MAX="5.12" +NV_BIN_URI="https://download.nvidia.com/XFree86/Linux-" +NV_GIT_URI="https://github.com/NVIDIA/nvidia-" + +DESCRIPTION="NVIDIA Accelerated Graphics Driver" +HOMEPAGE="https://www.nvidia.com/download/index.aspx" +SRC_URI=" + amd64? ( ${NV_BIN_URI}x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run ) + arm64? ( ${NV_BIN_URI}aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run ) + ${NV_GIT_URI}installer/archive/${PV}.tar.gz -> nvidia-installer-${PV}.tar.gz + ${NV_GIT_URI}modprobe/archive/${PV}.tar.gz -> nvidia-modprobe-${PV}.tar.gz + ${NV_GIT_URI}persistenced/archive/${PV}.tar.gz -> nvidia-persistenced-${PV}.tar.gz + ${NV_GIT_URI}settings/archive/${PV}.tar.gz -> nvidia-settings-${PV}.tar.gz + ${NV_GIT_URI}xconfig/archive/${PV}.tar.gz -> nvidia-xconfig-${PV}.tar.gz" +# nvidia-installer is unused but here for GPL-2's "distribute sources" +S="${WORKDIR}" + +LICENSE="GPL-2 MIT NVIDIA-r2 ZLIB" +SLOT="0/${PV%%.*}" +KEYWORDS="-* ~amd64" +IUSE="+X +driver static-libs +tools" + +COMMON_DEPEND=" + acct-group/video + acct-user/nvpd + net-libs/libtirpc + tools? ( + dev-libs/atk + dev-libs/glib:2 + dev-libs/jansson + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXxf86vm + x11-libs/pango + )" +RDEPEND=" + ${COMMON_DEPEND} + X? ( + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + )" +DEPEND=" + ${COMMON_DEPEND} + static-libs? ( + x11-libs/libX11 + x11-libs/libXext + ) + tools? ( + media-libs/libglvnd + sys-apps/dbus + x11-base/xorg-proto + x11-libs/libXrandr + x11-libs/libXv + x11-libs/libvdpau + )" +BDEPEND=" + app-misc/pax-utils + virtual/pkgconfig" + +QA_PREBUILT="opt/* usr/lib*" + +PATCHES=( + "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch +) +DOCS=( + README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json + nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt +) +HTML_DOCS=( html/. ) + +DISABLE_AUTOFORMATTING="yes" +DOC_CONTENTS="Users should be in the 'video' group to use NVIDIA devices. +You can add yourself by using: gpasswd -a my-user video + +For general information on using nvidia-drivers, please see: +https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers" + +pkg_setup() { + use driver || return + + local CONFIG_CHECK=" + PROC_FS + ~DRM_KMS_HELPER + ~SYSVIPC + ~!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)" + # nvidia-peermem(video:kernel) - skipping unless there is a demand for it + + 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 + readme.gentoo_create_doc +} + +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 + + readme.gentoo_print_elog + + optfeature "wayland EGLStream with nvidia-drm.modeset=1" gui-libs/egl-wayland + + if [[ -r /proc/driver/nvidia/version && + $(grep -o ' [0-9.]* ' /proc/driver/nvidia/version) != " ${PV} " ]]; then + ewarn "Currently loaded NVIDIA modules do not match the newly installed" + ewarn "libraries and will lead to GPU-using application issues." + use driver && ewarn "The easiest way to fix this is usually to reboot." + fi + + if [[ ${NV_LEGACY_MASK} ]]; then + ewarn "You are installing a version of nvidia-drivers known not to work" + ewarn "with a GPU of the current system. If unwanted, add the mask:" + if [[ -d ${EROOT}/etc/portage/package.mask ]]; then + ewarn " echo '${NV_LEGACY_MASK}' > ${EROOT}/etc/portage/package.mask/${PN}" + else + ewarn " echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask" + fi + ewarn "...then downgrade to a legacy branch if possible. For details, see:" + ewarn "https://www.nvidia.com/object/IO_32667.html" + fi +} |