commit:     97754c18307b16d2655ec4be8b949e90003c1ff5
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 17 16:29:46 2026 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Feb 17 16:38:29 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=97754c18

x11-drivers/nvidia-drivers: add 580.126.18

Changelog only mentions fixing build with kernel 6.19, so probably not
very interesting given already patched previous 580.x before noticed
that this release was available.

Note that there is no new 590.x with the same fix, that branch likely
reached end-of-life and it'll wait for 595+

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/Manifest                |   8 +
 .../nvidia-drivers-580.126.18.ebuild               | 604 +++++++++++++++++++++
 2 files changed, 612 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/Manifest 
b/x11-drivers/nvidia-drivers/Manifest
index d332846ab8d8..d248c0eb96b9 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -1,6 +1,7 @@
 DIST NVIDIA-Linux-aarch64-535.288.01.run 269886661 BLAKE2B 
9f9e994fcefd81e75db9a9c280668ad55423085e34eb9083043bad3f1317379ba14ffc9442fe94ee26b600f1ecf2e19f83708dae1c599b6a9df69d94ac3e116f
 SHA512 
e8df9e97500a87d68e8c8d1f9601a8b37f2dd93773928a96b605a515d37e9382782cbdc0900cd6151923ae385045c644af3e37cc006771830ac0b0a532afb09c
 DIST NVIDIA-Linux-aarch64-570.211.01.run 290912556 BLAKE2B 
4335d6a6b7a55bc7d2717071c6be968b63c90932592534be8eff28290a8bf98614b37bb52b4ee0f9563a6f0fdacf6b0e8a04b8eedbe8081587962f3599209a88
 SHA512 
22816d8f798d6ce141ff2ce750b5df1ca4fef9b1ba79762157fd7f93c1ea905c74f421dc6ac2b7bf5b383192d2baa735d7a7d240523be815defb68be54c4a6be
 DIST NVIDIA-Linux-aarch64-580.126.09.run 313588580 BLAKE2B 
bb98dc322fb0bb21a11aaebd2101528efc651ed833870326fbc4570f54264a4b536e8669351153817b47dcb81b9aeac88b7d664cf6971e5182b9d4203c453a29
 SHA512 
7ec0fd917bade1eb14b135bab2ade17a5116546190c3011379be7105404485016e26a5fb1ece5a4800eea39ac10c1abea19cc40be6f8f31188b3eeb78344a6c7
+DIST NVIDIA-Linux-aarch64-580.126.18.run 313585073 BLAKE2B 
9cf8680392434126ae60cc4260f6a3ee44a74c8a5c5623e9990feb6b73cd4fc4661c2111214b192957ccc0c0e2623c3649685e739bc7440e36cbcbf4949bfc3f
 SHA512 
b453b8aa9fa4fdaa1ce532f69a52317606d41728958a49f05e9725c093ebe8e90c65b5e5ad095ebcf5febdcd2d712bf0246ce06746078d8333c75bb7559b4245
 DIST NVIDIA-Linux-aarch64-590.48.01.run 319634379 BLAKE2B 
ff1b0641f8d4dfc834d9627fa934c5491bddcb9e6f5396a07d6d7831c15e2ab396614ff1ab6b5af4a69b42b8c6a022215cc1e3531eca7ca177c9d940f52281ea
 SHA512 
ec81da1a11dd9609427e40434cba69d7c0426e4d60cb5c078c66ec992b6dd44483df2c9dfe02deb4db3a815a4c801b3c42f6ac2b08f0506327f1cdfe5446211d
 DIST NVIDIA-Linux-x86-390.157.run 49417041 BLAKE2B 
435b5e0e60468cc74b41cc5d9b5bb0105d29c11a2d408457835212a96519c9334ecf19278b36749d3ff7f498f5b0ae45a2efae2d428703dac21245c62f1efebe
 SHA512 
dae9ac2c12f9ad90f7441e00e01a984147c577892421911d7f67f6a31e616ac1cb7d434bc9c7f58fbd9b8ae909521b5bece607a63c79588c0bb9d99c6bad5fb0
 DIST NVIDIA-Linux-x86_64-390.157.run 85835541 BLAKE2B 
44b855cd11f3b2f231f9fb90492ae2e67a67ea3ea83c413e7c90956d38c9730a8bd0321281ae03c6afce633d102f5b499aed25622b9bfd31bdd2c98f0717e95b
 SHA512 
4780503a4cff0180b1b1f37d20a6ba3438dd78b51fa7f69b98d35521835e5d61099129746929d51d63afa2d47b672b3e145e1e1897584dc3799e7f822c5b3a0a
@@ -8,40 +9,47 @@ DIST NVIDIA-Linux-x86_64-470.256.02.run 272850014 BLAKE2B 
0fdc867f92b82b2a60810c
 DIST NVIDIA-Linux-x86_64-535.288.01.run 341968325 BLAKE2B 
e37428855b41c295e5c6df66a029f4a1f6916af932a159587002c6b20b58c8280faee1a4fd6edf4791439df4da6bd21d18b3c9bdf300b3923f5dd30666f44d90
 SHA512 
8ccd90cc37cef6591412c9c0d3a48af9fe08bf5d715a2e8a9c0adab1fb8e72b716ec75c8b81bc0ac9d09d6f82fa8e01af144bfba5d58cfe7a524c47aa97ae6e1
 DIST NVIDIA-Linux-x86_64-570.211.01.run 376192072 BLAKE2B 
56a135681eba576377106b5ee4bad4e0ec7e41e512db8e32297fbafe03455ee4e9e0dafe782588dd3832fde74ecfd9ee5858ec662f3dc2ef3f1e1dab7a9c909d
 SHA512 
3e751d90a8f126e369c5167e2d5ba8b218dd306ccf00907290ae70fb1c3f752f0ad0b973ce356a1a24cd0f19c31a07169cfd5705613a6bbb5918881635650839
 DIST NVIDIA-Linux-x86_64-580.126.09.run 396807358 BLAKE2B 
a8b7fe16718a8f9ec6d93cad71e07c96d837ff612ae21a96018981fc904839c6d85dc2515c1d640361483fad59b5fd79bdae6a32951ec2f5db4a9115d24798dc
 SHA512 
d5c41131304b29d55d0caf8cd84c95b454d81e68d7b23ca893504c63d84dd78726e2dbd7f076b7f12be518e641d110d131ac178336d61a00bcc81b7a1890799d
+DIST NVIDIA-Linux-x86_64-580.126.18.run 396862844 BLAKE2B 
fa2d992d4f23beac7a10bc5d17695ee0c211e3afcb6fb9135f09b8eebed86db226b1cb4b9646917ab28f6127136b349fbc02deeecef2c5625f2be6a178cd268e
 SHA512 
