Gentoo Archives: gentoo-commits

From: David Seifert <soap@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/
Date: Wed, 21 Apr 2021 12:22:31
Message-Id: 1619007598.318a22f6a277bd58a0bc6697d18e457a79a845df.soap@gentoo
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 +}