Gentoo Archives: gentoo-commits

From: Ionen Wolkens <ionen@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/
Date: Thu, 14 Oct 2021 17:51:36
Message-Id: 1634233843.db94cca9c810980d95a7d907202a6bf26053e4e4.ionen@gentoo
1 commit: db94cca9c810980d95a7d907202a6bf26053e4e4
2 Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
3 AuthorDate: Thu Oct 14 17:03:08 2021 +0000
4 Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
5 CommitDate: Thu Oct 14 17:50:43 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=db94cca9
7
8 x11-drivers/nvidia-drivers: add 495.29.05
9
10 Support for Kepler cards is dropped (e.g. GTX 660, GTX 760) and,
11 as the ebuild should warn, Kepler users are urged to mask:
12
13 >=x11-drivers/nvidia-drivers-471
14
15 470 is an LTS branch that should be kept updated for several years.
16
17 This version adds support for GBM, for example it now allows to
18 run sway and other wlroots-based wayland compositors accelerated.
19 That is still very experimental, expect issues.
20
21 Unkeyworded at the moment given
22 A. beta with a larger-than-usual amount kernel module source
23 changes that could use bit more testing
24 B. egl-wayland-1.1.9 sources have not yet been released and
25 1.1.8 is to remain masked
26 1.1.8 can still be somewhat used to test sway if wanted.
27
28 Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
29
30 x11-drivers/nvidia-drivers/Manifest | 7 +
31 .../nvidia-drivers/nvidia-drivers-495.29.05.ebuild | 487 +++++++++++++++++++++
32 2 files changed, 494 insertions(+)
33
34 diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
35 index 813b0deb044..52383a84ea2 100644
36 --- a/x11-drivers/nvidia-drivers/Manifest
37 +++ b/x11-drivers/nvidia-drivers/Manifest
38 @@ -1,29 +1,36 @@
39 DIST NVIDIA-Linux-aarch64-460.91.03.run 111886330 BLAKE2B 24ab316e216caa61f7edb4dbcb34541709d3229d495e6ead95e99db7403cddee03467ee28d007f0fa3c4f2fa267e1994533c90a7a67885e9e76d501ab0f8aaa5 SHA512 edcfd3b11afe625c8996cda488a8de2e0e40eb4b95c8cf0ead9e1226d7cee8140a83c247d745ceefe997a39cfcf3e3f9bde575d97aa39090f97f88817d89cb28
40 DIST NVIDIA-Linux-aarch64-470.63.01.run 184137823 BLAKE2B d8525d70a3c68a3912d6b03aca2569d657029cc3dce2276f17acf538b5d74001a779e7d8e6c3c7a8d5fe9d12579e0f6170558a4bd596e7e8cab4ea3a20cb911c SHA512 582d7d0f427f4effe02415ae2d248f24c730481f3a0f143987ee640d14476924912827ad17263271f47ad67f24ab9c0dc5af0fd4d49b029b77cc59e4f821a433
41 DIST NVIDIA-Linux-aarch64-470.74.run 183973692 BLAKE2B dd5e637161b1880e77ce1ac9df62f817af0d6ad3109db437bdca0d248f02c24f18a1a483a0d1efe6c80ebb76a5753cb1901d26c7b18594bdb5208f5eeec20b1a SHA512 29a5a6a3622e316bf31acfba7486fb59485a82b4500860dd8db34e714791a0ea73120354559f412465f8f862b2f2c046a7f2a973068f18913d80fb81f0c839d9
42 +DIST NVIDIA-Linux-aarch64-495.29.05.run 210310796 BLAKE2B ef1cce048a89d8f6ecdc1e14068c4a872a28387b7894d213d0d86ddc594ca77c6ae265b05da27a56bb1b9ea72e1a4eac0b24b5a2ab91d65f557fe1d02ea30abb SHA512 46fb44f285f40873e22cae2e04dc79f4547b94213b3d7491f878c7afe5ef06329811cb0743ab0e71ad13d08fd37ef6e688454b752e9fb24d434b56525b75ffd4
43 DIST NVIDIA-Linux-x86-390.144.run 49210937 BLAKE2B b7e6edb55af88be74e4322ff1d270388a60a9d9809314c3a0502f86ed97edb99dfcdd3c81c5f51e681c8fcc47ecbfecd124b4d733141d23726226a3965b4c1f1 SHA512 d962c7e7b4b9c4635a887767d34a49c401a89e5975a5e57fa83366ca824ab70d5b8a81f3dce2e05e0528afddc72d70b2fcd69a216bd16d75e7b88ec704390546
44 DIST NVIDIA-Linux-x86_64-390.144.run 85000417 BLAKE2B 8ecfa768fb8fe92170ff5b82698a7fb22da8bc557ab2036464bf5650b6fffc7028e25a68e1f5638f6bc171eb45a4aba459465490c7a99aacd36dc769994062e8 SHA512 9503ebf41037a14deba995288a364768cb03fb682de8653a4b0c05955b23603443c41c4216c93eac7d7efc301734416012864ede728324ab47b93ff167d93da4
45 DIST NVIDIA-Linux-x86_64-460.91.03.run 178201292 BLAKE2B 4d407b7bb3a99ab71c62c3cd18dc3549c98a24e7af28276e6e6a21dd33efcab017fed3f782f6dfb060c4437cd718f19c2f9900de367cc47bf19fa2718a18ad55 SHA512 4ac11130fe5a8f1c26f459e9c19660b3ff6f23011e9f77b09ca948fc42609e523ecea70d3bf6def50a75b4a3079ab280018753fb6e53875d9bb8093a033e3b70
46 DIST NVIDIA-Linux-x86_64-470.62.05.run 271634590 BLAKE2B a37d33d188e9e36c5bfb3ba48af257c76fa58e482733d96326220028a073656a45f7eb40939a54bdfc6fc0df0eec610d5efac54dac83251975ccfeb287457aec SHA512 413b2d2c9d29d91c81f9696c17eb04fce0d7bf00a54779f86ceb16b59c32479a34c4d5a29222e095a8bddbfcafd90af0451493f0cb82a0d268a9160795bbe8d1
47 DIST NVIDIA-Linux-x86_64-470.63.01.run 271484294 BLAKE2B 7769f53897dccea716d459a12808d1f5a738072415639063e47dee82b489bb17121516cf585c1bb6b39f71b11f62f636a466284aba5854a5cfb4f553353cf8d3 SHA512 d3dadf93df86e5462ecb4ae6a04f03b05bf1450ad91e8c2aa73e838ddc9aa11b4e926fc32714d32bd7c606498fee5a54c77d5e40ecc08a039d3e9c2d331ad454
48 DIST NVIDIA-Linux-x86_64-470.74.run 270479241 BLAKE2B dacae4273d67fb9a2ab9ce4d0a6cb6255935abc5dacc7381f33c249ffeb515c84cb88f6c92f9a5bff23a92a55952525fe85594cd67fa4319c046a2e38dd26be6 SHA512 21e4290d98bbbf09eed7be32df8743f0adf728f9e88869afb02fc1d0f0be87cf42af2d4f04322a76d68a1704ef044e83cd403377e60af917ff3ec0a04985801a
49 +DIST NVIDIA-Linux-x86_64-495.29.05.run 282081751 BLAKE2B bd603f9fd08600192be193e8b5d2e5091b319173f7cc7bb1662f537292a36a3ed652740f4fb0e2288f795f81e9bf35aa343d6e41aa892c6370dd607d94971f0e SHA512 bcdb4a52217d98f656d2daad32b4112fe5bda362d8aeb6fd8dda17474a95e5914385823c19dacc71fc1fe2c4327d8f5beb267e6083aed54dd66f7abdae6f5cc1
50 DIST nvidia-installer-390.144.tar.bz2 150017 BLAKE2B 1a633594ecb9b54ee5a1e3620263a95db30c1ddebf547ecc7f267e1f0b799bcdb44cc3ddd6c96eda085d9be5c8f691e92556296f250495d80eec0c2f155f5bd5 SHA512 e4c624afc18bd1d61264f93bdcbc72afe42687baadf31683a6dd11a45c6257f6a5185b91f4b3d4c0316b8eb03ed79511f9ad260ee9e6f299fc136f5dc2178e42
51 DIST nvidia-installer-460.91.03.tar.bz2 144463 BLAKE2B b8c381158f614331fbfd04dcfdd7227fcb3eb16cbe4e3cbcbb34ba6af2370b05ebd72dc46375b2099b950817e6a0565c418e62b6364f1d7269f78c1dce5f5535 SHA512 10c873597202a1d8aa0dc4629b1e64f8c1f65a68c91f6babe312cf9fabbb9257b77d03a3917c0f4f5d6994e90cf58c6c7d9a802a675ea3ef60b571c9b7abc391
52 DIST nvidia-installer-470.63.01.tar.bz2 146093 BLAKE2B 49f16fd7b27552013067410e3cfc80d44a4ec9c454d5db542caaa84b34e20cddabdeba2391d451aab39c832745fc2fbfc5bda3876a67859027d83b482d55118f SHA512 92d680d845abb39d77a51ccc47f1102825387b664e87fb2f5d976a0a4cc6baee508fe86bc92f5f0c77f1cec61506826b155ca1ef02708c39d145c9d897868397
53 DIST nvidia-installer-470.74.tar.bz2 145896 BLAKE2B d2f77b84ce9802088465bfb7020216436cb7766180fb11f6853beacef535a2f697799854dbd4a61f843dfa51fe8f6c9f6bf5dcdda07d200f424e5316c024f4a5 SHA512 b05f4b40428a6073d3439faeb20dfce2a86f9c18f0cc5cb16a48ff0e11f15eab9260c3a7e1c2eecffc36417e6471cce718923cfef3d36212bb53c6aca10ee80b
54 +DIST nvidia-installer-495.29.05.tar.bz2 147017 BLAKE2B 0cdb79c98d2b80a4174e10c5e8cbb131bf186170345679636573f3054666e92bb46229ef50b7f676b99e5a53fb61db9a636122342bf01418ebc4bcfd7598db65 SHA512 1a72b8cf106b8fc30815afdd03a5e880f892d4950e18e83d9965b292eabadd7d9b03cc3c0489008329229e50326958e404d806dbed00eef48d638091b3694d63
55 DIST nvidia-modprobe-390.144.tar.bz2 35308 BLAKE2B 1930c315aeb0e296c0d4795170d44a275da5ff8838fd8230559227852001b679fbca2830142ca7abcfa9c84626c9d9f222f7ab0cb3984d8d517f5ce431e5a9ea SHA512 d542c1a7634a8c5ff803ca79f2fc02b17b129185177226ad60625a4d246bbaf740719ff024dbde0f5aa8273949446561261d700a27cf88217c2572e69882142c
56 DIST nvidia-modprobe-460.91.03.tar.bz2 38144 BLAKE2B 660b381f8757fe8862f7c4a971e44d3124afa3783d52af29543b8ed67486ba03b76c0b5d8dfadc5da8fdcc2c8799ec5f9c3016fd58e9c209fcc3ae897fb0436b SHA512 aa47a9c0744b8e11e87d2c0f300b13fee435cd5225444be7fb0b6bea49af33811dfa723a9ccfe904c7de2b5a8da36b707c1024eb495e3f0b587e3231a4bc4f39
57 DIST nvidia-modprobe-470.63.01.tar.bz2 38357 BLAKE2B 906f966df5aafe5478550bb30b4d624247c2c621ecc5e21fa9aa0e37f1ffe39b3e44d70f24864d49c99c63d5a5045057f46b9b364f6f662bd5676b242fa3c265 SHA512 f41a168fe4b2278cd4cc53dd0e334e7e7dfccc91abd818b7e2b5d67c3a806d2ce5d1b11cd3cdc2f4507cc0baf42c3c5985784e19665c7a3bafb9ab433132271e
58 DIST nvidia-modprobe-470.74.tar.bz2 38346 BLAKE2B 15067809d5ddf9c3e5a09e9851d92f7629843290c109373fc42cd97d06e05d3d8fac2fabfc8da0c57251e23039dbe4cbc827d8e16d60303cf9dc2fb01c91069a SHA512 9d6a51bb9bb329c658040c761f722e8f15897f11cfb08a993ddda8f829a1fa7c028a76a2257cf97a07e6b7d9bcc1dbe86934998094d4aa431ada059ac46a41e9
59 +DIST nvidia-modprobe-495.29.05.tar.bz2 38402 BLAKE2B fdf6bfe0c3e72da7bf36595db282b32f5b5c6b10dce6b39b243f3e0362ff25e1ab1dda8ae3fbb9d930dbc98b0880ef29f5278820c1792039d0efe9e2288deb57 SHA512 8fe71362723be613d133805506a410b457b2b88d7a1ebfd6b49d1aade79caf80b30e24d8a2c98ad1b2abbd5c006d39b2268169daaf59d91a1baf8bbdb981169f
60 DIST nvidia-persistenced-390.144.tar.bz2 48672 BLAKE2B 82a92a33eb40971e56b772ffab121214f5675d0a8c618e356e7b55bc38ff9605fd2701d740d00a1e26c158c9df0ab38d0ba10891a3850f8e8cbee8fb231ba52d SHA512 4432f2dd18c7c91fd0d59e4f2bdf7254f58ed2a6b652d319c4f7ce674522da1797a68dd6939c38e71710dcd3b754ae7cc8c6e7acb47a76e13d2091e8a8ee99c8
61 DIST nvidia-persistenced-460.91.03.tar.bz2 46160 BLAKE2B f7f34cc12de2a4d69184c60caf7a8e8025b58005ade0a3e9a1a0e95856055f7211a710a1145d674d8a2e97cf70a43175cbc5c9a5dabc49ce378623be1720c6ea SHA512 c3ff5875353c264cb224b3f512ff8308bf1b0b95282e34500d88da2574719c3c514581e5900841b089c2e6f0fe29198fa06a11668de8e21c59f9f96244a74757
62 DIST nvidia-persistenced-470.63.01.tar.bz2 46544 BLAKE2B c2bbc76bc06db1dc963ed34731fc9ca9ad2145dad4326586a7e37a395ff8ffac940800138bec08cdfafa9eb8ab5b79412e66e78cb5ef58aca4ee476d31ce0c89 SHA512 6ae699cae67911f92ac2dae82856e0a4d31a8d47a3d2e8e6fbae6469f28960caab4a56aae1a1ac3de0339c78dedc344c09136ec922690abd9fb5abc96afba5ca
63 DIST nvidia-persistenced-470.74.tar.bz2 46521 BLAKE2B ee959d6d44c31cf89da0227b5f64f83e2be6e89e55a6249d9d4985e4e4012430fdd057b5267401ed1a185523e8fd795ccbb0fed59898f801a72c899ff7a79de3 SHA512 1bab92b85febf3ca1f5e7195e69faf5db6dc281d2f65a64d58585e48dee573ecb469b5036e7737da9a12bce937ffa7c961cb3b4908765f0d0ce46c6ba708332b
64 +DIST nvidia-persistenced-495.29.05.tar.bz2 46274 BLAKE2B e309795caf2c477c8f8f5be5fcc74e764b14496bab12e48d661ce8aba9cb99ba41bf31dbd819c216f3b9eb404d6f971c30183834416d7b6b33ce6cff60d87fcc SHA512 ac88198d5e7a781bbab773265ab7b1dfe10674292ba21d1fdcc0df8cf24b282cc21bc583a948965a2f8882e905aa46014b6a0bd3f4fac4ac580246401b4744f5
65 DIST nvidia-settings-390.144.tar.bz2 1109104 BLAKE2B 6724f49c7e469f580206fc17308190bd346b6167348a8b8b3886209f58aca61b65eff30658484c1fee40af8c0d89fb62f73329b05a6ac45178ea4a6870e5aa85 SHA512 90afe201361d492c3152057d3ec46d68c0cd722fe0ea0587aa1156718017d59fb5f26f3db89d91d4680b2390617867dbe93bd14e1fb3dc70402527bfacf0ae5c
66 DIST nvidia-settings-460.91.03.tar.bz2 1061093 BLAKE2B 13f1da07eda3a0e7e96ac69091e4a34fcd75a8f459a4db3840c64272dd54080694c4df3b7c326884ff032eb1b8708b5e19107b112afee2c80eed242281292b02 SHA512 172ea3366065aa30e71a5a47b31366d076477b8801a8a37e0d76972406e69c8872daa80011ee020960bc5e00163c4e9e5f63aa4f0dc726065671d76851b4ad71
67 DIST nvidia-settings-470.63.01.tar.bz2 1062399 BLAKE2B b3193ef94cf3cde41cf2b5f38cc39c090e54b5c0f980bdf6bff318554d155cb3639d5d65baf7148b5a5d378f483b3235aaa4ffa0cd625b44e7dd4ffcb7156f00 SHA512 d8458f8e103de0a5026857009da6cd55e969fbc2481d526b7e22fac92e865f9f226a2670bd984b743be093acd0fcd1970c1a20819ca736b0582b645a5c4c6e1e
68 DIST nvidia-settings-470.74.tar.bz2 1062544 BLAKE2B 283808542e3b24594d52781b6638163ea6de638057792f50c91fb85728f97986d2d0f722f8e18f20866f6d873382e7b4df6d2eb565a4c7a0fb1e8b973ae7a6fb SHA512 eaaff811e9f3968efa82dd5ab60eb504538f34976bcbeec5a1451be14e1bb6f7d1ad7d732dddfd003e275a9e24e80438ab7a5a7ec8ad5c17556a6de1f884b102
69 +DIST nvidia-settings-495.29.05.tar.bz2 1062315 BLAKE2B 65e8525cdb6ce316c58e7a99b00a9dc63ae71b119b6c5de381b0d6e83710d6a79ec842b36594d0cc1cb6d77b4f71bca4ff8590dfa615a674c37939abb0e4f810 SHA512 5e1559cdf7cefbbcff5992cdbab9ed5380eea7a1f1362cc485a517dc3bd3a125c961418403272f93a201536a16ba82962c3ee1ca056e05bec88732cef36a8854
70 DIST nvidia-xconfig-390.144.tar.bz2 107147 BLAKE2B 1b6ea6dfbe33474cd3e9409a7559a38716c4ce8d2583354232225a2a7ec10c7dbc2163f07c6849f4929e16c2fad179d583daad8a67d9cba950a62209b8ebebfa SHA512 09bb3558be178deda4b26031560ebad4e98e68b6186e247d4638cbcb4bb5dc05937c6baeaf1cd4db5a7b7433af97c3150c526ed972ff51b6e1c7552235ec6b51
71 DIST nvidia-xconfig-460.91.03.tar.bz2 108477 BLAKE2B d95505e508ca16d8ebe8c22c445a1b686c32a626c379b1b48e2a8101969fc03b90446953cc30e945da9388237fa1b9e5f83417aba1fb062d58866a523c256769 SHA512 4bb8f7fc42e7fa5e3897884bd7e722c4fe8ab1e4a87cad4136e1764cdd91d4795f817dcee63a20279315b4839d92fe5244d073ea2310c704f8aacd38bacb28a4
72 DIST nvidia-xconfig-470.63.01.tar.bz2 109078 BLAKE2B 786d4be4e1aa23ecdd51b0c5628e27a42472f4f119979acc62d100e094d077be6c7b893353d7d31ea4a47fe99135c01ea4ca0b539da62379295644fcd7b38c79 SHA512 5a3b599cba4be7e272fb1fc3c1dc31c09b1f101f81e7d24a27cf88d96746d42c84ba89f5ebeb4f602e012e0aa04804015cab5cf24947e60131652f1e010e96e2
73 DIST nvidia-xconfig-470.74.tar.bz2 108624 BLAKE2B 1e1df7c80456fd90fb8b54b2fdbdabfc5fce504a7c0ff1de816b47addcd09d0a17d5cfa35da2518e2568525d3092b3829b8de3c1461d75b65794b11b3137e878 SHA512 7c922b4524cc7eee4345b2a06b11c292a19f168187f3670351feccfb3baca2845322b0a8c669e55bfadc8bb4009ba6aabba37245ac3347117ccbf62bbee71cfc
74 +DIST nvidia-xconfig-495.29.05.tar.bz2 108794 BLAKE2B 20958cf72ae0c25ddd1424746e613df7cead4c011963ba3c5fa29a37527604bf1b4b0318c43d39e9757c20fbadbfeb00fc88c91c6537340f2345ac710171f267 SHA512 38d38c2b92b4e17de360b173231003e7f2ab64e3d456689d7d942035f41bede4bf8533f65348dfe4dbbaf48a84017f73550c05bd18c6f52dca413a502c243e5c
75
76 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-495.29.05.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-495.29.05.ebuild
77 new file mode 100644
78 index 00000000000..ccd36f11b25
79 --- /dev/null
80 +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-495.29.05.ebuild
81 @@ -0,0 +1,487 @@
82 +# Copyright 1999-2021 Gentoo Authors
83 +# Distributed under the terms of the GNU General Public License v2
84 +
85 +EAPI=7
86 +
87 +MODULES_OPTIONAL_USE="driver"
88 +inherit desktop eapi8-dosym linux-mod multilib-build \
89 + readme.gentoo-r1 systemd toolchain-funcs unpacker
90 +
91 +NV_KERNEL_MAX="5.14"
92 +NV_URI="https://download.nvidia.com/XFree86/"
93 +
94 +DESCRIPTION="NVIDIA Accelerated Graphics Driver"
95 +HOMEPAGE="https://www.nvidia.com/download/index.aspx"
96 +SRC_URI="
97 + amd64? ( ${NV_URI}Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run )
98 + arm64? ( ${NV_URI}Linux-aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run )
99 + ${NV_URI}nvidia-installer/nvidia-installer-${PV}.tar.bz2
100 + ${NV_URI}nvidia-modprobe/nvidia-modprobe-${PV}.tar.bz2
101 + ${NV_URI}nvidia-persistenced/nvidia-persistenced-${PV}.tar.bz2
102 + ${NV_URI}nvidia-settings/nvidia-settings-${PV}.tar.bz2
103 + ${NV_URI}nvidia-xconfig/nvidia-xconfig-${PV}.tar.bz2"
104 +# nvidia-installer is unused but here for GPL-2's "distribute sources"
105 +S="${WORKDIR}"
106 +
107 +LICENSE="NVIDIA-r2 BSD GPL-2 MIT ZLIB"
108 +SLOT="0/${PV%%.*}"
109 +#KEYWORDS="-* ~amd64"
110 +IUSE="+X +driver static-libs +tools wayland"
111 +
112 +COMMON_DEPEND="
113 + acct-group/video
114 + acct-user/nvpd
115 + net-libs/libtirpc:=
116 + tools? (
117 + dev-libs/atk
118 + dev-libs/glib:2
119 + dev-libs/jansson
120 + media-libs/harfbuzz:=
121 + x11-libs/cairo
122 + x11-libs/gdk-pixbuf:2
123 + x11-libs/gtk+:3
124 + x11-libs/libX11
125 + x11-libs/libXext
126 + x11-libs/libXxf86vm
127 + x11-libs/pango
128 + )"
129 +RDEPEND="
130 + ${COMMON_DEPEND}
131 + X? (
132 + media-libs/libglvnd[X,${MULTILIB_USEDEP}]
133 + x11-libs/libX11[${MULTILIB_USEDEP}]
134 + x11-libs/libXext[${MULTILIB_USEDEP}]
135 + )
136 + wayland? (
137 + >=gui-libs/egl-wayland-1.1.8
138 + media-libs/libglvnd
139 + >=media-libs/mesa-21.2[gbm(+)]
140 + x11-libs/libdrm
141 + )"
142 +DEPEND="
143 + ${COMMON_DEPEND}
144 + static-libs? (
145 + x11-libs/libX11
146 + x11-libs/libXext
147 + )
148 + tools? (
149 + media-libs/libglvnd
150 + sys-apps/dbus
151 + x11-base/xorg-proto
152 + x11-libs/libXrandr
153 + x11-libs/libXv
154 + x11-libs/libvdpau
155 + )"
156 +BDEPEND="
157 + app-misc/pax-utils
158 + virtual/pkgconfig"
159 +
160 +QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
161 +
162 +PATCHES=(
163 + "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
164 +)
165 +
166 +pkg_setup() {
167 + use driver || return
168 +
169 + local CONFIG_CHECK="
170 + PROC_FS
171 + ~DRM_KMS_HELPER
172 + ~SYSVIPC
173 + ~!LOCKDEP
174 + ~!SLUB_DEBUG_ON
175 + !DEBUG_MUTEXES"
176 + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection
177 + of drivers (no custom config), and for wayland / nvidia-drm.modeset=1.
178 + Cannot be directly selected in the kernel's menuconfig, so enable
179 + options such as CONFIG_DRM_FBDEV_EMULATION instead."
180 +
181 + use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764
182 +
183 + MODULE_NAMES="
184 + nvidia(video:kernel)
185 + nvidia-drm(video:kernel)
186 + nvidia-modeset(video:kernel)
187 + nvidia-peermem(video:kernel)
188 + nvidia-uvm(video:kernel)"
189 +
190 + linux-mod_pkg_setup
191 +
192 + [[ ${MERGE_TYPE} == binary ]] && return
193 +
194 + BUILD_PARAMS='NV_VERBOSE=1 IGNORE_CC_MISMATCH=yes SYSSRC="${KV_DIR}" SYSOUT="${KV_OUT_DIR}"'
195 + BUILD_TARGETS="modules" # defaults' clean sometimes deletes modules
196 +
197 + if linux_chkconfig_present CC_IS_CLANG; then
198 + ewarn "Warning: building ${PN} with a clang-built kernel is experimental."
199 +
200 + BUILD_PARAMS+=' CC=${CHOST}-clang'
201 + if linux_chkconfig_present LD_IS_LLD; then
202 + BUILD_PARAMS+=' LD=ld.lld'
203 + if linux_chkconfig_present LTO_CLANG_THIN; then
204 + # kernel enables cache by default leading to sandbox violations
205 + BUILD_PARAMS+=' ldflags-y=--thinlto-cache-dir= LDFLAGS_MODULE=--thinlto-cache-dir='
206 + fi
207 + fi
208 + fi
209 +
210 + if kernel_is -gt ${NV_KERNEL_MAX/./ }; then
211 + ewarn "Kernel ${KV_MAJOR}.${KV_MINOR} is either known to break this version of nvidia-drivers"
212 + ewarn "or was not tested with it. It is recommended to use one of:"
213 + ewarn " <=sys-kernel/gentoo-kernel-${NV_KERNEL_MAX}"
214 + ewarn " <=sys-kernel/gentoo-sources-${NV_KERNEL_MAX}"
215 + ewarn "You are free to try or use /etc/portage/patches, but support will"
216 + ewarn "not be given and issues wait until NVIDIA releases a fixed version."
217 + ewarn
218 + ewarn "Do _not_ file a bug report if run into issues."
219 + ewarn
220 + fi
221 +}
222 +
223 +src_prepare() {
224 + # make user patches usable across versions
225 + rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die
226 + rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die
227 + rm nvidia-settings && mv nvidia-settings{-${PV},} || die
228 + rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die
229 +
230 + default
231 +
232 + # prevent detection of incomplete kernel DRM support (bug #603818)
233 + sed 's/defined(CONFIG_DRM)/defined(CONFIG_DRM_KMS_HELPER)/' \
234 + -i kernel/conftest.sh || die
235 +
236 + sed -e '/Exec=\|Icon=/s/_.*/nvidia-settings/' \
237 + -e '/Categories=/s/_.*/System;Settings;/' \
238 + -i nvidia-settings/doc/nvidia-settings.desktop || die
239 +
240 + # remove gtk2 support (bug #592730)
241 + sed '/^GTK2LIB = /d;/INSTALL.*GTK2LIB/,+1d' \
242 + -i nvidia-settings/src/Makefile || die
243 +
244 + sed 's/__USER__/nvpd/' \
245 + nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \
246 + > nvidia-persistenced.service || die
247 +
248 + # enable nvidia-drm.modeset=1 by default with USE=wayland
249 + cp "${FILESDIR}"/nvidia-470.conf "${T}"/nvidia.conf || die
250 + use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die
251 +
252 + gzip -d nvidia-{cuda-mps-control,smi}.1.gz || die
253 +}
254 +
255 +src_compile() {
256 + nvidia-drivers_make() {
257 + emake -C nvidia-${1} ${2} \
258 + PREFIX="${EPREFIX}/usr" \
259 + HOST_CC="$(tc-getBUILD_CC)" \
260 + HOST_LD="$(tc-getBUILD_LD)" \
261 + NV_USE_BUNDLED_LIBJANSSON=0 \
262 + NV_VERBOSE=1 DO_STRIP= OUTPUTDIR=out
263 + }
264 +
265 + tc-export AR CC LD OBJCOPY
266 +
267 + # may no longer be relevant but kept as a safety
268 + export DISTCC_DISABLE=1 CCACHE_DISABLE=1
269 +
270 + use driver && linux-mod_src_compile
271 +
272 + nvidia-drivers_make modprobe
273 + nvidia-drivers_make persistenced
274 + use X && nvidia-drivers_make xconfig
275 +
276 + if use tools; then
277 + nvidia-drivers_make settings
278 + elif use static-libs; then
279 + nvidia-drivers_make settings/src out/libXNVCtrl.a
280 + fi
281 +}
282 +
283 +src_install() {
284 + nvidia-drivers_make_install() {
285 + emake -C nvidia-${1} install \
286 + DESTDIR="${D}" \
287 + PREFIX="${EPREFIX}/usr" \
288 + LIBDIR="${ED}/usr/$(get_libdir)" \
289 + NV_USE_BUNDLED_LIBJANSSON=0 \
290 + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
291 + }
292 +
293 + nvidia-drivers_libs_install() {
294 + local libs=(
295 + EGL_nvidia
296 + GLESv1_CM_nvidia
297 + GLESv2_nvidia
298 + cuda
299 + nvcuvid
300 + nvidia-allocator
301 + nvidia-eglcore
302 + nvidia-encode
303 + nvidia-glcore
304 + nvidia-glsi
305 + nvidia-glvkspirv
306 + nvidia-ml
307 + nvidia-opencl
308 + nvidia-opticalflow
309 + nvidia-ptxjitcompiler
310 + nvidia-tls
311 + $(usex X '
312 + GLX_nvidia
313 + nvidia-fbc
314 + vdpau_nvidia
315 + ' '')
316 + $(usex amd64 nvidia-compiler '')
317 + )
318 +
319 + local libdir=.
320 + if [[ ${ABI} == x86 ]]; then
321 + libdir+=/32
322 + else
323 + libs+=(
324 + libnvidia-nvvm.so.4.0.0
325 + nvidia-cfg
326 + nvidia-ngx
327 + nvidia-rtcore
328 + nvoptix
329 + $(usex wayland '
330 + libnvidia-egl-gbm.so.1.1.0
331 + nvidia-vulkan-producer
332 + ' '')
333 + )
334 + fi
335 +
336 + local lib soname
337 + for lib in "${libs[@]}"; do
338 + [[ ${lib:0:3} != lib ]] && lib=lib${lib}.so.${PV}
339 +
340 + # auto-detect soname and create appropriate symlinks
341 + soname=$(scanelf -qF'%S#F' ${lib}) || die "Scanning ${lib} failed"
342 + if [[ ${soname} && ${soname} != ${lib} ]]; then
343 + ln -s ${lib} ${libdir}/${soname} || die
344 + fi
345 + ln -s ${lib} ${libdir}/${lib%.so*}.so || die
346 +
347 + dolib.so ${libdir}/${lib%.so*}*
348 + done
349 + }
350 +
351 + if use driver; then
352 + linux-mod_src_install
353 +
354 + insinto /etc/modprobe.d
355 + doins "${T}"/nvidia.conf
356 +
357 + insinto /lib/firmware/nvidia/${PV}
358 + doins firmware/gsp.bin
359 +
360 + # used for gpu verification with binpkgs (not kept)
361 + insinto /usr/share/nvidia
362 + doins supported-gpus/supported-gpus.json
363 + fi
364 +
365 + if use X; then
366 + exeinto /usr/$(get_libdir)/xorg/modules/drivers
367 + doexe nvidia_drv.so
368 +
369 + exeinto /usr/$(get_libdir)/xorg/modules/extensions
370 + newexe libglxserver_nvidia.so{.${PV},}
371 +
372 + insinto /usr/share/X11/xorg.conf.d
373 + newins {,50-}nvidia-drm-outputclass.conf
374 +
375 + # vulkan icd uses libGLX_nvidia.so and so requires X
376 + insinto /usr/share/vulkan/icd.d
377 + doins nvidia_icd.json
378 + insinto /usr/share/vulkan/implicit_layer.d
379 + doins nvidia_layers.json
380 + fi
381 +
382 + if use wayland; then
383 + insinto /usr/share/egl/egl_external_platform.d
384 + doins 15_nvidia_gbm.json
385 +
386 + dosym8 -r /usr/$(get_libdir)/{libnvidia-allocator.so.1,gbm/nvidia-drm_gbm.so}
387 + fi
388 +
389 + insinto /usr/share/glvnd/egl_vendor.d
390 + doins 10_nvidia.json
391 +
392 + insinto /etc/OpenCL/vendors
393 + doins nvidia.icd
394 +
395 + insinto /etc/nvidia
396 + newins nvidia-application-profiles{-${PV},}-rc
397 +
398 + # install built helpers
399 + nvidia-drivers_make_install modprobe
400 + # allow video group to load mods and create devs (bug #505092)
401 + fowners :video /usr/bin/nvidia-modprobe
402 + fperms 4710 /usr/bin/nvidia-modprobe
403 +
404 + nvidia-drivers_make_install persistenced
405 + newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced
406 + newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced
407 + systemd_dounit nvidia-persistenced.service
408 +
409 + use X && nvidia-drivers_make_install xconfig
410 +
411 + if use tools; then
412 + nvidia-drivers_make_install settings
413 + doicon nvidia-settings/doc/nvidia-settings.png
414 + domenu nvidia-settings/doc/nvidia-settings.desktop
415 +
416 + insinto /usr/share/nvidia
417 + newins nvidia-application-profiles{-${PV},}-key-documentation
418 +
419 + exeinto /etc/X11/xinit/xinitrc.d
420 + newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
421 + fi
422 +
423 + if use static-libs; then
424 + dolib.a nvidia-settings/src/out/libXNVCtrl.a
425 +
426 + insinto /usr/include/NVCtrl
427 + doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
428 + fi
429 +
430 + # install prebuilt-only helpers
431 + exeinto /opt/bin
432 +
433 + doexe nvidia-cuda-mps-control
434 + doman nvidia-cuda-mps-control.1
435 + doexe nvidia-cuda-mps-server
436 +
437 + doexe nvidia-debugdump
438 + dobin nvidia-bug-report.sh
439 +
440 + doexe nvidia-ngx-updater
441 +
442 + doexe nvidia-smi
443 + doman nvidia-smi.1
444 +
445 + # install prebuilt-only libraries
446 + multilib_foreach_abi nvidia-drivers_libs_install
447 +
448 + # install dlls for optional use with proton/wine
449 + insinto /usr/$(get_libdir)/nvidia/wine
450 + use amd64 && doins {_,}nvngx.dll
451 +
452 + # install systemd sleep services
453 + exeinto /lib/systemd/system-sleep
454 + doexe systemd/system-sleep/nvidia
455 + dobin systemd/nvidia-sleep.sh
456 + systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend}.service
457 +
458 + # create README.gentoo
459 + local DISABLE_AUTOFORMATTING=yes
460 + local DOC_CONTENTS=\
461 +"Trusted users should be in the 'video' group to use NVIDIA devices.
462 +You can add yourself by using: gpasswd -a my-user video
463 +
464 +See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.
465 +
466 +For general information on using nvidia-drivers, please see:
467 +https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
468 + readme.gentoo_create_doc
469 +
470 + local DOCS=(
471 + README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json
472 + nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
473 + )
474 + local HTML_DOCS=( html/. )
475 + einstalldocs
476 +}
477 +
478 +pkg_preinst() {
479 + use driver || return
480 + linux-mod_pkg_preinst
481 +
482 + # set video group id based on live system (bug #491414)
483 + local g=$(getent group video | cut -d: -f3)
484 + [[ ${g} ]] || die "Failed to determine video group id"
485 + sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
486 +
487 + # try to find driver mismatches using temporary supported-gpus.json
488 + for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do
489 + g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \
490 + "${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null)
491 + if [[ ${g} ]]; then
492 + g=$((${g##*\"}+1))
493 + if ver_test -ge ${g}; then
494 + NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}"
495 + break
496 + fi
497 + fi
498 + done
499 + rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
500 +
501 + has_version "x11-drivers/nvidia-drivers[wayland]" && NV_HAD_WAYLAND=1
502 +}
503 +
504 +pkg_postinst() {
505 + use driver && linux-mod_pkg_postinst
506 +
507 + readme.gentoo_print_elog
508 +
509 + if [[ -r /proc/driver/nvidia/version &&
510 + $(grep -o ' [0-9.]* ' /proc/driver/nvidia/version) != " ${PV} " ]]; then
511 + ewarn "Currently loaded NVIDIA modules do not match the newly installed"
512 + ewarn "libraries and will lead to GPU-using application issues."
513 + use driver && ewarn "The easiest way to fix this is usually to reboot."
514 + fi
515 +
516 + if [[ $(</proc/cmdline) == *slub_debug=[!-]* ]]; then
517 + ewarn "Detected that the current kernel command line is using 'slub_debug=',"
518 + ewarn "this may lead to system instability/freezes with this version of"
519 + ewarn "${PN}. Bug: https://bugs.gentoo.org/796329"
520 + fi
521 +
522 + if [[ ${NV_LEGACY_MASK} ]]; then
523 + ewarn
524 + ewarn "***WARNING***"
525 + ewarn
526 + ewarn "You are installing a version of nvidia-drivers known not to work"
527 + ewarn "with a GPU of the current system. If unwanted, add the mask:"
528 + if [[ -d ${EROOT}/etc/portage/package.mask ]]; then
529 + ewarn " echo '${NV_LEGACY_MASK}' > ${EROOT}/etc/portage/package.mask/${PN}"
530 + else
531 + ewarn " echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask"
532 + fi
533 + ewarn "...then downgrade to a legacy branch if possible. For details, see:"
534 + ewarn "https://www.nvidia.com/object/IO_32667.html"
535 + fi
536 +
537 + if use wayland && use driver && [[ ! ${NV_HAD_WAYLAND} ]]; then
538 + elog
539 + elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
540 + elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. This feature is considered"
541 + elog "experimental but is required for EGLStream (used for wayland acceleration"
542 + elog "in compositors that support it)."
543 + elog
544 + elog "If you experience issues, please comment out the option from nvidia.conf."
545 + elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
546 + if has_version "gnome-base/gdm[wayland]"; then
547 + elog
548 + elog "This may also cause gnome-base/gdm to use a wayland session by default,"
549 + elog "select 'GNOME on Xorg' if you wish to continue using it."
550 + fi
551 + fi
552 +
553 + # Try to show this message only to users that may really need it
554 + # given the workaround is discouraged and usage isn't widespread.
555 + if use X && [[ ${REPLACING_VERSIONS} ]] &&
556 + ver_test ${REPLACING_VERSIONS} -lt 460.73.01 &&
557 + grep -qr Coolbits "${EROOT}"/etc/X11/{xorg.conf,xorg.conf.d/*.conf} 2>/dev/null; then
558 + elog
559 + elog "Coolbits support with ${PN} has been restricted to require Xorg"
560 + elog "with root privilege by NVIDIA (being in video group is not sufficient)."
561 + elog "e.g. attempting to change fan speed with nvidia-settings would fail."
562 + elog
563 + elog "Depending on your display manager (e.g. sddm starts X as root, gdm doesn't)"
564 + elog "or if using startx, it may be necessary to emerge x11-base/xorg-server with"
565 + elog 'USE="suid -elogind -systemd" if wish to keep using this feature.'
566 + elog "Bug: https://bugs.gentoo.org/784248"
567 + fi
568 +}