3007896838256c5534d7a04958f38f2837314b09d05e595966ba68789b0166fd8c1a574b29c8dd9ee5414822c9aebad9f9c7e5db777b811701fcac2b92245f0f
 DIST NVIDIA-Linux-x86_64-580.94.17.run 397009149 BLAKE2B 
44c29c2d7a30dc7e4c343864dad3c7c1b989e79d2686264f211d9c61cc18c1796622cf53211a476c1f352ed121ab472288f250a1ca337ab1b33107a6d6011a4c
 SHA512 
2a62afe28b99b560e9dacec8ca8930086312638525782e6924dbab8265a65cd75a1b6e3f4f261225ffe83e66e7964bfbed25265942c1cfb80b3dc46778200fa6
 DIST NVIDIA-Linux-x86_64-590.48.01.run 416273526 BLAKE2B 
57bc232f3d5cc52b3ba7c097e5c04b0e128947b34f75c8c7a75135ebbdda565dd9ae829f3707cfef35a9b8b554f2b46a50756f6b256a0f0280c22cf9ecefb2e1
 SHA512 
31fd82af707dbe9a6d3848766925386f5e91c5fae0a605819450eb8e5a5a52eaab3ae5cff50b4dd36bc5c32fe1aabc29a6a79438d6614988c7b08f509ef0da6d
 DIST NVIDIA-kernel-module-source-535.288.01.tar.xz 12538144 BLAKE2B 
597c58a62591e82b77fb29527d240bd2043b37439a1e7089ce5ab7ecb514ca3cae5be415aa4324f1156c08ddc1138c02e58337df5f38eaf7f19294773e4bcebc
 SHA512 
b70d95af6737c36f8573d877a3473d38ecf3d7a4a35b899c38c1682888b455dcc60f6738ccee60a584477856b79dd25e6a10ffd1a4503c1d78a88902ba8329b4
 DIST NVIDIA-kernel-module-source-570.211.01.tar.xz 17951900 BLAKE2B 
d40d2c1b4a92dfe8da95e1000413dfb484c9c96ad232dd5db14246378f6df8e73f04706592a536025c3d5512d5e663e7841de8bda782e3611b4b594b9b107ad4
 SHA512 
c988270d3aaa707310c3924de83eb5f5bdc4d022d1666eb3f41ed46eff35e98a765d4d6d34c22c02ac507016bed3c34af1da2e1befc285ec9158031a4a1447e4
 DIST NVIDIA-kernel-module-source-580.126.09.tar.xz 22250272 BLAKE2B 
218c0df05f9506b22281a575db566d48760a7ab3df7f2c4d171d5157f44979efb6f40e8aebaec26e830cf3495bf2366ab406919293d2eab6e543567c0cae14fb
 SHA512 
1c62f12e39d827f1a9dc13d934f8d690e3cf3da7838f39044b1175b612eb03e2f452424f6e456fed81bfa448c8a2dfe94b58e71bff08c4e5d5d8c944c74cdb2e
+DIST NVIDIA-kernel-module-source-580.126.18.tar.xz 22192576 BLAKE2B 
ed2b39aaed517a3a55633c6e0fc5605641bf85fcf370b1c8e7eb3950d3cf9112b6c3656ef3aff3fedbbbb769bb7f975a87f218b91c4131a9930cc04c8df27bf0
 SHA512 
810c596cdb40666b5dbccf9c1d358ef155e9171a489513f78fee73f48d73798fee0f655d8a9c994144d933ff9a9e0fc362f7c4918f87c8dfa9f00d30beee102e
 DIST NVIDIA-kernel-module-source-590.48.01.tar.xz 22530000 BLAKE2B 
eae57ceccc78f0730fc4962b20f08f270bd21960e84ad5985433590e5229403a74bfc2518540f9e2ef07d319d9cb2288edfbe0d5f7a27cc7e0903aa61fed388c
 SHA512 
6fe32d5d1a84df0baeaaecd4a847ba73a89bcd1b51d5f9c7525efd2af891f6d5512c1ac97c8b766ba1d1103312c53e5406653589e22684df9260fd75977591a6
 DIST nvidia-installer-390.157.tar.bz2 150323 BLAKE2B 
8058ca87a6dea956d564af9f7eab9b1fc82b1f2382bd5cb2f6d97cbe2e19292533522d5f8f2eacbeb16520372715fcb72f8f9b0998962af5d4e75522c8d74524
 SHA512 
93a7ece648602157496c8e27a88864ede341a100f5328a4c1a25faf8f0b94d252060e5e2f71d0c302fd0566c10773c30b76b3b5f431d8039b71c90a7969f7d7e
 DIST nvidia-installer-470.256.02.tar.bz2 146269 BLAKE2B 
4402e725c8fd0157eb84d4ec140a33f97e873014577487ef1e32fb8921cabe79c60ff46532e5bfaabb2b6ac894f7c80086dbab19e61906e2e27346fb85f98829
 SHA512 
c962dc17d9696256d1ebedcaeb3010994f2ce3895aedc47987599ebfec132a9b9a249d2ece6502b15bd4a93f9b0106aa13487a7da5f64199c274ce11eba27cfd
 DIST nvidia-installer-535.288.01.tar.bz2 148906 BLAKE2B 
c559bfaeddd1af6c72647fb2e5c46638817339bd59ced80bcc6acfa14304f5ab07123aa0e43d18feff5d2582f08ceb0f84d2b97eef783bcd833c12f751e4c945
 SHA512 
b5d92a68b39a11709dae83ded0d9b860f9ff4cef514a1eb957305daf80d4354a272a88e4a58db61547b0073e57c2913f2dc038c2d51b2eb649fc9ae25eb42954
 DIST nvidia-installer-570.211.01.tar.bz2 169330 BLAKE2B 
100cdb3e0cccb19e3bbf69d4289d079a64cbca95fc20f4d48179190b5e61cfdcbfeb5b95c381c70824c185975356a70af4c89efb53ca0cbc5c61fc95d974ca77
 SHA512 
90efcd442feacd7f9d9bf25fddb77c521b2e7c79063703c320ce2bbd50a5cce950b0937ec926e89081634c6606c18861efda0e6288e24fab5ee31cd5d52d211f
 DIST nvidia-installer-580.126.09.tar.bz2 169652 BLAKE2B 
664354a67b56f3fbf323b7231b73c7af3510ec4b8f00533904e0771c6c76dfe98855cb7348bf177fc4902109519d1803ff8074f1fa2c4b7b0b007e459b9eb743
 SHA512 
