1 |
commit: 318a22f6a277bd58a0bc6697d18e457a79a845df |
2 |
Author: Ionen Wolkens <sudinave <AT> gmail <DOT> com> |
3 |
AuthorDate: Wed Apr 21 12:19:58 2021 +0000 |
4 |
Commit: David Seifert <soap <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Apr 21 12:19:58 2021 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=318a22f6 |
7 |
|
8 |
x11-drivers/nvidia-drivers: security bump to 390.143 |
9 |
|
10 |
- CVE‑2021‑1076 (bug #784596) |
11 |
- Adds compatibility for kernel 5.11.x |
12 |
|
13 |
Bug: https://bugs.gentoo.org/784596 |
14 |
Signed-off-by: Ionen Wolkens <sudinave <AT> gmail.com> |
15 |
Signed-off-by: David Seifert <soap <AT> gentoo.org> |
16 |
|
17 |
x11-drivers/nvidia-drivers/Manifest | 7 + |
18 |
.../nvidia-drivers/nvidia-drivers-390.143.ebuild | 383 +++++++++++++++++++++ |
19 |
2 files changed, 390 insertions(+) |
20 |
|
21 |
diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest |
22 |
index f2cd533cb7d..4c4a4fa7cb9 100644 |
23 |
--- a/x11-drivers/nvidia-drivers/Manifest |
24 |
+++ b/x11-drivers/nvidia-drivers/Manifest |
25 |
@@ -2,27 +2,34 @@ DIST NVIDIA-Linux-aarch64-450.102.04.run 80469462 BLAKE2B dcabed08bdd2c4c3287942 |
26 |
DIST NVIDIA-Linux-aarch64-460.67.run 112551235 BLAKE2B cc1166454f6e8771c7fe97010906919e9f2afd74ac86321006628f90f4d8dee033c3e09b2d9cac9063fe3fd313c0b529b347bcf38c051588ca7a972617c45026 SHA512 6ba17844dd215967f2f55a6620535464f244075a13f4b2b6d0ffaeeb6d97397fae0ba0de032d971847556d7b78ac8a1010ecec5127f45eb7ec73db87b1507ca1 |
27 |
DIST NVIDIA-Linux-aarch64-465.19.01.run 174150951 BLAKE2B 7344404cff1ee5fce5368de718fdbb1fd392f27c102e09cc63c9cefd487d9041109ac998bce7a4cec86d0b92d5bec77040410bc9b717b49bebbc72810d5f8a84 SHA512 e99c18304522b3bf961430885482fbb7892cbc10e0458f8f813f5ebf84391c6e53e946ab8c6c6f0e8ef78b89c6289abbb5c2f655c9991f4a55507b413b1ae1f9 |
28 |
DIST NVIDIA-Linux-x86-390.141.run 49589744 BLAKE2B 304672806b89885adbf8459ea99ca872769e44a42ff041a5b79ef05d113d7717f505f543441e7a2fc6c569f6d66391f0380a4f23f3e68108c8de817bf251f850 SHA512 6dfde3b54520070954b45f6bc071251084e1741f55e582b1abd806eb367e4b9ce0015615bf6a887fa784d075b3db08b6940da4163b960969773d1bdc52b4961e |
29 |
+DIST NVIDIA-Linux-x86-390.143.run 49327068 BLAKE2B c6e0600885bfd834be6dca18346259a58e05640afe4b1ea394d5795e4c8a4b0fa9fdf5c4a331a128843708ece9e95df2ff7e0b3cf2ac5875b5d731c73423c112 SHA512 17bbcc2f5e9dde3f131b7924ea1e99a591b5e18b835dd324c528d17f74eded94e087c6a9a2b364189851e9972ad27bcd47e901c9ec14eedc568b99890f1e0a4f |
30 |
DIST NVIDIA-Linux-x86_64-390.141.run 85330901 BLAKE2B 7759d8cf6c9a75607b9a3ecd53cdd6f6a93f2f372d740a5a87d4d3f41a22f3bd953cc7dd6a0dc0e23a829ec86df8d65b9de499a76cfd4266a13b0aa3288aceb5 SHA512 5448d70e6e64a6403e61a004d83c69a442dd8ed0d61da3a31d3e3b7943c06c559a66b0f8d135982868ecbf209a965f60dae1a633367630b4d9287f725bbaa53c |
31 |
+DIST NVIDIA-Linux-x86_64-390.143.run 85686808 BLAKE2B 0ad3ec661565cc52553c0b4f73256665fd3b505e39bffbfbffb3d148193369471b5160d59717dbecbd5f00bd28d9d17c9c7b5284e493f57f84ce19e310e477dc SHA512 79b61bd274964ed2e6a7ce99f0066d616d65b5a074de2ed84cdebb9ec6e8a608f71e511105e9a03e0c6e6d259f0111fed5772638ea72b08951eb2712c80505d0 |
32 |
DIST NVIDIA-Linux-x86_64-450.102.04.run 141391114 BLAKE2B 019f928464b23d2a86bfdd255b7651e3cfe2b0b6ebf58d1b4a6ba1f27990e1d050d1e2429ba4aa60b966b04e775939084a04d82d1dd3482a10b39375b17b1c31 SHA512 1d13de540da36274a360ea6bcd1ce01eaae103fe417b42aa8f9ac757c382b06da455a78cf6798310179f90e2afeadf3a8c9f3398186490c3c0f9079021e850ed |
33 |
DIST NVIDIA-Linux-x86_64-460.67.run 177691692 BLAKE2B 25a7d87cc128933a98100d7c5ef37f93c3a870c096eea3228a28ef79d712ce104608f9422221cc1eadc21dccbbc8bc41ab1832795cfee75e217600ed0d76489e SHA512 80fdc023a8ce80e3a103896f28a5564bb43903af6bfc719f755c48eb225e79ec6abf219ab20eb80ada5808ef932ef5fa0fe710c6e0a07dd8a248daff2ba3b898 |
34 |
DIST NVIDIA-Linux-x86_64-465.19.01.run 259853124 BLAKE2B 04d5d738a99e313d9c0c8aa074b28ff744b3d16893f26d4837d7440e7fa51c3182101f7cadedcb7b13f01d0e6dd612c931f2357e87003966cfc5b2c7f4398079 SHA512 b4ececb6069ec961a4bf6b50c3bb0d7ca94add13e04f9dcceaddc6d3267f6dfc5f020d14e49f37e6c09ec3b47b3f44f0f44620e1ab4d25f7739514a07769a67d |
35 |
DIST nvidia-installer-390.141.tar.gz 205299 BLAKE2B b95ddcf9a8d61247572d73faa04558564962782b0eb222601315d741d1ee71fa0636fa87d31105ecc5ec61328d3174a3ed646046e02b6b5f29f071215a0e8bdd SHA512 3848a4ec17510bf4d3060e5ef8aafa1ad921215ec39d26c54b3bbdd8a5867c46e01d247b24b05ad6906fed7fb4ae6dc37346a7da6e5aae88b5b47584c0b07a02 |
36 |
+DIST nvidia-installer-390.143.tar.gz 205320 BLAKE2B 5c27dd769ec5a2effc56ea86474ee45b86362c26844d2f902d7bb2ab8e58b2763f4f761341ce4051e85cfd8189eab9d441744f1b9946a6dc46105888dc5ba58a SHA512 a45cbae70e8d9f1108d5e2c04b4beee350b8469df987ff80793dda7fc4e6efe3a787db0d47e7dfe22b88b29647b99cc24ab418666d1ef2fc038143f574faba36 |
37 |
DIST nvidia-installer-450.102.04.tar.gz 197642 BLAKE2B 5d94dee76057eaea236090e2eb8cba4fdf90f4959a0ae26805bc771262a0eb05640846c191f2a5a5485e0584ae07ba64d2989201118594df747c3ac13503f90d SHA512 2c1608c0dd971122978a395edc5a51de6cb76d72aac45b4f9303e1a99e292ec0ddd9c03f2e95b10c357c0da1dc2824197c2553828eedbd0c4434b431aa593f6f |
38 |
DIST nvidia-installer-460.67.tar.gz 198484 BLAKE2B 0eaf3e3eccd6749e4fe89394905dded58e739f42cbc33c8a91575f4505030a216670fc8c0fd4d1d42659acf301c9ba59d4052a80c6eba6c5db84ed022acb2620 SHA512 8fff0fa13a82cb7eaf2fd1d05be509e9124e67bb05810f8937fb1f16c4a2362a5c1a50bc9a5155cfc90a9bbcee38a54fb5ae0ae164e205900a49f6d21779d54f |
39 |
DIST nvidia-installer-465.19.01.tar.gz 200374 BLAKE2B acbdc0d2048461878af6b0f9ebaa08ae89d0e4c04d4f58e2639df8979665f08d1e29819fa02c4e24a1145f884ff8f292e74835663ec917d9e94a2791ab461054 SHA512 5b300c600753e04c9c6e2f2a3bdc42d256b8e21b20037928240ea7f4f4ebb96801ba0f515a0a047479833800672699840965edc1c95d2c4e61d6ad3f6258f578 |
40 |
DIST nvidia-modprobe-390.141.tar.gz 39965 BLAKE2B 46c01ec3e53569454a032e42561a81154712485ffb11d0393d9e9007a3825a33c8d045ea7296dd8465ad9b2cee36a639274c55ff31c70e93d334ac9fe724f7b1 SHA512 c0abec334fee4293a55a43edbcc6a7a8cd8ff6b6fbb954b428182542a24eba90f47100977c84ea9cbe557a39fc5fb90677b4f2227f49a6f30a56f6941508f40e |
41 |
+DIST nvidia-modprobe-390.143.tar.gz 39968 BLAKE2B 09f043521f195327630c0ca575473da42e051e2d34def22dcfb54295a94ca85e95ff41ee9564765567df19b88f90aba3d8cfffd489054779f2ce7d29f6e64b76 SHA512 066aaf031907fe2ba424e3b92e677ae78b4a938308bea82b7aa20cf0ba5c3678f93b6c9bf8a41fcd4fadcdcc870674a2be777ddcc2a5018974bd56b09a9ef271 |
42 |
DIST nvidia-modprobe-450.102.04.tar.gz 42139 BLAKE2B 79218a4e76dacdafadd31e45a27d3578924db6a74894064ce856498121fbf9d80e7b07046dfc36426340e0cefd78b416b017202bc93858fdf8cc77ba335bbaf8 SHA512 ac9d8d8849606d7ef3772570c976e5efab36f66e83a62f959b28c88cd798bba860052033dc5eb18c0f9e4a6f2d8e6082456d9b1586977a23f240cfa3a750d7ef |
43 |
DIST nvidia-modprobe-460.67.tar.gz 43140 BLAKE2B 8243d355f9d51495c9d09f25ccbcb39c0a6ef472cbfaded98f10818fae655e1cf62ff2edcf40baea72b8cca9eebc947742b2516bb057410239193201bb843538 SHA512 16c8239b54988622196e0eea113173e44ff8b60cdcdf585bf859e6440aff2c6699bb107962776e69056dd7d5e3bbd6289ea628a2255ac27e22ef79521e9baad3 |
44 |
DIST nvidia-modprobe-465.19.01.tar.gz 43385 BLAKE2B a34a74fb81cedf74acb75d0b8a844ba2fa6541037c7c4baa769acae34305e970a503b94a178ce4927a2daddfcea25a7cbb7f37767e26e7c70bc6d2882297c048 SHA512 3e31f5792d8377d3ad8d069c4ea423adbdfb3fb5daa6ff3c4b1ad32b07e062c5239db60a6a002177cfc7bc99760b3ae5f53e078daa80d58d0f1daf5adaf8537a |
45 |
DIST nvidia-persistenced-390.141.tar.gz 55984 BLAKE2B c4e889d15643f6e8a4e37b32d89e14acaa792c681863c74281b17e414021dc56e4692e91e7552762ef8b8ef977284ee2f307b14216a2562a9d30b2ab7a1ba522 SHA512 d9ea32c842d8d13a59128b28ce985fe3a421d2848eac30fc8a671a391c63516b58c46d3c5b21403b4e5b016577d23aebaec1f5b4e59b25a20668120f52e231a5 |
46 |
+DIST nvidia-persistenced-390.143.tar.gz 55994 BLAKE2B 1cfa469b84ecc9abdf0423d624244e7023a63225dfb16ac93223c462230b50099e4b59493be2d10cd6f2717e31c02655c76797e3222947d561f02ff72a52dd46 SHA512 37c3eb0bcce83e9b9ac5bdefa736e26e94b82de379a0f5c29e1611631c79103a797e58f5d1dea34221dd3a3f1a521b6db556eed48b1f38465481da2509d2f21a |
47 |
DIST nvidia-persistenced-450.102.04.tar.gz 52485 BLAKE2B 1fec24c86875789303aee8bf4362c9c35f76957a2906e2682aa5c07e914cc2acde769439d88007420904a71526e9f0d03ab9d0a3c5dcd1355047e03958d006f9 SHA512 6c51daaed3e7ecdb8d98bdcf0618e50962895895f88cc45a5f861c08d3c10f590d4a6a3f0a683ce0dce0e327d5977da1a76fdde974a97031dc698120ef990b07 |
48 |
DIST nvidia-persistenced-460.67.tar.gz 53334 BLAKE2B 1354ec98fd2b95d264fd7df6219f639cf5d73173e6f0843a0880e6b18953904412cb756bd2c60432f6ae4c253d047515a9e32a128210fd94386ae6bc9a341b5c SHA512 0b4f7d8aa781c3536f6cd020225d2a3bab4b83498090419198488a2bec811534e61ba90461ae846bd09f4530f19984d77ca41edf0a851b1b700d1c0e053d537f |
49 |
DIST nvidia-persistenced-465.19.01.tar.gz 53555 BLAKE2B 0b163a2cf37c9180512f9d3af442f52d4417f1ca0b286bafc154cd3c235bc8ff82380fbb92633f9dc0e010c9cc4e36ab3b5f6aad726b5357dc368edafe737146 SHA512 ebe8a8eff5770605e751665f325a82cbe24b20395684d124558838553a2815f6cf2804cb58a9624105a99442fea91d774ad4978bcd2ad13a52f55e777ae13c5d |
50 |
DIST nvidia-settings-390.141.tar.gz 1297261 BLAKE2B 452870df1ba598692f5da47444eb2daf4db40c79cac98c10b1c994c0ff39fc7936909b9d7788cbfe784999e68a2bdbbc12e85d63c3bc02ac872e6b3c46834697 SHA512 dbf7c389bbdc94291a1b974adfa33414148b1ab752aa7d948a27e91ee1bceb3b8435aceb6b7ef3cb806333572db11b5524667045ef7686b119d7955d2699cb04 |
51 |
+DIST nvidia-settings-390.143.tar.gz 1297258 BLAKE2B d63b48c03069d4d2ae7f7034b4bc13ff3a1004bd64ce54ee553e614cb88cb081842b6c1428fd556e031ce69361927074822c5c620d2cde8d37a5887051ff56de SHA512 7bbef03e77e73bb1e05585cfaf6823913e2446b1df8353044ae01f80693bb884fdcc1b38fa51b171756edaa234479cda027d6569d025b120b7b64f226f8eedce |
52 |
DIST nvidia-settings-450.102.04.tar.gz 1229675 BLAKE2B 166b73a0e9fe1cc1c16f83128aa94f3b9ef44fc71004e80c2681299dd564df6b458b52bedfd60eaaecf6142d0ea7d5147cb9c509d4db4e6b85bc72dd4dc75751 SHA512 c514bb3cc72954a52f4821674f9b783ebc0bd8c7294a296716619ddad15f2b63f50ada47797dee1386709deb7d407cb1d6c04532b7ca6e03d84234555751c9a9 |
53 |
DIST nvidia-settings-460.67.tar.gz 1233189 BLAKE2B 33ffceefea4e184cb1873cdce97db26637e87cd20c82bcabcbfe88bcb084ac3d833ac5688cafa33a5a89383040d5c1c5d46de9c3f9a8ba6174574aa57aea2e46 SHA512 d1828379aa477394747ae3e5d3505e864d38a349dd159a04cb263613380afea9aea2081300b0d2b8ae205b800bfe6e8ba504e612989da394d757f00e4399b617 |
54 |
DIST nvidia-settings-465.19.01.tar.gz 1233866 BLAKE2B 297ffe66639bd4221f5b780abb784f640553f0f7d4f9bcc254cdf54fa6dcc98ac197fa76178f66b626bcef8c4fc6c2c83c3c2474f81a2c5124df0a651f878663 SHA512 90f2786941ee062f4f8e7f80e0174620d8aedca17164e7e466c77733f29e891ffce9b08a09a75c25a219546efc816ca2fbb26b3b142522e89e495b7b90bd65d1 |
55 |
DIST nvidia-xconfig-390.141.tar.gz 140293 BLAKE2B 08ee93be953f75dbe078c557af7c062092ce8a3b53af0735d43b7feabe6d1c99390b9533027fbc5017d207a70dfa5aecf88d211905bf8f0e846f769a6ea16c2b SHA512 9fedee2f720d86bd24e393328249bf970a1f242b9e750543e757eb13ca30f6ecfda6c63441093ab96ae28d5f38d4e55cc6de6316eb82d2a2f33074144a1eef2f |
56 |
+DIST nvidia-xconfig-390.143.tar.gz 140282 BLAKE2B 3de0fe4bc0a049381e4504002bbe94887334310ca7b17d83add1237d7c15b7783e4f418acba3e261da564b1c00ca244f4ad02f3d2cbca0f0f68ee2900098fb36 SHA512 0c82dda4dd6db0c21cd9a2b88e4a77129bc4a0be8a17b398497328f4f1cb5c319f0428d7fbc3b0177d69246d55f96b03dd740d3480d67bb03049cd0cbe190132 |
57 |
DIST nvidia-xconfig-450.102.04.tar.gz 141072 BLAKE2B 0d299429ccb10f351de0e7b81fa7ce8199da83db346483a7d791fd77276ff6d70b46ba153cdf6503b945d80f4a0108a6ec02a3955c9d7310de901f0e3b1e6e36 SHA512 f5752d7c49d1cb3c0061caace8cf5899c8d61e76f0b7080e05d70cd77758496dd8646a1551d93a12c8ad5f9fcfd53a49c51206af96f36ec1eec7ccfe59505f2d |
58 |
DIST nvidia-xconfig-460.67.tar.gz 142323 BLAKE2B 09c7281de09a2c2968b5f4a48eca63110e6db988429c844b55f8efc28fbcd9d44c79ad47149c25f657c2a98ae7576c01b2c9b7f643b8321fe1393adc571ebcaa SHA512 0e65c81ec40d3eaeec036fbd8f46a3052a75ff0ad200c58438ff6c782a5764e62e51d03b4a2080770c32522894641288ac495f62bc39c3d5658b1ff87c9f6cdd |
59 |
DIST nvidia-xconfig-465.19.01.tar.gz 142552 BLAKE2B 41f7fb27c0af0b48e9cdc48998a32e81dee3127cfab36c2ee6ff7c2ffcf3de1fb017d3d0900fc32d75f9ee6236c256606a5eda6df41f6b7a915b881767ccd218 SHA512 d36a929248302a61b5e42afd555cabac6acf9a9bbf4049706746220ef6e7033401b6210db15d7bd07b1bf249e2c946469695057780f50369af17e9f5019e2183 |
60 |
|
61 |
diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.143.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.143.ebuild |
62 |
new file mode 100644 |
63 |
index 00000000000..9475ceb6d03 |
64 |
--- /dev/null |
65 |
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.143.ebuild |
66 |
@@ -0,0 +1,383 @@ |
67 |
+# Copyright 1999-2021 Gentoo Authors |
68 |
+# Distributed under the terms of the GNU General Public License v2 |
69 |
+ |
70 |
+EAPI=7 |
71 |
+ |
72 |
+MODULES_OPTIONAL_USE="driver" |
73 |
+inherit desktop linux-info linux-mod multilib-build \ |
74 |
+ readme.gentoo-r1 systemd toolchain-funcs unpacker |
75 |
+ |
76 |
+NV_KERNEL_MAX="5.11" |
77 |
+NV_BIN_URI="https://download.nvidia.com/XFree86/Linux-" |
78 |
+NV_GIT_URI="https://github.com/NVIDIA/nvidia-" |
79 |
+ |
80 |
+DESCRIPTION="NVIDIA Accelerated Graphics Driver" |
81 |
+HOMEPAGE="https://www.nvidia.com/download/index.aspx" |
82 |
+SRC_URI=" |
83 |
+ amd64? ( ${NV_BIN_URI}x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run ) |
84 |
+ x86? ( ${NV_BIN_URI}x86/${PV}/NVIDIA-Linux-x86-${PV}.run ) |
85 |
+ ${NV_GIT_URI}installer/archive/${PV}.tar.gz -> nvidia-installer-${PV}.tar.gz |
86 |
+ ${NV_GIT_URI}modprobe/archive/${PV}.tar.gz -> nvidia-modprobe-${PV}.tar.gz |
87 |
+ ${NV_GIT_URI}persistenced/archive/${PV}.tar.gz -> nvidia-persistenced-${PV}.tar.gz |
88 |
+ ${NV_GIT_URI}settings/archive/${PV}.tar.gz -> nvidia-settings-${PV}.tar.gz |
89 |
+ ${NV_GIT_URI}xconfig/archive/${PV}.tar.gz -> nvidia-xconfig-${PV}.tar.gz" |
90 |
+# nvidia-installer is unused but here for GPL-2's "distribute sources" |
91 |
+S="${WORKDIR}" |
92 |
+ |
93 |
+LICENSE="GPL-2 MIT NVIDIA-r2" |
94 |
+SLOT="0/${PV%%.*}" |
95 |
+KEYWORDS="-* ~amd64 ~x86" |
96 |
+IUSE="+X +driver static-libs +tools" |
97 |
+ |
98 |
+COMMON_DEPEND=" |
99 |
+ acct-group/video |
100 |
+ acct-user/nvpd |
101 |
+ net-libs/libtirpc |
102 |
+ tools? ( |
103 |
+ dev-libs/atk |
104 |
+ dev-libs/glib:2 |
105 |
+ dev-libs/jansson |
106 |
+ x11-libs/cairo |
107 |
+ x11-libs/gdk-pixbuf:2 |
108 |
+ x11-libs/gtk+:3 |
109 |
+ x11-libs/libX11 |
110 |
+ x11-libs/libXext |
111 |
+ x11-libs/libXxf86vm |
112 |
+ x11-libs/pango |
113 |
+ )" |
114 |
+RDEPEND=" |
115 |
+ ${COMMON_DEPEND} |
116 |
+ X? ( |
117 |
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}] |
118 |
+ x11-libs/libX11[${MULTILIB_USEDEP}] |
119 |
+ x11-libs/libXext[${MULTILIB_USEDEP}] |
120 |
+ )" |
121 |
+DEPEND=" |
122 |
+ ${COMMON_DEPEND} |
123 |
+ static-libs? ( |
124 |
+ x11-libs/libX11 |
125 |
+ x11-libs/libXext |
126 |
+ ) |
127 |
+ tools? ( |
128 |
+ media-libs/libglvnd |
129 |
+ sys-apps/dbus |
130 |
+ x11-base/xorg-proto |
131 |
+ x11-libs/libXrandr |
132 |
+ x11-libs/libXv |
133 |
+ x11-libs/libvdpau |
134 |
+ )" |
135 |
+BDEPEND=" |
136 |
+ app-misc/pax-utils |
137 |
+ virtual/pkgconfig" |
138 |
+ |
139 |
+QA_PREBUILT="opt/* usr/lib*" |
140 |
+ |
141 |
+PATCHES=( |
142 |
+ "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch |
143 |
+ "${FILESDIR}"/nvidia-settings-390.141-fno-common.patch |
144 |
+) |
145 |
+DOCS=( |
146 |
+ README.txt NVIDIA_Changelog |
147 |
+ nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt |
148 |
+) |
149 |
+HTML_DOCS=( html/. ) |
150 |
+ |
151 |
+DISABLE_AUTOFORMATTING="yes" |
152 |
+DOC_CONTENTS="Users should be in the 'video' group to use NVIDIA devices. |
153 |
+You can add yourself by using: gpasswd -a my-user video |
154 |
+ |
155 |
+For general information on using nvidia-drivers, please see: |
156 |
+https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers" |
157 |
+ |
158 |
+pkg_setup() { |
159 |
+ use driver || return |
160 |
+ |
161 |
+ local CONFIG_CHECK=" |
162 |
+ PROC_FS |
163 |
+ ~DRM_KMS_HELPER |
164 |
+ ~SYSVIPC |
165 |
+ ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT |
166 |
+ ~!LOCKDEP |
167 |
+ !DEBUG_MUTEXES" |
168 |
+ local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection |
169 |
+ of drivers (no custom config), and optional nvidia-drm.modeset=1. |
170 |
+ Cannot be directly selected in the kernel's menuconfig, so enable |
171 |
+ options such as CONFIG_DRM_FBDEV_EMULATION instead. |
172 |
+ 390.xx branch: also used by a GLX workaround needed for OpenGL." |
173 |
+ |
174 |
+ BUILD_PARAMS='NV_VERBOSE=1 IGNORE_CC_MISMATCH=yes SYSSRC="${KV_DIR}" SYSOUT="${KV_OUT_DIR}"' |
175 |
+ use x86 && BUILD_PARAMS+=' ARCH=i386' # needed for recognition |
176 |
+ BUILD_TARGETS="modules" # defaults' clean sometimes deletes modules |
177 |
+ MODULE_NAMES=" |
178 |
+ nvidia(video:kernel) |
179 |
+ nvidia-drm(video:kernel) |
180 |
+ nvidia-modeset(video:kernel)" |
181 |
+ use amd64 && MODULE_NAMES+=" nvidia-uvm(video:kernel)" # no x86 support |
182 |
+ |
183 |
+ linux-mod_pkg_setup |
184 |
+ |
185 |
+ if [[ ${MERGE_TYPE} != binary ]] && kernel_is -gt ${NV_KERNEL_MAX/./ }; then |
186 |
+ ewarn "Kernel ${KV_MAJOR}.${KV_MINOR} is either known to break this version of nvidia-drivers" |
187 |
+ ewarn "or was not tested with it. It is recommended to use one of:" |
188 |
+ ewarn " <=sys-kernel/gentoo-kernel-${NV_KERNEL_MAX}" |
189 |
+ ewarn " <=sys-kernel/gentoo-sources-${NV_KERNEL_MAX}" |
190 |
+ ewarn "You are free to try or use /etc/portage/patches, but support will" |
191 |
+ ewarn "not be given and issues wait until NVIDIA releases a fixed version." |
192 |
+ ewarn |
193 |
+ ewarn "Do _not_ file a bug report if run into issues." |
194 |
+ ewarn |
195 |
+ fi |
196 |
+} |
197 |
+ |
198 |
+src_prepare() { |
199 |
+ # make user patches usable across versions |
200 |
+ rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die |
201 |
+ rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die |
202 |
+ rm nvidia-settings && mv nvidia-settings{-${PV},} || die |
203 |
+ rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die |
204 |
+ |
205 |
+ default |
206 |
+ |
207 |
+ # prevent detection of incomplete kernel DRM support (bug #603818) |
208 |
+ sed 's/defined(CONFIG_DRM)/defined(CONFIG_DRM_KMS_HELPER)/' \ |
209 |
+ -i kernel/conftest.sh || die |
210 |
+ |
211 |
+ sed -e '/Exec=\|Icon=/s/_.*/nvidia-settings/' \ |
212 |
+ -e '/Categories=/s/_.*/System;Settings;/' \ |
213 |
+ -i nvidia-settings/doc/nvidia-settings.desktop || die |
214 |
+ |
215 |
+ # remove gtk2 support (bug #592730) |
216 |
+ sed '/^GTK2LIB = /d;/INSTALL.*GTK2LIB/,+1d' \ |
217 |
+ -i nvidia-settings/src/Makefile || die |
218 |
+ |
219 |
+ sed 's/__USER__/nvpd/' \ |
220 |
+ nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ |
221 |
+ > nvidia-persistenced.service || die |
222 |
+ |
223 |
+ sed 's/__NV_VK_ICD__/libGLX_nvidia.so.0/' \ |
224 |
+ nvidia_icd.json.template > nvidia_icd.json || die |
225 |
+ |
226 |
+ sed "s/%LIBDIR%/$(get_libdir)/g" "${FILESDIR}/nvidia-390.conf" \ |
227 |
+ > nvidia-drm-outputclass.conf || die |
228 |
+ |
229 |
+ gzip -d nvidia-{cuda-mps-control,smi}.1.gz || die |
230 |
+} |
231 |
+ |
232 |
+src_compile() { |
233 |
+ nvidia-drivers_make() { |
234 |
+ emake -C nvidia-${1} ${2} \ |
235 |
+ PREFIX="${EPREFIX}/usr" \ |
236 |
+ HOST_CC="$(tc-getBUILD_CC)" \ |
237 |
+ HOST_LD="$(tc-getBUILD_LD)" \ |
238 |
+ NV_USE_BUNDLED_LIBJANSSON=0 \ |
239 |
+ NV_VERBOSE=1 DO_STRIP= OUTPUTDIR=out |
240 |
+ } |
241 |
+ |
242 |
+ tc-export AR CC LD OBJCOPY |
243 |
+ |
244 |
+ # may no longer be relevant but kept as a safety |
245 |
+ export DISTCC_DISABLE=1 CCACHE_DISABLE=1 |
246 |
+ |
247 |
+ use driver && linux-mod_src_compile |
248 |
+ |
249 |
+ # 390.xx persistenced doesn't auto-detect libtirpc |
250 |
+ LIBS=$($(tc-getPKG_CONFIG) --libs libtirpc) \ |
251 |
+ common_cflags=$($(tc-getPKG_CONFIG) --cflags libtirpc) \ |
252 |
+ nvidia-drivers_make persistenced |
253 |
+ |
254 |
+ nvidia-drivers_make modprobe |
255 |
+ use X && nvidia-drivers_make xconfig |
256 |
+ |
257 |
+ if use tools; then |
258 |
+ nvidia-drivers_make settings |
259 |
+ elif use static-libs; then |
260 |
+ nvidia-drivers_make settings/src build-xnvctrl |
261 |
+ fi |
262 |
+} |
263 |
+ |
264 |
+src_install() { |
265 |
+ nvidia-drivers_make_install() { |
266 |
+ emake -C nvidia-${1} install \ |
267 |
+ DESTDIR="${D}" \ |
268 |
+ PREFIX="${EPREFIX}/usr" \ |
269 |
+ LIBDIR="${ED}/usr/$(get_libdir)" \ |
270 |
+ NV_USE_BUNDLED_LIBJANSSON=0 \ |
271 |
+ NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out |
272 |
+ } |
273 |
+ |
274 |
+ nvidia-drivers_libs_install() { |
275 |
+ local libs=( |
276 |
+ EGL_nvidia |
277 |
+ GLESv1_CM_nvidia |
278 |
+ GLESv2_nvidia |
279 |
+ cuda |
280 |
+ nvcuvid |
281 |
+ nvidia-compiler |
282 |
+ nvidia-eglcore |
283 |
+ nvidia-encode |
284 |
+ nvidia-fatbinaryloader |
285 |
+ nvidia-glcore |
286 |
+ nvidia-glsi |
287 |
+ nvidia-ml |
288 |
+ nvidia-opencl |
289 |
+ nvidia-ptxjitcompiler |
290 |
+ nvidia-tls |
291 |
+ ) |
292 |
+ |
293 |
+ if use X; then |
294 |
+ libs+=( |
295 |
+ GLX_nvidia |
296 |
+ nvidia-fbc |
297 |
+ nvidia-ifr |
298 |
+ vdpau_nvidia |
299 |
+ ) |
300 |
+ fi |
301 |
+ |
302 |
+ local libdir=. |
303 |
+ if [[ -d 32 && ${ABI} == x86 ]]; then |
304 |
+ libdir+=/32 |
305 |
+ else |
306 |
+ libs+=( |
307 |
+ nvidia-cfg |
308 |
+ nvidia-wfb |
309 |
+ ) |
310 |
+ fi |
311 |
+ |
312 |
+ local lib soname |
313 |
+ for lib in "${libs[@]}"; do |
314 |
+ lib=lib${lib}.so.${PV} |
315 |
+ |
316 |
+ # auto-detect soname and create appropriate symlinks |
317 |
+ soname=$(scanelf -qF'%S#F' ${lib}) || die "Scanning ${lib} failed" |
318 |
+ if [[ ${soname} && ${soname} != ${lib} ]]; then |
319 |
+ ln -s ${lib} ${libdir}/${soname} || die |
320 |
+ fi |
321 |
+ ln -s ${lib} ${libdir}/${lib%.so*}.so || die |
322 |
+ |
323 |
+ dolib.so ${libdir}/${lib%.so*}* |
324 |
+ done |
325 |
+ } |
326 |
+ |
327 |
+ if use driver; then |
328 |
+ linux-mod_src_install |
329 |
+ |
330 |
+ insinto /etc/modprobe.d |
331 |
+ newins "${FILESDIR}"/nvidia-169.07 nvidia.conf |
332 |
+ doins "${FILESDIR}"/nvidia-blacklist-nouveau.conf |
333 |
+ doins "${FILESDIR}"/nvidia-rmmod.conf |
334 |
+ fi |
335 |
+ |
336 |
+ if use X; then |
337 |
+ exeinto /usr/$(get_libdir)/xorg/modules/drivers |
338 |
+ doexe nvidia_drv.so |
339 |
+ |
340 |
+ # 390 has legacy glx needing a modified .conf (bug #713546) |
341 |
+ exeinto /usr/$(get_libdir)/extensions/nvidia |
342 |
+ newexe libglx.so{.${PV},} |
343 |
+ insinto /usr/share/X11/xorg.conf.d |
344 |
+ newins {,50-}nvidia-drm-outputclass.conf |
345 |
+ |
346 |
+ # vulkan icd uses libGLX_nvidia.so and so requires X |
347 |
+ insinto /usr/share/vulkan/icd.d |
348 |
+ doins nvidia_icd.json |
349 |
+ fi |
350 |
+ |
351 |
+ insinto /usr/share/glvnd/egl_vendor.d |
352 |
+ doins 10_nvidia.json |
353 |
+ |
354 |
+ insinto /etc/OpenCL/vendors |
355 |
+ doins nvidia.icd |
356 |
+ |
357 |
+ insinto /etc/nvidia |
358 |
+ newins nvidia-application-profiles{-${PV},}-rc |
359 |
+ |
360 |
+ # install built helpers |
361 |
+ nvidia-drivers_make_install modprobe |
362 |
+ # allow video group to load mods and create devs (bug #505092) |
363 |
+ fowners root:video /usr/bin/nvidia-modprobe |
364 |
+ fperms 4710 /usr/bin/nvidia-modprobe |
365 |
+ |
366 |
+ nvidia-drivers_make_install persistenced |
367 |
+ newconfd "${FILESDIR}/nvidia-persistenced.confd" nvidia-persistenced |
368 |
+ newinitd "${FILESDIR}/nvidia-persistenced.initd" nvidia-persistenced |
369 |
+ systemd_dounit nvidia-persistenced.service |
370 |
+ |
371 |
+ use X && nvidia-drivers_make_install xconfig |
372 |
+ |
373 |
+ if use tools; then |
374 |
+ nvidia-drivers_make_install settings |
375 |
+ doicon nvidia-settings/doc/nvidia-settings.png |
376 |
+ domenu nvidia-settings/doc/nvidia-settings.desktop |
377 |
+ |
378 |
+ insinto /usr/share/nvidia |
379 |
+ newins nvidia-application-profiles{-${PV},}-key-documentation |
380 |
+ |
381 |
+ exeinto /etc/X11/xinit/xinitrc.d |
382 |
+ newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings |
383 |
+ fi |
384 |
+ |
385 |
+ if use static-libs; then |
386 |
+ dolib.a nvidia-settings/src/libXNVCtrl/libXNVCtrl.a |
387 |
+ |
388 |
+ insinto /usr/include/NVCtrl |
389 |
+ doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h |
390 |
+ fi |
391 |
+ |
392 |
+ # install prebuilt-only helpers |
393 |
+ exeinto /opt/bin |
394 |
+ |
395 |
+ doexe nvidia-cuda-mps-control |
396 |
+ doman nvidia-cuda-mps-control.1 |
397 |
+ doexe nvidia-cuda-mps-server |
398 |
+ |
399 |
+ doexe nvidia-debugdump |
400 |
+ dobin nvidia-bug-report.sh |
401 |
+ |
402 |
+ doexe nvidia-smi |
403 |
+ doman nvidia-smi.1 |
404 |
+ |
405 |
+ # install prebuilt-only libraries |
406 |
+ mv tls/libnvidia-tls.so.${PV} . || die # alt tls lib needed by libglx.so |
407 |
+ multilib_foreach_abi nvidia-drivers_libs_install |
408 |
+ |
409 |
+ einstalldocs |
410 |
+ readme.gentoo_create_doc |
411 |
+} |
412 |
+ |
413 |
+pkg_preinst() { |
414 |
+ has_version "x11-drivers/nvidia-drivers[wayland]" && NV_HAD_WAYLAND=1 |
415 |
+ |
416 |
+ use driver || return |
417 |
+ linux-mod_pkg_preinst |
418 |
+ |
419 |
+ # set video group id based on live system (bug #491414) |
420 |
+ local g=$(getent group video | cut -d: -f3) |
421 |
+ [[ ${g} ]] || die "Failed to determine video group id" |
422 |
+ sed "s/PACKAGE/${PF}/;s/VIDEOGID/${g}/" \ |
423 |
+ -i "${ED}"/etc/modprobe.d/nvidia.conf || die |
424 |
+} |
425 |
+ |
426 |
+pkg_postinst() { |
427 |
+ use driver && linux-mod_pkg_postinst |
428 |
+ |
429 |
+ readme.gentoo_print_elog |
430 |
+ |
431 |
+ if [[ -r /proc/driver/nvidia/version && |
432 |
+ $(grep -o ' [0-9.]* ' /proc/driver/nvidia/version) != " ${PV} " ]]; then |
433 |
+ ewarn "Currently loaded NVIDIA modules do not match the newly installed" |
434 |
+ ewarn "libraries and will lead to GPU-using application issues." |
435 |
+ use driver && ewarn "The easiest way to fix this is usually to reboot." |
436 |
+ fi |
437 |
+ |
438 |
+ if use x86 && [[ ! ${REPLACING_VERSIONS} ]]; then |
439 |
+ elog "Note that NVIDIA is no longer offering support for the unified memory" |
440 |
+ elog "module (nvidia-uvm) on x86 (32bit), as such the module was not built." |
441 |
+ elog "This means OpenCL/CUDA (and related, like nvenc) cannot be used." |
442 |
+ elog "Other functions, like OpenGL, will continue to work." |
443 |
+ fi |
444 |
+ |
445 |
+ if [[ ${NV_HAD_WAYLAND} ]]; then |
446 |
+ elog "Support for EGLStream (egl-wayland) is no longer offered with legacy" |
447 |
+ elog "nvidia-drivers. It is recommended to use nouveau drivers for wayland." |
448 |
+ fi |
449 |
+} |