9cb0be263204d6a90aeacd694066c12790d1dd513e40deef284fdb979e4227764fdf5e7692956cc08d4db270f17c4c7a3fa53e3033c863ec652fb4f48c33a8ef
+DIST nvidia-installer-580.126.18.tar.bz2 169283 BLAKE2B 
87e64a32358d5547dee98293b7a507465d1375bc1262f011d181112aa4d3f2103b2820587d688f92cf3cc8f6bf0e120e695998d47ca98de9c950c16f0428b0a9
 SHA512 
54bb99cd8b17004f7ed0ab87ef781104410d6eb57be2789c15550fbb2215473cc1180410c8dd2b2f75af3132c1047eeb5e906f45fcd7d6931dec3b1bb1db9d9c
 DIST nvidia-installer-590.48.01.tar.bz2 170826 BLAKE2B 
450bd298e6c574ae6dc085714c130984058f6e606c3de628c5adeefddbfde3bf2e025b1e422948311e9e028cfbc6e8d4c68a22a10d30a9a28466f3105aa7c13c
 SHA512 
4c776ad602594a5d2ced2570fd26b51e5fdf5b7613c43263a7f647a5d3d550c6c35960a6cd8884766a71f0b34c397e7d8bd0507b84043cbbc1c04a82ec067932
 DIST nvidia-modprobe-390.157.tar.bz2 35306 BLAKE2B 
80d202b39c2f95ec0f909712c2e101483af50124092c32efb33bd98ff58ddfb97b737ff07f1ddc941f688c1b4c26a15f392566d522e18506771f10422fcd571c
 SHA512 
109bbe24a3758b568ea65fe1e9d78f69fae6108ec0497b796c885a3912825fe04ffd7389a3e22987f1a10a2926bf6eaa384faabc59478aa3ee244dd3ac91c6d3
 DIST nvidia-modprobe-470.256.02.tar.bz2 38769 BLAKE2B 
0db444b09b0b6d24c04877fae95249e781d82b3141f90eb05d869b64d2b6e65ad00bf44c4e427c64dbd4765fa99a8699f80a1d95b00c66137a54dc878d7ea298
 SHA512 
c1cbfa6c8e188e5a5eb5d390b9a903406cbff103d212fc30e611e4023be3fde896ad84e8bb45b030beb5d1bcd8155c9e55a8f9636c45ce1e2a5c03f672989a31
 DIST nvidia-modprobe-535.288.01.tar.bz2 40729 BLAKE2B 
60a8a22bcbaefb4d7ab1bbddba814939078b88a0ffb3f3fafece04910b476370f5e1f38878b1c0f109abe4449193dcbfcd308efadd03d28786b78dd2eaeac75b
 SHA512 
0acb8e676fbc230978b97302df98450ee11fc7d59927c46643a8f92d5aec99a5d1d1bca861203a013cfbc61cadf89ed74e2fa999932264b833e3b5a53d42836e
 DIST nvidia-modprobe-570.211.01.tar.bz2 41631 BLAKE2B 
953113337b742ea246bf24a47cbe679f03d89ecfa48a655f179b0913dd7d9c1742f4b1bd765c4d4263c9d45c352de87bff9f0a5a2c3aa48c86f221177cd5d1fb
 SHA512 
c1bbba303b587f18e824cd2dd9a74341d5a03ee56c6adff67bb33c4f65ed16742f094dca9457a04d68b676c3671756e47d996090523827f42c8780329988e3fb
 DIST nvidia-modprobe-580.126.09.tar.bz2 41685 BLAKE2B 
6024b6ecbd8732c98892c01920b633de6e96316d63d80570befb7cb35078349b6737371592d92ac8d60b3662454a9bd5f6f9be8023a614e6233186b48204d8ee
 SHA512 
fecbebeeb9add103726bab211f58d1f4afb85cb47affa960a19e057c78c7ccf975b8e32043591a6e9c93402a8ae7f7232ba3b5aadd4f30e2f531914bb4787c43
+DIST nvidia-modprobe-580.126.18.tar.bz2 41651 BLAKE2B 
f2b8c639e50841f844e32ec4e41381af034c99ec81250fec68d7a79af5e61b005fd43c802d2dc9983f74b9816b8f6996b2580d21aca21ba3dcf4097fdb6dc11c
 SHA512 
a179eb37f9513f962976d58c16417f90e6b51d43dacbed720d05727f1d6404dff1f81b4206dc913161198776028636187fab6812c2ec96fa9cca70d9e63c0652
 DIST nvidia-modprobe-590.48.01.tar.bz2 41660 BLAKE2B 
0780a1aa529d95323b37115efa529dab030cbea589a03ddc70460f4176e7aa88388401ce8508a093a2e9a0ad406589e9e94ff0391021307e879cbcacec8b6759
 SHA512 
805a70d5012fbc26af3787104e39b3626b2ed7d53a4989365d2fbf6926daf817eec1dc6b7cd50dfbfe29bbd71569ac3095f0a37cad2199994dbdaa76720d8fb0
 DIST nvidia-persistenced-390.157.tar.bz2 48654 BLAKE2B 
2cf6c92da90acff55e8c180a06b0c6a29d48be9fd8ca3c541202fd14f0697220fba6b66452942aa7ae7cc8821f5c5eb9fa8f7a31d2248624e5f9141d83a176b8
 SHA512 
70f0707ed6f2b877e69ef90cf782f66cbc9d2071db53ca09ceb7b89427b0fe176708517340621fa251539b7d481b238adeeb60261674eed74de1f62db6dbb72e
 DIST nvidia-persistenced-470.256.02.tar.bz2 46567 BLAKE2B 
8f837322a3b88412fd2f6acf38721b49a6cb444fbd842d652519e5596f2e545d8f06bbdf017f46a22301ce87455f96147fab2829ca5fbf26131ec3e4a772e282
 SHA512 
4fd19258649b7d39945fb5c8578bf11ab118617dd14f3d11cdf15cb3fe77daf7b4719e4ae57af59031b1b809d02f4e8e8afed0ec60b9d0aed4d2488bd3013cd9
 DIST nvidia-persistenced-535.288.01.tar.bz2 48600 BLAKE2B 
025d2d28a078354898a501eef857d496e504279e45ab2b167a4abd5345d50e8effa1432a46da7ffc0276faed5698fb02afec21eee810335daac638e4656d7ce8
 SHA512 
b92c96b12346d8e26321679ae51532e8d28eff6c2998b6e781ea840eecf022823e47b48ac0c918c1069eb04a601833c4e70c88f66eb4891bdea2a85666597d90
 DIST nvidia-persistenced-570.211.01.tar.bz2 61779 BLAKE2B 
02ac6f53eb4c053ca894f79b49d2a4b1b1f8e9f1a349053794542e72112bf0fab87aa2ee317d486758aaf77811c929d0aa8fbbcef9de8cc59836445ef845cb7d
 SHA512 
5cb8feb56bf245e8e51e65d3d6d31f2b588e7b84ca29330e564d3c27ab37ceb67df0f80f8b37dfafb49a9fe8d7fef6b26d6334c6403902737298e8f3b23d1cb3
 DIST nvidia-persistenced-580.126.09.tar.bz2 62240 BLAKE2B 
980dfd0a2c852c97e246f36f69c984808ca01cdba299b2be51a2cd7e5125d56a98280a003a32ccaf6873afc3183f13aed0433077aa399475fb404e5d7811b37c
 SHA512 
b6699cafb543d958911086c6773f7ac1ac3c32bb20b3a88c92e029f303f48f8daec7338cf080bf74ff97f26f4c92f640c1f51cf95fc9a601e666317fadf882ea
+DIST nvidia-persistenced-580.126.18.tar.bz2 62246 BLAKE2B 
2dd91f79713631afebd574bd3eed8fe2867083bece0ba9f57ffc3d41221729e39b2e04a2514b137c7a9407b0cb9569de3dc0c8f5ae78f9a15c78600c6feb8198
 SHA512 
32394ef4922b466a56f666ecea913831338af02a9768b85275ad1bbd9a7f75379e17597828412a4080a0dcfafb7e9bd5510d6244539594ca60a22a541de8458e
 DIST nvidia-persistenced-590.48.01.tar.bz2 62193 BLAKE2B 
e6f03ce2f24f1ddc6b1dc9b7a8dd22de4541d5ec82f85c58943cf48f295e7f77555765b01edcce1c7f5ba67580c51273de8b8200d522c49e2321cffcfc8aeb6b
 SHA512 
960f37355e58da20af92f0f0df091709623e32d9ef4eaba34d1f6b52f71227ac7c3a7f84aec64460952fa32986672f9373774ab1e65149ed426c59be47d7f2d8
 DIST nvidia-settings-390.157.tar.bz2 1108938 BLAKE2B 
d9ec1ab5d7f157d74627272adf752a671dd17e2ede02069437b6180b927fe315b15cc6416d584ab2f038b76fe01e5b64514a834f24d88ac16676e55205fdecdd
 SHA512 
b16699009bf56a1ff3b623a528c58061c4f5a2c5c4a373756a07bcd667743a1df7c733a572d2d0baa835a904ac2fda8a5c85890dcc00c3a0f223e0467aea902d
 DIST nvidia-settings-470.256.02.tar.bz2 1062273 BLAKE2B 
8e66201e7861469b12932595ef8f9fd29d4cfd570c2576ae7fbb7383f61c55ac71fe721cc431e79d6d69f86d998b5b4c3cafe531b573f439e6b499b0fc047a19
 SHA512 
626e66118ae2e62eacfdf44e37529c409b945a6f33637b9690d74abd87a2afb581aaca5f90328d280da99ceb659959d0e5dc5c22ef8013b2205b2b1c72e08007
 DIST nvidia-settings-535.288.01.tar.bz2 1094513 BLAKE2B 
8b7112b44bbe3445b63ddc245edbdb717436432482e9f87398863ffd08c520b6ac3527d3d47a75cc7e0ddec3931302e3029ccd7050db1abcc317ebf697284e01
 SHA512 
f1a817d9463a928fe47fed14da5d1bc0b9cbe0a910cbf01fca0d4edbee0effa989ec1cbf34e0aba6cc8516cf7bdadbc60ee6f0e4178e3c6cfb78301a1ef5aa8b
 DIST nvidia-settings-570.211.01.tar.bz2 1123957 BLAKE2B 
7355319d29f96aeeada3cd1ffd08b053fa76a5f2f0dd35fac383ff5c1ffd4abba95d0a7f0f421fc4b74a11f2c94352c9e2db363034e5361a0d18017a321261f2
 SHA512 
8f29c02597eedd934531e703c617aaa7504effe836257de07c664145e07690b0b34b8c893c01e9e561bf90cb3c15b1b6c116e2a7a88ea1a733f2872490c10441
 DIST nvidia-settings-580.126.09.tar.bz2 1132737 BLAKE2B 
9d32e702265c8802fee8694cd5b1170c4c19dce8e5c33047376368492a6b531ee09b9aaa81617db5b48dde6e8d1b34f5010fbe7e720598997e68f754c5985b05
 SHA512 
57ae5968056fbe5c76a2a0bebcd42c5a530874c787be2439ed7dd0e916dad20b1151f9ab91073751bbf0bbd344e70d32598ceec03344691a7fe2812e8a3d1c19
+DIST nvidia-settings-580.126.18.tar.bz2 1132578 BLAKE2B 
d903f91d84de3f98fcb6c32601c77297ad8cb34e74dc5719a36e5777a4f2003207f7ec3c41defaea4b26af739099a84648f994720db700090b81f7980d3e7cdb
 SHA512 
6980829ba2e4517f0765b3a0321e408182627ed4f08601b9a44cbb7fd35bac46ba6eedc890e585ac9d1feb971fc0a0f3ae6992f3ee30bfe496cdec97ef4d6f30
 DIST nvidia-settings-590.48.01.tar.bz2 1134292 BLAKE2B 
901a3bad03d4eaca3f78afc154539f72aa882ae19052b43b6bfb267a3be1ded4af607fbc05d1a379a8038a22fa5a9c19dd6c393f3436cda97cc7049820f1ec57
 SHA512 
c82737dc8894a35b7e87afd99fb98c0a4093ec8fd48590cc8e09154d55f948ceaf48fff31c7d015adcceab31a00c5ec4334fe1e90aec94c4bb076118b789dd4c
 DIST nvidia-xconfig-390.157.tar.bz2 107399 BLAKE2B 
0cbb3b1ba508ddc3ba4a161c290b31bf7a67f67880bdbd01171a962c5fa97ca945b1ef17932403f8589309380743f1da632c728d8accb6d4e56dbd895e7486bb
 SHA512 
50b390811c9bf091b14add41f886925b17496b41006b7d3981d2398caa65cf5db8a579c8cebed78278384bf3acc629befb07b54339c61abcc75852c0dcb8b8ca
 DIST nvidia-xconfig-470.256.02.tar.bz2 108698 BLAKE2B 
e468574e4bc57e7279d4120e2b08a201671b50d408be0c530eabe5da7d45daaf21cbf5c7fa31410d0d732fe8ea1551cbfb21d1ae193c1b3f5b5c50c764c9e236
 SHA512 
9dcec1e0c2b56b4d38a5f2c76086302f8bc0860cc15012cce29c3a5062f801a48b6a2bb78344361b07a2717b58502783441a2daf402d9973a17526175b1f15ca
 DIST nvidia-xconfig-535.288.01.tar.bz2 110671 BLAKE2B 
94f8f5c651df7d43de308938312b2c97e8a0292a2575914250e22dc62e139cba36be038453d6f1688e8ebb90883ce0806424eee7ca6fd3a5cee5e9884cfc8d60
 SHA512 
4368625df5eec5ec8296b9f561a8dc32fda958fd4ea37a4bc9da42303529d6366b41a028d2d9614ba0dcd029a3a5740c15e4fa1febec31da7df51b0b276a831c
 DIST nvidia-xconfig-570.211.01.tar.bz2 111263 BLAKE2B 
9d6e7e973156d91ce1a213a95aa31269d811024ebf358dfad42c0771cafc6c4f2d4257994d67e67ac637a1107527511d8f8219446e9a57560bab8ba7d4d2684c
 SHA512 
8e8be1e95998fde590bdb5c0246764a426d623c8bf9e705e7bff649f1daebb86726cead4add570622e34aea9a38b697d31d11d7a2fc741dd91af2ccaaa024cd1
 DIST nvidia-xconfig-580.126.09.tar.bz2 111541 BLAKE2B 
bab1f4347613ffe30ada9df4fa387a8426f4c829c4346cdb57cfa4334f93b2048b1296033e8ea79c1a5210ae8021ab5e4aa7d8dcbec216a886f5be14b684fdf4
 SHA512 
810e831e2522029e82e5bde1eab9ec641da271336c430eb2ce5645e7e765f179694fdb93a41e49ba2c951c0b0edc2fdffa77d088e9678ab206eabe45866c6c09
+DIST nvidia-xconfig-580.126.18.tar.bz2 111880 BLAKE2B 
669b02a4dd3d3b08937f67f7812ac6b4f715d471526b3c5178623699fff2b89c596c199d1b8fa1837bb2a5c784f8adf68d1977686da8c586c5abd3f8b49d71f9
 SHA512 
769cff278522fd3a5435d0b2c31c627f4091be996f2e13ede2df064e025a32cdbe6818e5a81e86a0338a6e7b9c96b9aa4bd7d8a9ff737f738a46f0be63c9b90a
 DIST nvidia-xconfig-590.48.01.tar.bz2 110986 BLAKE2B 
6ec7f5eee2ca4c4a96f0607ac94ec3d491137a0e8750a6ae4c46feddced61f7a8b1eb77aa333008a69ceab7ad071671b7449bb2ed9ba285359fd1cb991a9c9b2
 SHA512 
e85dbd9ba5e056fb6f8a4618df35fa1692d0037e50122a5659ebda043a9b380fdf72aaa56f82b64e5525c36f429ed9bbd7f0e319c608f7c50355d47ab3b24077
 DIST open-gpu-kernel-modules-580.94.17.tar.gz 23302465 BLAKE2B 
7e1a6456ea0ee4f9aa476209708287ddfe4f9ea3d883cd94286d858a5e2b2717fa88c183ce1f348409577979a07344ce4ea3b31ce10a0bc0cb1121078ea5c49c
 SHA512 
f674edcdedc54915d7a177bd8bfaab49494749bfa08b07267e9c6e02de2e7b858d4ab7c7c4cd83ce70076582d785b4420c6d565a237958c37e99c14e3227aa73

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.18.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.18.ebuild
new file mode 100644
index 000000000000..6cfdd123dbc5
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.18.ebuild
@@ -0,0 +1,604 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MODULES_OPTIONAL_IUSE=+modules
+inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1
+inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info
+
+MODULES_KERNEL_MAX=6.19
+NV_URI="https://download.nvidia.com/XFree86/";
+
+DESCRIPTION="NVIDIA Accelerated Graphics Driver"
+HOMEPAGE="https://www.nvidia.com/";
+SRC_URI="
+       amd64? ( ${NV_URI}Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run )
+       arm64? ( ${NV_URI}Linux-aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run )
+       $(printf "${NV_URI}%s/%s-${PV}.tar.bz2 " \
+               nvidia-{installer,modprobe,persistenced,settings,xconfig}{,})
+       
${NV_URI}NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-${PV}.tar.xz
+"
+# nvidia-installer is unused but here for GPL-2's "distribute sources"
+S=${WORKDIR}
+
+LICENSE="
+       NVIDIA-2025 Apache-2.0 Boost-1.0 BSD BSD-2 GPL-2 MIT ZLIB
+       curl openssl public-domain
+"
+SLOT="0/${PV%%.*}"
+KEYWORDS="-* ~amd64 ~arm64"
+IUSE="
+       +X abi_x86_32 abi_x86_64 kernel-open persistenced powerd
+       +static-libs +tools wayland
+"
+
+COMMON_DEPEND="
+       acct-group/video
+       X? ( x11-libs/libpciaccess )
+       persistenced? (
+               acct-user/nvpd
+               net-libs/libtirpc:=
+       )
+       tools? (
+               >=app-accessibility/at-spi2-core-2.46:2
+               dev-libs/glib:2
+               dev-libs/jansson:=
+               media-libs/harfbuzz:=
+               x11-libs/cairo
+               x11-libs/gdk-pixbuf:2
+               x11-libs/gtk+:3[X]
+               x11-libs/libX11
+               x11-libs/libXext
+               x11-libs/libXxf86vm
+               x11-libs/pango
+       )
+"
+RDEPEND="
+       ${COMMON_DEPEND}
+       dev-libs/openssl:0/3
+       sys-libs/glibc
+       X? (
+               media-libs/libglvnd[X,abi_x86_32(-)?]
+               x11-libs/libX11[abi_x86_32(-)?]
+               x11-libs/libXext[abi_x86_32(-)?]
+       )
+       powerd? ( sys-apps/dbus[abi_x86_32(-)?] )
+       wayland? (
+               >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?]
+               >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?]
+               X? ( gui-libs/egl-x11[abi_x86_32(-)?] )
+       )
+"
+DEPEND="
+       ${COMMON_DEPEND}
+       static-libs? (
+               x11-base/xorg-proto
+               x11-libs/libX11
+               x11-libs/libXext
+       )
+       tools? (
+               dev-util/vulkan-headers
+               media-libs/libglvnd
+               sys-apps/dbus
+               x11-base/xorg-proto
+               x11-libs/libXrandr
+               x11-libs/libXv
+               x11-libs/libvdpau
+       )
+"
+BDEPEND="
+       app-alternatives/awk
+       sys-devel/m4
+       virtual/pkgconfig
+"
+
+# there is some non-prebuilt exceptions but rather not maintain a list
+QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*"
+
+PATCHES=(
+       "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
+       "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch
+)
+
+pkg_setup() {
+       use modules && [[ ${MERGE_TYPE} != binary ]] || return
+
+       # do early before linux-mod-r1 so can use chkconfig to setup 
CONFIG_CHECK
+       get_version
+       require_configured_kernel
+
+       local CONFIG_CHECK="
+               PROC_FS
+               ~DRM_KMS_HELPER
+               ~DRM_FBDEV_EMULATION
+               ~SYSVIPC
+               ~!LOCKDEP
+               ~!PREEMPT_RT
+               ~!RANDSTRUCT_FULL
+               ~!RANDSTRUCT_PERFORMANCE
+               ~!SLUB_DEBUG_ON
+               !DEBUG_MUTEXES
+               $(usev powerd '~CPU_FREQ')
+       "
+
+       kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION &&
+               CONFIG_CHECK+=" DRM_TTM_HELPER"
+
+       use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764
+
+       use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827
+
+       local drm_helper_msg="Cannot be directly selected in the kernel's 
config menus, and may need
+       selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or
+       DRM_AMDGPU=m (among others, consult the kernel config's help), can
+       also use DRM_NOUVEAU=m as long as built as module *not* built-in."
+       local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but is 
needed for nvidia-drm.modeset=1
+       support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf) which is needed for 
wayland
+       and for config-less Xorg auto-detection.
+       ${drm_helper_msg}"
+       local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is 
needed to compile when using
+       kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set.
+       ${drm_helper_msg}"
+       local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set 
but is needed for
+       nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), 
may
+       result in a blank console/tty."
+       local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to 
build with USE=kernel-open.
+       Cannot be directly selected in the kernel's menuconfig, and may need
+       selection of another option that requires it such as CONFIG_AMD_IOMMU=y,
+       or DRM_I915=m (among others, consult the kernel config's help)."
+       local ERROR_PREEMPT_RT="CONFIG_PREEMPT_RT: is set but is unsupported by 
NVIDIA upstream and
+       will fail to build unless the env var IGNORE_PREEMPT_RT_PRESENCE=1 is
+       set. Please do not report issues if run into e.g. kernel panics while
+       ignoring this."
+       local randstruct_msg="is set but NVIDIA may be unstable with
+       it such as causing a kernel panic on shutdown, it is recommended to
+       disable with CONFIG_RANDSTRUCT_NONE=y (https://bugs.gentoo.org/969413
+       -- please report if this appears fixed on NVIDIA's side so can remove
+       this warning)."
+       local ERROR_RANDSTRUCT_FULL="CONFIG_RANDSTRUCT_FULL: ${randstruct_msg}"
+       local ERROR_RANDSTRUCT_PERFORMANCE="CONFIG_RANDSTRUCT_PERFORMANCE: 
${randstruct_msg}"
+
+       linux-mod-r1_pkg_setup
+}
+
+src_prepare() {
+       # make 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
+       mv NVIDIA-kernel-module-source-${PV} kernel-module-source || die
+
+       default
+
+       # prevent detection of incomplete kernel DRM support (bug #603818)
+       sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
+               -i kernel{,-module-source/kernel-open}/conftest.sh || die
+
+       sed 's/__USER__/nvpd/' \
+               
nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \
+               > "${T}"/nvidia-persistenced.service || die
+
+       # use alternative vulkan icd option if USE=-X (bug #909181)
+       use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die
+
+       # makefile attempts to install wayland library even if not built
+       use wayland || sed -i 's/ WAYLAND_LIB_install$//' \
+               nvidia-settings/src/Makefile || die
+}
+
+src_compile() {
+       tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG
+
+       # extra flags for the libXNVCtrl.a static library
+       local xnvflags=-fPIC #840389
+       tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
+
+       # Same as uname -m.
+       local target_arch
+       case ${ARCH} in
+               amd64) target_arch=x86_64 ;;
+               arm64) target_arch=aarch64 ;;
+               *) die "Unrecognised architecture: ${ARCH}" ;;
+       esac
+
+       NV_ARGS=(
+               PREFIX="${EPREFIX}"/usr
+               HOST_CC="$(tc-getBUILD_CC)"
+               HOST_LD="$(tc-getBUILD_LD)"
+               BUILD_GTK2LIB=
+               NV_USE_BUNDLED_LIBJANSSON=0
+               NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
+               TARGET_ARCH="${target_arch}"
+               WAYLAND_AVAILABLE=$(usex wayland 1 0)
+               XNVCTRL_CFLAGS="${xnvflags}"
+       )
+
+       if use modules; then
+               local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} 
o_ldflags=${LDFLAGS}
+
+               local modlistargs=video:kernel
+               if use kernel-open; then
+                       
modlistargs+=-module-source:kernel-module-source/kernel-open
+
+                       # environment flags are normally unused for modules, 
but nvidia
+                       # uses it for building the "blob" and it is a bit 
fragile
+                       filter-flags -fno-plt #912949
+                       filter-lto
+                       CC=${KERNEL_CC} CXX=${KERNEL_CXX} 
strip-unsupported-flags
+
+                       LDFLAGS=$(raw-ldflags)
+               fi
+
+               local modlist=( 
nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} )
+               local modargs=(
+                       IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
+                       SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
+                       TARGET_ARCH="${target_arch}"
+
+                       # kernel takes "x86" and "x86_64" as meaning the same, 
but nvidia
+                       # makes the distinction (since 550.135) and is not 
happy with "x86"
+                       # TODO?: it should be ok/better for tc-arch-kernel to 
do x86_64
+                       $(usev amd64 ARCH=x86_64)
+               )
+
+               # temporary workaround for bug #914468
+               addpredict "${KV_OUT_DIR}"
+
+               linux-mod-r1_src_compile
+               CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags}
+       fi
+
+       emake "${NV_ARGS[@]}" -C nvidia-modprobe
+       use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced
+       use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig
+
+       if use tools; then
+               # avoid noisy *very* noisy logs with deprecation warnings
+               CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
+                       emake "${NV_ARGS[@]}" -C nvidia-settings
+       elif use static-libs; then
+               # pretend GTK+3 is available, not actually used (bug #880879)
+               emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \
+                       -C nvidia-settings/src out/libXNVCtrl.a
+       fi
+}
+
+src_install() {
+       local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir)
+
+       NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} )
+
+       local -A paths=(
+               [APPLICATION_PROFILE]=/usr/share/nvidia
+               [CUDA_ICD]=/etc/OpenCL/vendors
+               
[EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d
+               [FIRMWARE]=/lib/firmware/nvidia/${PV}
+               [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm
+               [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d
+               [OPENGL_DATA]=/usr/share/nvidia
+               [VULKANSC_ICD_JSON]=/usr/share/vulkansc
+               [VULKAN_ICD_JSON]=/usr/share/vulkan
+               [WINE_LIB]=/usr/${libdir}/nvidia/wine
+               [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d
+
+               [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions
+               [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules
+               [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules
+       )
+
+       local skip_files=(
+               $(usev !X "libGLX_nvidia libglxserver_nvidia")
+               libGLX_indirect # non-glvnd unused fallback
+               libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from 
source
+               libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm
+               libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland
+               libnvidia-egl-xcb 20_nvidia_xcb.json # gui-libs/egl-x11
+               libnvidia-egl-xlib 20_nvidia_xlib.json # gui-libs/egl-x11
+               libnvidia-pkcs11.so # using the openssl3 version instead
+       )
+       local skip_modules=(
+               $(usev !X "nvfbc vdpau xdriver")
+               $(usev !modules gsp)
+               $(usev !powerd nvtopps)
+               installer nvpd # handled separately / built from source
+       )
+       local skip_types=(
+               GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # 
media-libs/libglvnd
+               OPENCL_WRAPPER.\* # virtual/opencl
+               DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # 
handled separately / unused
+       )
+
+       local DOCS=(
+               README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json
+               nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
+       )
+       local HTML_DOCS=( html/. )
+       einstalldocs
+
+       local DISABLE_AUTOFORMATTING=yes
+       local DOC_CONTENTS="\
+Trusted users should be in the 'video' group to use NVIDIA devices.
+You can add yourself by using: gpasswd -a my-user video\
+$(usev modules "
+
+Like all out-of-tree kernel modules, it is necessary to rebuild
+${PN} after upgrading or rebuilding the Linux kernel
+by for example running \`emerge @module-rebuild\`. Alternatively,
+if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}),
+this can be automated by setting USE=dist-kernel globally.
+
+Loaded kernel modules also must not mismatch with the installed
+${PN} version (excluding -r revision), meaning should
+ensure \`eselect kernel list\` points to the kernel that will be
+booted before building and preferably reboot after upgrading
+${PN} (the ebuild will emit a warning if mismatching).
+
+See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\
+$(use amd64 && usev !abi_x86_32 "
+
+Note that without USE=abi_x86_32 on ${PN}, 32bit applications
+(typically using wine / steam) will not be able to use GPU acceleration.")
+
+Be warned that USE=kernel-open may need to be either enabled or
+disabled for certain cards to function:
+- GTX 50xx (blackwell) and higher require it to be enabled
+- GTX 1650 and higher (pre-blackwell) should work either way
+- Older cards require it to be disabled
+
+For additional information or for troubleshooting issues, please see
+https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own
+documentation that is installed alongside this README."
+       readme.gentoo_create_doc
+
+       if use modules; then
+               linux-mod-r1_src_install
+
+               insinto /etc/modprobe.d
+               newins "${FILESDIR}"/nvidia-590.conf nvidia.conf
+
+               # used for gpu verification with binpkgs (not kept, see 
pkg_preinst)
+               insinto /usr/share/nvidia
+               doins supported-gpus/supported-gpus.json
+       fi
+
+       emake "${NV_ARGS[@]}" -C nvidia-modprobe install
+       fowners :video /usr/bin/nvidia-modprobe #505092
+       fperms 4710 /usr/bin/nvidia-modprobe
+
+       if use persistenced; then
+               emake "${NV_ARGS[@]}" -C nvidia-persistenced install
+               newconfd "${FILESDIR}"/nvidia-persistenced.confd 
nvidia-persistenced
+               newinitd "${FILESDIR}"/nvidia-persistenced.initd 
nvidia-persistenced
+               systemd_dounit "${T}"/nvidia-persistenced.service
+       fi
+
+       if use tools; then
+               emake "${NV_ARGS[@]}" -C nvidia-settings install
+
+               doicon nvidia-settings/doc/nvidia-settings.png
+               domenu nvidia-settings/doc/nvidia-settings.desktop
+
+               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
+               strip-lto-bytecode
+
+               insinto /usr/include/NVCtrl
+               doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
+       fi
+
+       use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install
+
+       # mimic nvidia-installer by reading .manifest to install files
+       # 0:file 1:perms 2:type 3+:subtype/arguments -:module
+       local m into
+       while IFS=' ' read -ra m; do
+               ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] ||
+                       [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] 
||
+                       [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] ||
+                       has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue
+
+               case ${m[2]} in
+                       MANPAGE)
+                               gzip -dc ${m[0]} | newman - ${m[0]%.gz}
+                               pipestatus || die
+                               continue
+                       ;;
+                       GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../
+                       VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so 
to vdpau/
+               esac
+
+               if [[ -v 'paths[${m[2]}]' ]]; then
+                       into=${paths[${m[2]}]}
+               elif [[ ${m[2]} == EXPLICIT_PATH ]]; then
+                       into=${m[3]}
+               elif [[ ${m[2]} == *_BINARY ]]; then
+                       into=/usr/bin
+               elif [[ ${m[3]} == COMPAT32 ]]; then
+                       use abi_x86_32 || continue
+                       into=/usr/${libdir32}
+               elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then
+                       into=/usr/${libdir}
+               else
+                       die "No known installation path for ${m[0]}"
+               fi
+               [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/}
+               [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/}
+
+               if [[ ${m[2]} =~ _SYMLINK$ ]]; then
+                       [[ ${m[4]: -1} == / ]] && m[4]=${m[5]}
+                       dosym ${m[4]} ${into}/${m[0]}
+                       continue
+               fi
+               # avoid portage warning due to missing soname links in manifest
+               [[ ${m[0]} =~ ^libnvidia-ngx.so ]] &&
+                       dosym ${m[0]} ${into}/${m[0]%.so*}.so.1
+
+               printf -v m[1] %o $((m[1] | 0200)) # 444->644
+               insopts -m${m[1]}
+               insinto ${into}
+               doins ${m[0]}
+       done < .manifest || die
+       insopts -m0644 # reset
+
+       # MODULE:installer non-skipped extras
+       : "$(systemd_get_sleepdir)"
+       exeinto "${_#"${EPREFIX}"}"
+       doexe systemd/system-sleep/nvidia
+       dobin systemd/nvidia-sleep.sh
+       systemd_dounit 
systemd/system/nvidia-{hibernate,resume,suspend,suspend-then-hibernate}.service
+
+       dobin nvidia-bug-report.sh
+
+       insinto /usr/share/nvidia/files.d
+       doins sandboxutils-filelist.json
+
+       # MODULE:powerd extras
+       if use powerd; then
+               newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117
+               systemd_dounit systemd/system/nvidia-powerd.service
+
+               insinto /usr/share/dbus-1/system.d
+               doins nvidia-dbus.conf
+       fi
+
+       # enabling is needed for sleep to work properly and little reason not 
to do
+       # it unconditionally for a better user experience
+       : "$(systemd_get_systemunitdir)"
+       local unitdir=${_#"${EPREFIX}"}
+       # not using relative symlinks to match systemd's own links
+       dosym 
{"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-hibernate.service
+       dosym 
{"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-resume.service
+       dosym 
{"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-suspend.service
+       dosym 
{"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-resume.service
+       dosym 
{"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-suspend-then-hibernate.service
+       dosym 
{"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-resume.service
+       # also add a custom elogind hook to do the equivalent of the above
+       exeinto /usr/lib/elogind/system-sleep
+       newexe "${FILESDIR}"/system-sleep.elogind nvidia
+       # <elogind-255.5 used a different path (bug #939216), keep a compat 
symlink
+       # TODO: cleanup after 255.5 been stable for a few months
+       dosym {/usr/lib,/"${libdir}"}/elogind/system-sleep/nvidia
+
+       # needed with >=systemd-256 or may fail to resume with some setups
+       # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072722
+       insinto "${unitdir}"/systemd-homed.service.d
+       newins - 10-nvidia.conf <<-EOF
+               [Service]
+               Environment=SYSTEMD_HOME_LOCK_FREEZE_SESSION=false
+       EOF
+       insinto "${unitdir}"/systemd-suspend.service.d
+       newins - 10-nvidia.conf <<-EOF
+               [Service]
+               Environment=SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false
+       EOF
+       dosym -r 
"${unitdir}"/systemd-{suspend,hibernate}.service.d/10-nvidia.conf
+       dosym -r 
"${unitdir}"/systemd-{suspend,hybrid-sleep}.service.d/10-nvidia.conf
+       dosym -r 
"${unitdir}"/systemd-{suspend,suspend-then-hibernate}.service.d/10-nvidia.conf
+
+       # symlink non-versioned so nvidia-settings can use it even if 
misdetected
+       dosym nvidia-application-profiles-${PV}-key-documentation \
+               
${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation
+
+       # don't attempt to strip firmware files (silences errors)
+       dostrip -x ${paths[FIRMWARE]}
+
+       # sandbox issues with /dev/nvidiactl and others (bug #904292,#921578)
+       # are widespread and sometime affect revdeps of packages built with
+       # USE=opencl/cuda making it hard to manage in ebuilds (minimal set,
+       # ebuilds should handle manually if need others or addwrite)
+       insinto /etc/sandbox.d
+       newins - 20nvidia 
<<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"'
+
+       # dracut does not use /etc/modprobe.d if hostonly=no, but want to make 
sure
+       # our settings are used for bug 932781#c8 and nouveau blacklist if 
either
+       # modules are included (however, just best-effort without initramfs 
regen)
+       if use modules; then
+               echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf 
\"" >> \
+                       "${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || 
die
+       fi
+}
+
+pkg_preinst() {
+       has_version "${CATEGORY}/${PN}[kernel-open]" && NV_HAD_KERNEL_OPEN=
+
+       use modules || return
+
+       # set video group id based on live system (bug #491414)
+       local g=$(egetent group video | cut -d: -f3)
+       [[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got 
'${g}')"
+       sed -i "s/@VIDEOGID@/${g}/" "${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() {
+       linux-mod-r1_pkg_postinst
+
+       readme.gentoo_print_elog
+
+       if [[ -r /proc/driver/nvidia/version &&
+               $(</proc/driver/nvidia/version) != *"  ${PV}  "* ]]; then
+               ewarn "\nCurrently loaded NVIDIA modules do not match the newly 
installed"
+               ewarn "libraries and may prevent launching GPU-accelerated 
applications."
+               if use modules; then
+                       ewarn "Easiest way to fix this is normally to reboot. 
If still run into issues"
+                       ewarn "(e.g. API mismatch messages in the \`dmesg\` 
output), please verify"
+                       ewarn "that the running kernel is ${KV_FULL} and that 
(if used) the"
+                       ewarn "initramfs does not include NVIDIA modules (or at 
least, not old ones)."
+               fi
+       fi
+
+       if [[ $(</proc/cmdline) == *slub_debug=[!-]* ]]; then
+               ewarn "\nDetected that the current kernel command line is using 
'slub_debug=',"
+               ewarn "this may lead to system instability/freezes with this 
version of"
+               ewarn "${PN}. Bug: https://bugs.gentoo.org/796329";
+       fi
+
+       if [[ -v NV_LEGACY_MASK ]]; then
+               ewarn "\n***WARNING***"
+               ewarn "\nYou are installing a version of ${PN} 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[1] branch if possible (not 
all old versions"
+               ewarn "are available or fully functional, may need to consider 
nouveau[2])."
+               ewarn "[1] https://www.nvidia.com/object/IO_32667.html";
+               ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau";
+       fi
+
+       if use kernel-open && use modules && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then
+               ewarn "\nOpen source variant of ${PN} was selected, note that 
it requires"
+               ewarn "Turing/Ampere+ GPUs (aka GTX 1650+). Try disabling if 
run into issues."
+               ewarn "Also see: 
${EROOT}/usr/share/doc/${PF}/html/kernel_open.html"
+       fi
+
+       if ver_replacing -lt 580.126.09-r1; then
+               elog "\n>=nvidia-drivers-580.126.09-r1 changes some defaults 
that may or may"
+               elog "not need attention:"
+               elog "1. nvidia-drm.modeset=1 is now default regardless of 
USE=wayland"
+               elog "2. nvidia-drm.fbdev=1 is now also tentatively default to 
match upstream"
+               elog "See ${EROOT}/etc/modprobe.d/nvidia.conf to modify 
settings if needed,"
+               elog "fbdev=1 *could* cause issues for the console display with 
some setups."
+       fi
+}


Reply via email to