Gentoo Archives: gentoo-commits

From: Jeroen Roovers <jer@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/, x11-drivers/nvidia-drivers/files/
Date: Thu, 30 Mar 2017 07:29:47
Message-Id: 1490858867.99ee8e677f6609be4ba52fc047336548106a03fd.jer@gentoo
1 commit: 99ee8e677f6609be4ba52fc047336548106a03fd
2 Author: Jeroen Roovers <jer <AT> gentoo <DOT> org>
3 AuthorDate: Thu Mar 30 07:27:47 2017 +0000
4 Commit: Jeroen Roovers <jer <AT> gentoo <DOT> org>
5 CommitDate: Thu Mar 30 07:27:47 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=99ee8e67
7
8 x11-drivers/nvidia-drivers: Drop obsolete branches (bug #611712).
9
10 Package-Manager: Portage-2.3.5, Repoman-2.3.2
11
12 x11-drivers/nvidia-drivers/Manifest | 46 --
13 .../files/nvidia-drivers-346.16-pax-constify.patch | 25 -
14 .../files/nvidia-drivers-346.16-pax-usercopy.patch | 47 --
15 .../files/nvidia-drivers-355.06-pax.patch | 102 ----
16 .../files/nvidia-drivers-361.28-pax.patch | 351 -------------
17 .../files/nvidia-drivers-364.12-pax.patch | 398 ---------------
18 .../files/nvidia-drivers-367.35-pax.patch | 404 ---------------
19 .../files/nvidia-drivers-367.57-pax.patch | 391 ---------------
20 .../files/nvidia-drivers-367.57-profiles-rc.patch | 11 -
21 .../files/nvidia-drivers-370.28-profiles-rc.patch | 11 -
22 .../files/nvidia-drivers-settings.desktop | 7 -
23 x11-drivers/nvidia-drivers/metadata.xml | 1 -
24 .../nvidia-drivers/nvidia-drivers-346.96-r6.ebuild | 527 --------------------
25 .../nvidia-drivers/nvidia-drivers-346.96-r7.ebuild | 528 --------------------
26 .../nvidia-drivers/nvidia-drivers-352.79-r4.ebuild | 526 --------------------
27 .../nvidia-drivers/nvidia-drivers-352.79-r5.ebuild | 525 --------------------
28 .../nvidia-drivers/nvidia-drivers-355.11-r4.ebuild | 499 -------------------
29 .../nvidia-drivers/nvidia-drivers-355.11-r5.ebuild | 502 -------------------
30 .../nvidia-drivers/nvidia-drivers-358.16-r5.ebuild | 538 --------------------
31 .../nvidia-drivers/nvidia-drivers-358.16-r6.ebuild | 539 --------------------
32 .../nvidia-drivers/nvidia-drivers-361.42-r1.ebuild | 529 --------------------
33 .../nvidia-drivers/nvidia-drivers-361.42.ebuild | 528 --------------------
34 .../nvidia-drivers-361.45.18-r1.ebuild | 529 --------------------
35 .../nvidia-drivers/nvidia-drivers-361.45.18.ebuild | 528 --------------------
36 .../nvidia-drivers/nvidia-drivers-364.19-r1.ebuild | 547 --------------------
37 .../nvidia-drivers/nvidia-drivers-364.19-r2.ebuild | 548 --------------------
38 .../nvidia-drivers/nvidia-drivers-367.57-r1.ebuild | 551 --------------------
39 .../nvidia-drivers/nvidia-drivers-367.57-r2.ebuild | 552 ---------------------
40 .../nvidia-drivers/nvidia-drivers-370.28-r1.ebuild | 551 --------------------
41 .../nvidia-drivers/nvidia-drivers-370.28-r2.ebuild | 552 ---------------------
42 30 files changed, 11393 deletions(-)
43
44 diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
45 index cecb11b3502..d4065462f18 100644
46 --- a/x11-drivers/nvidia-drivers/Manifest
47 +++ b/x11-drivers/nvidia-drivers/Manifest
48 @@ -3,15 +3,6 @@ DIST NVIDIA-FreeBSD-x86-304.134.tar.gz 35095790 SHA256 e7a164807c83ab0f1be98eb24
49 DIST NVIDIA-FreeBSD-x86-304.135.tar.gz 35092250 SHA256 3bcecc26c67588174bcee96b25f4f70265f463e4b3eb85d83363977acf3b6d33 SHA512 2e8e8b6cc02bcb44fcfc5f7b378cfe104669d2092e5191261c800bb458281e4ae269d8ae3f7230f5e1432004d55120e063166ead5d91d80b96eb158f7927b34a WHIRLPOOL b42379f450630f20ece6f3af95b9f02d8c91121454d9c883f23cbb7a46e2099c41de2f15663932befb218eea856cb0a861fc34b19f3e84061cd0fa4f4c8722e6
50 DIST NVIDIA-FreeBSD-x86-340.101.tar.gz 59992166 SHA256 f62038819eb4ba074e92ce8d26b6330ed3bc32d1c07bcc95f4e2964fa667e03b SHA512 b0d3e04acd60c1699850ecebbbdc2677f9691d3acf700effa369daedf3a45d7068c365a3298214acf396d7bcd531cfec26e9ef02e02c0896f01240219b338beb WHIRLPOOL 955e8ad5152137641fcf2d5515e8c3b0a7ed9cac5ab646c2551fb4b1b0c0295ef3e3007905d5b5f2c50daaab1b74b7d6ffeb3f96f617b464c2db745ca4b33473
51 DIST NVIDIA-FreeBSD-x86-340.102.tar.gz 12057262 SHA256 d3edf43d6fc518869c35ae8d98ab5d55b86ade71127956ef66b201f60bc5dfe8 SHA512 bf15e68b1eee85e83474aaa480096991eac7506481f1192b53e0e10ff891f177c50c1492c51fb68ce0af3c5ccc54dad60edc90ec42b156e8338e51b9f9542520 WHIRLPOOL 6eb5df57b709ea2c3ab1c81d7a186fd106ff019400d66bc68c91da12d27b0b365e2f1b44c6d41cd45f605a813be1b88d587fcd7b3513c251e3248dc2f243d529
52 -DIST NVIDIA-FreeBSD-x86-346.96.tar.gz 58010757 SHA256 a27d7b79c053702bf6524b2c4725321fa557be18a585735e0b8122d884348c3e SHA512 f05ff7f98ae56ef992c21440e94dc12537f91353c9ba6fbe74b5928744823cb0cce38e7aa2da6c88569dda52f9ae0f6674c29255db155a2fada9b78f024dda8d WHIRLPOOL d21cfd27971847dac0118429b58b34be24f19fefc9ee05f70454e7c350d4a8678e2d01f7db72e05bd1026c45fa9373783b9817efcf76f70b70f6a5ecd8a5bc7c
53 -DIST NVIDIA-FreeBSD-x86-352.79.tar.gz 55381403 SHA256 baf99225383aa1b114c14504d00a400b4e2c72b521941210287d5a2f848a6189 SHA512 14dd0f52ae9fbc88b441392e32df6610121baeb5b08337d7a341d110f2735591c91a789c7825ca95fb542693f6971053a00b3dc4d7d224362d7b12a07cb315d5 WHIRLPOOL 7d5ac1efa1afb5a4cf5ef714b27fbc02190775bd11ae281df5552b836a22bc5377572a310c683d54910cbcbf5a4d57702309e5b3e61c295fb767568f8d8746bf
54 -DIST NVIDIA-FreeBSD-x86-355.11.tar.gz 56832647 SHA256 3d4d5d8fcf558a8f5f1a88846161b1a89bd7fc66c0268b40613c7e3457f5ce7b SHA512 744d9b8c48b82bac0bfeea5e8b2b2bbaa0e6a183cbd1f5d4f782fa7b21a6f6c5b252e556a8b2161c3b5d43938ef8fabf6cb36f995ee823fbf792f3c9a92b87e1 WHIRLPOOL 43bceb8e8d3b00789cf2c8163a055b1d2405ef93e471fda4c4e2146093289891557f4ec8debfe6bca89ad6ed6dc2e389f1d3060759a71e8949df343bc31b85b9
55 -DIST NVIDIA-FreeBSD-x86-358.16.tar.gz 58548165 SHA256 2257d9a2b3661d024be0864e2fe192de34fdf8e206073930541e0fa6f232016e SHA512 e1d84c2cc3473253b31aa3df8e2ad7418da5789e31d6f71f07e6bf5e712ffcb6417cf8931c16e5e5a19d0f4cdaebf229e4edbee53d5613bea1ff6b4e4c6657cc WHIRLPOOL 15b760556d978c9e82b063c1135089e1b1222460285ab2c40d450cf26820e701ff5d7ebdd04815f80a68a07eea0e622fa621b8369883f4168af5b45d4edde62d
56 -DIST NVIDIA-FreeBSD-x86-361.42.tar.gz 64942474 SHA256 46a28392fbe5d1688b6855c37db2e34daff0ffcdfb0c82557878b9839465a966 SHA512 74fdab9a0ef827e227cf7265768c491a1c073da5f7f3445a819749284176b8087f6bb10ca90e555685261af42e4eff9687a6c6fa2af33302b6393d0789674164 WHIRLPOOL 33f7b8ace23e50849ebf5cf4aa50310f1ee92ef17bf9f9797e8db5be3548de7502706624c219269c28e99d1ac1dcf5e114d953399f324835524356cb4bf7f544
57 -DIST NVIDIA-FreeBSD-x86-361.45.18.tar.gz 64962160 SHA256 5c6b04d2ee446e27466935891dc895943797e32226e8e6c486b47ee8e068bdb2 SHA512 fbe22499543e5cc900fe6b14efe12f3cb7c820fd6a1b79e0129d843ed430d77b2cb87365df123612382e32f02ce5d579b33c29c913692178d92683da868e233f WHIRLPOOL ab37570185bafacad0a27fbb0c6cd26f133b5cae34ab4c5535394a0bdc647350248179a296b3642b57700842ed713d12f23b9196880ab86b00163f5281a4475a
58 -DIST NVIDIA-FreeBSD-x86-364.19.tar.gz 65807198 SHA256 5096640e9ad8a774fa76d0b64d94e209110fe58f472671f63ae21fc8bca0b376 SHA512 b2dba9f06464dab01e7fcf2e488d5df1be25feaf66c9138111f1ad6db50ef893783b53d16f8676a853971ccd354b06db4b7ee0a9c48fa757b8acaae9b7ff9df9 WHIRLPOOL 5c074ca0381159cf545ab4a9efb2e9e12822a071e2aa98e9ca2faff46a2d6f8d84e08543693dc3db9b93f617821e9a1787c9e3f5b40e60c1373ee693a4c36bdd
59 -DIST NVIDIA-FreeBSD-x86-367.57.tar.gz 62859799 SHA256 64a0bde687aac1ec2aad859d5bea47d0691b916a851c64992bd460a05ad7c162 SHA512 13269f76d53a1818690ba8fd7aa604783e80059a031e3668c21a70158eeaa97251adda9ac058a712342e95780db86be5b893eebe0422cfce7f1073d88ea9293d WHIRLPOOL 303bebf3d73d8bc232a188c9e3a23164a70fafdd44974e5f5b1873488f682979702e2f18d838d85072a22520d959ded6bb3a4b79cb3d7cafc5de0feca6241061
60 -DIST NVIDIA-FreeBSD-x86-370.28.tar.gz 58718517 SHA256 52193b15b4ca822b029f860eed4d00270c925f5d24f7bb511a5b7bbea696d58c SHA512 83ffb19069cc240f8836d808a5eb02c142e7ad923fc2e3049a3b316acc12df070d42dfdc5a8a8e1411ccc9fba0bfa4ed84f457435e985434cd86ae966a63a3f4 WHIRLPOOL b1bec4d5e34ea39c3b1b44adcf85b7392cef39517979d32bc800e48a79a57cfb5f1ca5ff82bc302aa67ed12094782e09ab146f021a9c04e18430034a5ab341a9
61 DIST NVIDIA-FreeBSD-x86-375.26.tar.gz 59091851 SHA256 5249d01a21bb846a08975c4f3a90935b6dc8fd33ec8e5faa0d624ef15bcf2b88 SHA512 281f41f341ccf7f7c1e0de9a6519813c7fd2d13ef59001c0a6f126cd5b8f2b67848c780ddaf6647e0c8b9a79c12ff77493c07203510084e741746834b26f5fdb WHIRLPOOL 48e5f810f41337f6b8f5db419288ae5050c3efd71d0b4b7f7b64251612860d5c7e83cb78885a73f6752160ca8dce852560db7d95ce93d5d86dba21e59bae5e77
62 DIST NVIDIA-FreeBSD-x86-375.39.tar.gz 59111267 SHA256 ca39ab55716516bbca62fc888ec786745a8df7f346e68703f54e1a42afad733e SHA512 8f5bf9ffc731ca90a2604b80c3974ee123a12d7db9ee9be1811f5e78711798d7a29737a3651406c1c5e24a197d50f2f2fc39d94c8d11f9700900ef13266a5bf7 WHIRLPOOL e6ce83478238b2f6497ed48688531a6ba4bf78baa2d376e6c8a0f04b35039ed1532a4618f8a53c60ab0778330313ca1e9eecb836a4ade4c5b006844386d4b23f
63 DIST NVIDIA-FreeBSD-x86-378.13.tar.gz 59610253 SHA256 aca461f050950f1a3a81137ec8adf2057deaa20ad166bdd4ce8f3e34616e7a98 SHA512 a0101201089df2bbf5bdc4ded2228dd989da6a47da31c3ec8d55916b1ff3457924555f82c7381934745fdc1b1f8f78e3fc10e5089279eb13423628dbfe560c6b WHIRLPOOL ac67d07d3ffb0959f685b7d59de152ba8fc97e11c30ed3f1a200511bcaf3de1cd1879147f37fde66a1c8d13dd327aac8a9ac78d42cc9656ef79e3180897aaef1
64 @@ -20,20 +11,9 @@ DIST NVIDIA-FreeBSD-x86_64-304.134.tar.gz 36148973 SHA256 3eafced8f8095c7f1135fe
65 DIST NVIDIA-FreeBSD-x86_64-304.135.tar.gz 36144428 SHA256 0e415045b96bb272150d35d72c4a17c3d8e7b593dc7ffc577f6f25cc04f9de95 SHA512 8939f0153e7dc98ed147c79a042731461f87582ef46c4762afadf6a5e1cd0ca32ca99415a3819f7e5abefb2df5c59731454e80873d3d622b73f27e75518c8793 WHIRLPOOL e8689e07f12e169f9abad243111bcddee7796826f0028d29bb5eb340649696a3688a74068f07f52d6764fba9924ddd1dba18e8ae442654fffa9b902ccbde2c7f
66 DIST NVIDIA-FreeBSD-x86_64-340.101.tar.gz 60860185 SHA256 aa75da2de6656bf8c4b8cf73b9e330b21ebc5da6de509cf90aed8a571716b111 SHA512 0a69e90c2ddd574736ae666fb0216afe639423c8bf73c69e7403bbd5e2aca640f130196402d81924137b34d30befeaaf8174a3fe3ca7efc16a2c5e650e87ab99 WHIRLPOOL b7652dcfc6116f865876cbb43807b1573ee6506e8f626a0da9123efe6fd6987d6bdd3c78dc833a38f0bff78ea290c34ecd69a65f7870248ac2c1bdff6cdb87b5
67 DIST NVIDIA-FreeBSD-x86_64-340.102.tar.gz 60862932 SHA256 6d1108c2e8d1b25eb16cd8dc4eb221f2a20d2e4c39a515c0b5809fb407991f94 SHA512 fddef644937093550f9e5dfc25dc5cb81280785735c2d11f644b5eece8144b23bc88a353534ca95e925f54da9131ed5dd7460b72e554b6625df33e243476588f WHIRLPOOL 0b19ef96124768b8cafb0211a79f8ba6e3d04d9289d5194a59fdaa4eb15ab898c103346892007d9fd6eac75d6d503cd9724ab8f60bd7cf28fee2f9307b03d70b
68 -DIST NVIDIA-FreeBSD-x86_64-346.96.tar.gz 58774970 SHA256 89daaff29afe92d825ec8c00149a703b4eb234e4f16bbfb98673f077521bcff9 SHA512 99fd84f1b2177b4af2fd83088c4f8a9a6259f059c002a771ff9c3993953787dd96f83322e4ce611234674a00792a83fa439af915d6ad6886af6de2d88de94edb WHIRLPOOL 5bca7c540c713b8e070b7d8412bcc2547335b9379429dc3a04ab50eae22c03eaa922486a900b2ab3cf147e0c4f2e8d3b60e81aa329b6b2956c28d2b32900082c
69 -DIST NVIDIA-FreeBSD-x86_64-352.79.tar.gz 57044396 SHA256 d2a406c4a7502096964b6fd19e99a046a0106a60ffb9e45865156c62718bf49a SHA512 7fe8564744e522b0f8ddb2fb3bc44235e5189d87acff1f894f271404315bbd17ea41f469c6cdbaf51a27f85e8103ed3cec574ed29323deeb56869746691e977c WHIRLPOOL 677b670218510228d9a03dc0f259e36a5896124ead204fff2d294135c1b7d79dd10c0b2e144e79a68d27b282e12097adf76f8694ecb5daa53f4b689935130c6f
70 -DIST NVIDIA-FreeBSD-x86_64-355.11.tar.gz 54031364 SHA256 3637a879905bb541bf02f9bcdfe37c242a52ec6071671a0ba33581efdce1504e SHA512 84add7d90c7f45d19d736ee70c1c4a6434be1c512bafa29cbbf9221e99a31fc383971696dce99da5a77a171eb3537c98cfec7005ff061411ac9c310fa219c906 WHIRLPOOL d8ade5d63c3ef78fa92f9dc07934eed8fdd4ead1e40f1820ad95feb166264a95a800879e1fc6374bf2deef419b0838b4864796d9f81a81110d06ccd9b65c459d
71 -DIST NVIDIA-FreeBSD-x86_64-358.16.tar.gz 55338634 SHA256 29b62c266bb96604e82c5a514aebea86b65057fa59ba37f91bd01cd870a0725c SHA512 2e5aef35d5c4aa605ebe18a23ab132fe373c9b87a915ada005ecd28d75a476d6ac9d978394f8c63123f98a408dcc97d624b5deda5f242faea7304fc8ddf76d0d WHIRLPOOL bc8ee78214209fdeb0c6fc196cbc3acc244c777df8a83b5a5489959a73b744ecc125d7a9be6ca2f08d43b6a080898b1090eca45e627c96210dcfeb6207512c8e
72 -DIST NVIDIA-FreeBSD-x86_64-361.42.tar.gz 61730815 SHA256 5ac9a081d3b27307d79a20dfda82de38c3be319a93dbbe80b3458c0c521fb723 SHA512 d4331158b4d2a75b9884fb8999c6ae9cf1a0697ce1d4fcd8bd5e2c3d6043bdfd1bdb7665031828dd94226f9205d2c8a4a2585cff5fef5548fbf5ffff531e0e2c WHIRLPOOL 01f54f0b8bd25f7af888e27223807a1a182adca1d427d03500e9ec3b89a0f618bd2fb91fab4853e996cc1b3115680859b4fc91fe997ed32c36f75fb25da4cc43
73 -DIST NVIDIA-FreeBSD-x86_64-361.45.18.tar.gz 61749816 SHA256 7edcb70fa7388fa15fc949d5bfd2c952b66d3fe6f7cb1a0a9c415dbf84da5fb2 SHA512 27f5f98db0a41938f9c9ca2433486fae8e90136e355d51ee49ff4932f45e0e073f79a1f7e693fa5170dd3367e148cc04e51b440b0d51bdae0236e6f8caf3f01e WHIRLPOOL 835c1a73ae33113518d05b7a1a864d96f22c2a0a8c6993d56884b1b769b2a0d20943a36eb366e32f9e7ee52af67c58d23d8062791e35220641f5210f0eefe134
74 -DIST NVIDIA-FreeBSD-x86_64-364.19.tar.gz 62553892 SHA256 3b691c259b2a85da49d16ceab52b62363496fd764bbc3772e30c5f138a832ec3 SHA512 0e0cf1cea93a8e272bb7e7a939b73ea5a54888b0d4e870472cca92bc0f07ca7ec33616bf0a3f8f741167b7ffc173813574da541fdff83d66d19a230a07622b21 WHIRLPOOL 29945d058e24967afa4c5fdf71fb70f8bd8e0a80b6280d4a0ed47b27bf770da384ed04534681fa25869e3d2814400aafa0c57e44d6339ff2d16f5039ead04a4a
75 -DIST NVIDIA-FreeBSD-x86_64-367.57.tar.gz 59604884 SHA256 6f2986941a9f4cdcb3692c39919e5eeec09f2799b7797d3c0be0d4c61f7eed5b SHA512 06e4fd656efc88260c10b2a86308461754302dc9bad88285efe8b864012806f2d7147173ded9ee7b4ef2518ddbd6f02c5d36b184f913176732dd90cce0df006c WHIRLPOOL 9c33dd392ba0335b08c7710aaf97564d7cc0fdcc2fe87ec67ae1932848dbd6e6ad0437f6b44409b11cefc7ec33be7656199dcb2a34ab296f969fd65243bd114e
76 -DIST NVIDIA-FreeBSD-x86_64-370.28.tar.gz 57905860 SHA256 5087a93af8aaab6cff35ba60c9d67b4249827f6b7681abaaa571a20784a54552 SHA512 40637d64a0ee5029bb1c5ad7a590c5be61253ef6283c4217666768ad8601d7f51ef0d8705c8711f65c3d0a5a5721490813220c5f9186c6d2d12baf5d9c11122e WHIRLPOOL 361648788b7efb9e550b3e67d2e6022e31dab29f5660c42a1b6c961fe4638216fb8785814ee9fa1636fc39c39afce7caffbdc24fcf8bbd14e4eec5b5eeaeb1eb
77 DIST NVIDIA-FreeBSD-x86_64-375.26.tar.gz 58287080 SHA256 c7d32cb434f9a7e84903a1305d7577705f991fdb6eb4ab3ff79d41b2df82265d SHA512 514c92636eeffa68cea5140819a9ad14888c18c1c60b0865e5cc9f9896b503f22c1236f76e65ed5e11cf3685ceb483c78d2a442b4e9bf274ae3ab399cf40ed9e WHIRLPOOL aa4eb254a6f3c5b0a9b2aaab12a011a92763e7a966b31840a595c18e24d82935dbe0ab3faa4c9aeb7ae24ec7505cb60c20c1e117396cf0527161a2aa1face296
78 DIST NVIDIA-FreeBSD-x86_64-375.39.tar.gz 58308585 SHA256 0d58c450b3391cf28655f15505aaca8d011590efe5dd3ebc6a3212a9d7597b17 SHA512 2b9e4fe4c850c59050d6f586be743e6e9511d12ee3e5f760b6c6ef5ff2084b7bc147267a7844191db1bfab842806a47054ce8f7534d5fee614efbf08e1faaca4 WHIRLPOOL fe195242a1a3657609eb9ea0eda27daa22fcc40beaa35e3cfcda575978361f68da27a46411ad38a93bef333bba91c06b911545d4d14f19b3dd2d085ae7012408
79 DIST NVIDIA-FreeBSD-x86_64-378.13.tar.gz 58779963 SHA256 451b9e4b2da86609c760a9a133efa8d37d844ad036299689f007c90463a7ca39 SHA512 34cfc383ba196ecec2cd27fc12bf30dd58f8782b73414e7b4c182e832ae0dce1f8c017afbb2101d7525d4e321f80cac49d3b578a8fc0cf88be9310f4deb77057 WHIRLPOOL 23929abd50467f267cf6b7d58a49fc6f667036b7e92363cc05b021790d0d5ebc61e181c3b2e7c32a6338328cfcc05311d74112b005d638c0295b2c6189dfa3b8
80 -DIST NVIDIA-Linux-armv7l-gnueabihf-367.57.run 25701866 SHA256 e856debfabffe0e4ed2900e4acbc8e68340c4773651ec7a0000659588431ef7d SHA512 2d1221b8c6f01148412790c24f88a74104da4dc40f30ebe57a47468818c811119ed629ffa565f3ed58ce0b12b292b4304a2b364a83faff41ba14ea747f4e1c88 WHIRLPOOL bf7011f50360516f76ea5e176aea7d761193de877a5357a54704c60d512faf1af8e8e2450c547b5181fba98ee627a297b1c573e147c4db623324c1c35396330d
81 -DIST NVIDIA-Linux-armv7l-gnueabihf-370.28.run 26117701 SHA256 efb60a23aa22b46e94e91d5f5a5fc0c17b47bcf50471e4371653ced5a5350dce SHA512 04699849441bccfb9214fda4c7ff8ecefa11249d1fbfe470e37fefdd132becc225a1bcc16bc976c3fb145a427961f5402c95ecc84b613adb71caef9c96fe7d90 WHIRLPOOL 675a495594c46666ec11c83a76cdc8821e9b57079ee53cd7adcf00e783d121e163b7c5b10598aa55a1fee72eee47defc514fba986685af41c90ab2c5d890abbd
82 DIST NVIDIA-Linux-armv7l-gnueabihf-375.26.run 26735389 SHA256 8d2b7b36e74ceb1c439b2a5f8d2cdf009fda4f668509bb5d45171455abc774b9 SHA512 f18031c9b9ca6825f93f433d3f59b76a380a12b55e2f4556c2a1725fcdbea58176f22dcdb322f20e27d524f3fda75dd4f5a2a9263268411e0f5e361c580d865d WHIRLPOOL 4ecd41bebae3df91a39612849eb6f7e926398e906d2cb878aa788571976fb1cdfeabd47ac0cd3db26c4a0408608b8dfbc3815d10cdd1acd8eeaba6ed5824bb73
83 DIST NVIDIA-Linux-armv7l-gnueabihf-375.39.run 25350238 SHA256 52f512bbb3e2d5747df9b294667df9975564408c5ce4f3124aca7dba4355a3a9 SHA512 d888ab0c81c53138eec06e25be683798b5459a6862affa92429feb1e63fcd4cd7ac76bd78eff8c1bef245a25a6a7eb77994ad99c15ed65e8be1a64b3e4c45030 WHIRLPOOL 5714fdcd9e226a336e0abd46bd8a91eef486fc14de543a98d284b3ae3955e924dbde10a08144309b6c0b4e19fcb011bffb8c046a05cbe05f6123b22d270e2939
84 DIST NVIDIA-Linux-armv7l-gnueabihf-378.13.run 26514235 SHA256 399abf527d84e4b4d01ea66e0de4a1f9b1b39871b180ef3bf99c4718ebe3db91 SHA512 253786a821df85fa926ae842114321b3c70502f887ea7c2b6790dfe3836039ee5d390e6722ca8785904ec6487e465916923d3042dc6191b3b4522c3161b80cb0 WHIRLPOOL 154b13ecb368716980ab779894942831c13e4b2d47c1d5765ab14590663b34be1571df7934e1277c9a29cdfe93e209a04e2a9fed2830c407a42547433fd9e721
85 @@ -42,15 +22,6 @@ DIST NVIDIA-Linux-x86-304.134.run 41201159 SHA256 84f7891af131bb9f9a8a34401dfef4
86 DIST NVIDIA-Linux-x86-304.135.run 41202842 SHA256 5cb0a191ddca7b4c72b3c26cd57b7d719878ce628d24b5b026a0e5c8d3a00d93 SHA512 c2645cc9a6f23641d8b6da51e72e203980068c05e365fcc73b32322a6875ce95e81f4e0d893276e14e84e93464488539c16db6b3be04f5324cf7d7a12bb557f8 WHIRLPOOL 79d0d0badd36c94f3d48eef2c40184ee876bf78e153b18e73521fbe756cd78248da38405e7c08abbfa400ee8cd8150d81987bd7f45501937a77c39f7fc9a0ee6
87 DIST NVIDIA-Linux-x86-340.101.run 38932143 SHA256 5f5eda9c3d9bf53b56ef4f546dd1be5317eed46df425edbdd2c34023fb9eb062 SHA512 5866f2b4e6e22863c54d9fc08c9c88c9c911df2396d0ceaca653ded04589ea3a9e4550ed58f4b182b0a42cfe205ef643fe43ea709478e5df5360a7f74fa87f41 WHIRLPOOL d44d6075dd64804cfc3fbdc28510defc7796a2f22ac24625aab8552bd8bd6b16f51dea15f04d56f7b53ed3df514a92582171d27ec4e9aa099bef2d3e940a62be
88 DIST NVIDIA-Linux-x86-340.102.run 38779756 SHA256 61b13d5dae0f6f5d788a4d8c4c98e8d971d19cb90b606058060d007946248828 SHA512 bea700c925a6044fcded40324bb389c5fa1aadc40831f685a76e7b0ded11161f492960950c201467e564d157dcbe0c330d13a2014f51d0073002c5a262a6f0ca WHIRLPOOL f7a3e3c5f8bb9eedf0a93104564d3d9c3eabc39a807c47e87f84373f89513afcafecb94e602b12fd24f872971f2d16a5f945326c670a6eebcd9ffcdcb70cb99e
89 -DIST NVIDIA-Linux-x86-346.96.run 40751579 SHA256 8a299ddce7d34389206599a306a41d30754bb9bddda1be1a7fd85012f9aedf39 SHA512 9d413dd0559a4035a842527371cb1a27030c9eaeff510e529d2a205ea3eddc6e5666989418a6172aead4f5b2a924cf4cbf05269cb435dc2516af37eb35ba5d4d WHIRLPOOL 055127105804f2a6dc5067b20e771b4c12ad9dad62f4e874719385c7115e8394a8618eed3d6b330c8b5d90cbd3ae7fd09998e2a0017e35b4adca0f626110f238
90 -DIST NVIDIA-Linux-x86-352.79.run 42378162 SHA256 2929d6e509ed4502312c1b7384f6d12cb63bd4af03fc847a281d3ccdd4db4f69 SHA512 d2b50e55110f84412fd5c456849ceac0537ede643d12d1228cdda9dcca52f1f9d0a6e5a02eb4ee32cb68bbfa5adeacb8e4fc4e299848f70954d032daa989c122 WHIRLPOOL 19153e166b561dcc04730b6439999e625b5c4358f69d18127cf347cb86d39cb22f87b75d2623916021e9e774d234d6b41c3dc91f0524cebdf44f2a3007d4b8ee
91 -DIST NVIDIA-Linux-x86-355.11.run 43569515 SHA256 94ce6b879581b931b84d83a9111040b9a5aa9306b012b4380cd93f6ffede3066 SHA512 450caea472c5e1b3d7098adba28d18c1221cf809c6bd0071466ff2a946dd0eca6555475f5f6bc044fb19a21c8939b1020357d4aeb0ce47d0edfcda071a66fd46 WHIRLPOOL 3a95e83ab3f46e64150caf1489aa3173aae69919bf432eabcdd0501de8bcdee5402cdb33e149a4d5d429ccb85e4b4af9b30bec5516ad7b7f091ae42f6093d26f
92 -DIST NVIDIA-Linux-x86-358.16.run 43972195 SHA256 d3a2842cbfb1163e20c658fbfaf5a235d5c9f035cd2d657f15df8a14b3fe80b1 SHA512 a5d37fb56a59b9958f6c34139250baf13a1c42ffc70f7deb19ffaac1ae6c2ce80b96649c5797d60754050d75792d14141cd5ebc8820bb73ee4aad4aa6d6c5b20 WHIRLPOOL 336e56827619ad53622c3fbf9fb3e9895a08b8500b81f3830514a34913180e3dc5c6f170f14675fa628e2c9658a084d7f9c45f47213d28335ecfee53c8110907
93 -DIST NVIDIA-Linux-x86-361.42.run 49273826 SHA256 e32d047f62da3aaabe718a5b835e6efa2c0265e76dd0f4e6b9af35266b6e4e82 SHA512 f20af256d3ab4cbac0bdf59ada558c27827439ab0170e22824bf10f52a4a7944994904db8b062d0948f2e5470c3220ea4ff6e8dae74000ae29d2badc71022cba WHIRLPOOL 8d798514726b9d36777464ce13e8ddc8900cf831b2c878cee54ca17e0af3af8c8800f3ac5130b9066aa94b02d7997e06441ffced9f89343277534d9464d43f8e
94 -DIST NVIDIA-Linux-x86-361.45.18.run 49760149 SHA256 0128d396b90cdd84446a893439fc1a76d2e84cfb057a1837f2cb804a4bf71407 SHA512 8f6b7fa4ecdea21090e56d4227e50186c8ac1009006c8e1848f118483355f73cd63c7425477dffc523e7b61acdf7b1cf97a66a4f61c30a57d6ffe3efcbfd1f70 WHIRLPOOL d1597c2b6a6ef6dfc7b8178ab135ccf8014e80d7429d790a4a6bddfe0df32608472513e87464069624982d7aada73c50f1852e392361727b42a649962f2c0237
95 -DIST NVIDIA-Linux-x86-364.19.run 50074922 SHA256 9f891d4b22c43c9094b59af5c8474e29c70813110b346834a5cad81a224d4112 SHA512 2b1cb0769d8c4d817588ab1071dbdbeda54291274392fd74009fc666bf198e6fcba1fe15db9d925a56ef98b147b48e58042a079b4f5773e95efe85531e25b01a WHIRLPOOL be7c48441e62c7038b58a3008dcb673f26607751ab62ab0197edf5d165b5d1ceb64ed654fd515746fe3cabe81d286e14b8343cf586cc5cb4ffcedf1f6df7eeeb
96 -DIST NVIDIA-Linux-x86-367.57.run 44731570 SHA256 43d4e926f71ac6c581018badf467458709822e97a7564ed9f1b521b7b63d88bb SHA512 6316cdd94131057a584b3a893cfbca5e8b0f5e79060cb5bfe2c149b5a76bdcdc21d20338febb54f7201985c5b05545c3f6b63b26c32699717057cfb047993972 WHIRLPOOL 443ca9b389f78c13ae5344cb3cce67035a2b5a605b94518d91c253965263d37a84dff9ca29d47509a2d43017afde4786a55bfd45613882b5d4889dc27b67622f
97 -DIST NVIDIA-Linux-x86-370.28.run 44189522 SHA256 6323254ccf2a75d7ced1374a76ca56778689d0d8a9819e4ee5378ea3347b9835 SHA512 2df8b3d1064073c8b793287994fe0648625d095f3434b7b67531e19632cbad318994df90b55de18aa457d55a1374b35d64a646564259995d3f2197c48737921c WHIRLPOOL 85a089c833311abdc06bbc1fc68cd5ff8ed43dd5e5887d340dc854f905ae741de0ae4343d024259f493dd668075096c460bc1f93c1795d2befb81dd3c4a4983a
98 DIST NVIDIA-Linux-x86-375.26.run 44541069 SHA256 7c79cfaae5512f34ff14cf0fe76632c7c720600d4bbae71d90ff73f1674e617b SHA512 3bc859a95469a45f3c627018248d83e178d160385c3d17d9f890b0d142ecd1220fb21c442e4fe7755b831227a9c820736f447b162acd9699819c6e8145d6d841 WHIRLPOOL 33ad62f7021f38fd9dfa6b0fcfbc0b69a263409bd5b3b8da8eea6aa9af84299f0d5318bbc8b54139b1744b96fa08114029f8cc70b4f80b0fbd2d76efc47d0462
99 DIST NVIDIA-Linux-x86-375.39.run 44434734 SHA256 7f33f6572c5c5c57df71531749c7339309a2097918375685ea8018826cf19456 SHA512 0f4e784f69f7b4c4696b62779892d8e77aef0adb701dcf5e844027e3a1870aa56bb913bc05f30b079c2519bdda87fa0096d612e9d74ea35b97882fc54fa5d2ca WHIRLPOOL 1d1e6a49d86a72f38d3c84a0b75735c9b64b0bbc75bc54e91318b316298609dd34ab3affff5795fedba44133536e22bf287a76d8271bf0cee990204a383e8a93
100 DIST NVIDIA-Linux-x86-378.13.run 44397547 SHA256 05e62a6098aac7373438ee381072253a861d56522f74948c2b714e20e69a46b1 SHA512 b96d2558a1003a3c66cade3a1e16abd34d855c0e27cdebacdc0495e0ba3cd5c68bb84cc5f81bff1b9ddce36ac52e0dc125c56d868b77d7c8e2f606d559b13b4a WHIRLPOOL e8231978664cec766813821c0f363ef437ba627debc2d2664164fe44c344c480c50799710dbeeee782fdacdb66b16317d69a9dec4f21d347dc40e471201b3ed1
101 @@ -60,15 +31,6 @@ DIST NVIDIA-Linux-x86_64-304.134.run 69761152 SHA256 a014261a28a0a9829d255a5580c
102 DIST NVIDIA-Linux-x86_64-304.135.run 69766944 SHA256 706269a507995544a24d24b3386d8f7bddbad3ce52167fae0da9e00dad8ab588 SHA512 1b444eb4af219506c88fdc78746eca1afb8571017858cb387d8546f1950d6d82c1077c74e9bda9ccebb0e42bc5cb4d50d9b8c01989ae4cb52c3fc069304b7ab5 WHIRLPOOL 1fdb38f634ad8e41e37e1fb7d84ffb22566b4c5e182aa90f6a034db99c251864759909ad0b9db77ed08645c0da50362e40bc37574f526d58bb3eece7c37772a6
103 DIST NVIDIA-Linux-x86_64-340.101.run 70042051 SHA256 d2cf81b5994a1728dc4851cdf0480cde0a34b040c94de0d5265edcfe3b90680a SHA512 64e3acee913864296421f0fcc44ffef0d89d20fc9f422e61f9a30a0c867ddedd2e88ead4a9607842a639ef593a19e725b70cf4ee051651d1d2ad48f3c5a189f3 WHIRLPOOL 59a7c3b40ae75e0fb3b7ae2c1125fd73071882347cfee6b6c0b76e9a117dfaa93bf6b391459f2ca96c50df24b220e5b8941e02f4cf48e7ae0833af67e180b195
104 DIST NVIDIA-Linux-x86_64-340.102.run 69960567 SHA256 2b96d2f26c00405471e0ce10dca0b6639e91aeb43f7c5aadbdae28445a28df5a SHA512 eead5b6f18afd5384f30f36a9ef569dea7d6ca1dbc590f63d603694bcc6a8bf251942b36ca606cfd5e6775ef180cd564f3cf226a3f4c04d7ed354204fec15577 WHIRLPOOL 6596a178aa35ac841bf287fa1372f6748cda0430c6b4bcd18fa63d63030331df59e75d4a3dde63f28a6fa15cdfaa90d27136c96e9abe81fb05202f00430ecaa9
105 -DIST NVIDIA-Linux-x86_64-346.96.run 73538317 SHA256 229b28a6b65965a248d07223d941de7d79b54cee7c6574f1037293e8a8026727 SHA512 188f8aac88085c3cac9637e87f4d9259d0c508075bbbf684775650a12f4760f47ba9e92f79e8bbe96d33ee014092edd38efce7dd730f67e0f11c2079eca938c5 WHIRLPOOL c9f4a5163018dc0b53aeff84b410cb34720d06ca7bdd17ce166ad3a2b057ffe94e6773594cd617fce79d9d0a02e5e1cd0525ca30dade7247ad5b7b20ff661a64
106 -DIST NVIDIA-Linux-x86_64-352.79.run 77140528 SHA256 e05a825a5e0027f062b1a1344ff3484286f50df990d66d567348b80101a0c4e3 SHA512 b54257e9aa6f6353d4f149d4dfab5ea12bf1907260ad98fd9102da1b458c1cf32e28707c8c5136efdaeccd0f60e6e013736b349a59ea50044dceddf265afa38b WHIRLPOOL 25be659c5784558c42c4f2fb0b50d5d56c0419f175ad8c019e00bdc033707297668705e051e4f176fff67340ec68054848a8b3aa5a9922ee0c9f9a270787a6d6
107 -DIST NVIDIA-Linux-x86_64-355.11.run 76490009 SHA256 a59b425381add9d9058dc2d987bf3087ab59c43224b5eb04c3f273f5886451ed SHA512 bfc7ab7741183408aa0226dc29176c8ffe08566fbea7cebf78f4aa30627dc27ddf90bb82951c99006b34bc481be15712b4f5867ef543a32bfe3fe81a8e6ddeae WHIRLPOOL bb5d3397a855a53c2cd7e48056564085b906550f856207932e4670fef995030a3a7bcc0a9b97fee2e60aaff9b41c4a954afc57585441f5dec92c795358da810a
108 -DIST NVIDIA-Linux-x86_64-358.16.run 77353969 SHA256 a942cdb29ed715ff1ce25beb06b6c2490126b98ef8bee5d9973967b557596bf2 SHA512 4ae43f5e8c311d6c97eb89b02504bf52e3a947c71662f30641988a78eb9fe083370124aeee3b89db74f8ee50f454338db98dc7abeb35a242ba5729fefccead77 WHIRLPOOL 3dd0dcd4b455fcac12d55f40cfb8db0536af82d90c32b8471528b44a9fa1b3f3706ac26558d7395f82649c37550fded17b48d75d5584b3a41390c94bb1135c48
109 -DIST NVIDIA-Linux-x86_64-361.42.run 86760004 SHA256 b7011cbae605bed5db7082d7028db3ee5d9a37e802f26a095719e7cfa5716cba SHA512 7a018be43f810f1cd674e0817d2975e0ca490149809455f014cfc3d0cc550ec60c1097d7442d3fa302e03465172156131e4e99523f509c6d010c61eb01369bc0 WHIRLPOOL 3b3c6f8f0ee2351bee6d0a36b8279305b1cc4ee3a980402f8736047181be2df822c773c65914034efe8e03d8b6e20a455d47369790cffe5d9dcd282d5d429298
110 -DIST NVIDIA-Linux-x86_64-361.45.18.run 87468802 SHA256 fb43b321609f314d39435a1146392b4d3920dbce593dcd19b3848a056e91c570 SHA512 a085766075d990b11586c701e2efe758a6940b5f3ddc4db8a3840f7e587e82785e38473ab266535f39da0552b95ba97c789398ad6c795041c7073ed301fba8ec WHIRLPOOL 37d30388937d2eb0797a094615057c936d9e0c9b176b52605b277a2c5b35624674de67adcdc7ee55312498611a5e99fc24af8eca71bf04faf64bdfddf1fc9349
111 -DIST NVIDIA-Linux-x86_64-364.19.run 87961023 SHA256 7b8680a815ac74d5b3a7e3d38113b05ed1e2ce781575e966c27f68457aaf694e SHA512 c02fea3eb0404e9f17eb6fdef43008c09653239b884fc599d3639f50a36b8d2708539c429e4b3be96d509c83ce5416145add7f152a3f08cada555617e9fcf1fc WHIRLPOOL 40c19fb5bfbc3a6b2c631e7768a04af9b250b4e8845adbf40b6408e2e7c6bb5b2b3142760387995c83450490e26591029d44aa8a6ee7a7b39a50128c7e4211af
112 -DIST NVIDIA-Linux-x86_64-367.57.run 77127324 SHA256 a1615db29f1377817b610cca997e0339753ee9d58b28e1618b892691df3a8851 SHA512 fc94f5df7eb2ef243db381bc4458f911a6d76bff949701bedb249a3ebf369ff3da8dc5a7d52ab6ae3f23e947c419923f303cd57429a266a0f8e96df1039b1f5d WHIRLPOOL 5580b7839652c250ba134ecc97438d1810453d5bd5d8cffd44f01379d7509bca6f0c58318a150a5b4786f955d4de708ce9be618572212eca2c7098a36eab24d5
113 -DIST NVIDIA-Linux-x86_64-370.28.run 76690360 SHA256 90aa3c186e45b39e6fc0064ab8dbda8bcc897cb61d2e7b7cb30b4ec9a4b39239 SHA512 931476f92a63d142478b2d6b3da4031769fd3b93aee2387800a78b1354b59a5fb5e4e293436b6b4c246627d51c0f55d140ab230de385cb1567bc8b25518eb741 WHIRLPOOL ce866c38291d2ab4aeeff05654a0e61196129f77baea5af93ddbc22fab9574ba39cc05d58020ea2407cc7342f0bcf5c2702d42290f4cc3b53c9e04fb7c617413
114 DIST NVIDIA-Linux-x86_64-375.26.run 75869960 SHA256 4f42b2c3709dc2f11a1deca89628582062f4e9bca87f28a4fde50d25bd4a1ecf SHA512 0990ac2e7b045bf62a8c58eb7acf91458756de91887d43486d9754bfc1493b28193072a9687d2d892cc98aaa4e584a8b2a8471756d4f19965da904d51e437dd1 WHIRLPOOL b9890e705dbc3e967a978c5f823f71a418b03aa1b36669c1763559ed81a6a103e9d011246ffe049eda899425e254e8955b921ea9132a8d36530dc4a230cb4832
115 DIST NVIDIA-Linux-x86_64-375.39.run 77264092 SHA256 91be5a20841678d671f32074e2901791fe12c00ce1f3b6b3c4199ce302da85a7 SHA512 9a7e865db44f8e65be257b26250adcdf6f3dfac4e164f14a42b8e03c576016dfedf152d6a6cb84fb3ae9930d2b4ba472a63cf32d557395ff7fa429d9b8c9ccd0 WHIRLPOOL 03a27813464847958d9d2adb0bc260e31c6458df18e567c4c36e1eac5f7288108f88147cf1115f360b159a6d0ab459692abb35a79879e19fec2db30709802df1
116 DIST NVIDIA-Linux-x86_64-378.13.run 76239469 SHA256 3de379249ef25a8c10a24be2718bf1cb2e338da204e37874c4a0c66dbcdf42ee SHA512 2f6789aa0a400c035c0a074631dc5c26abb4f8a62efe928ca3a2865b89d29acfc09c27f23a664e438275e4bfd25c261745d4d495f9aca5f54ee6c53a389059d2 WHIRLPOOL 6e8dcc7be0981591f377babbd9e1430fddeac9a42291f36a95243d418882bc8b38a1e692e2fd62d4b785feca93165e54a64c015bd99193c699831465f512b180
117 @@ -77,14 +39,6 @@ DIST nvidia-settings-304.134.tar.bz2 1480967 SHA256 8e562823fe9a7b1d33775db56050
118 DIST nvidia-settings-304.135.tar.bz2 1480857 SHA256 f5431a6547d7727506b72616156c18f927a89c0702e7f939b5043fdb66e4faf8 SHA512 ce77819c223d02bc5330a57047b45cf9022159b0d03b3fb1572a64aebbcb5872312acef3f56e2574acc4c2c92eae9ac6e602327fd2658c47f2b97c69cf61ebfb WHIRLPOOL 5fc6c4ada22d8a1b0cade4049691c013a5dfa0a7777d7789f310d363c9c4ed5cb724acc153ec562fcc2266228325096e3f733e8f1517a74c047388a4361d25d8
119 DIST nvidia-settings-340.101.tar.bz2 1550221 SHA256 e98d2816f30182826aebb4315d4069d212709d28c129528295c012e11c5c5bd5 SHA512 145cfff7828b61566c13644d58e62495e5dfcbc0d24c49b04b24953d6822bb406de166879ef681a9ad6a6cb64fbc85948a93afb2f63f4e0a24107818eb0f2882 WHIRLPOOL bca223365521625d30bef14a752eb02d6166ee1e988087c584c0f325413cf0d92a67989d9f456f16b09611558af0eab4f8f3a37894db8c1df1fe3446bc3975ee
120 DIST nvidia-settings-340.102.tar.bz2 1550093 SHA256 2895d4e2597a6ea0c425d74c7a0808775065f5cf58397fbbe6e626b00c60a55a SHA512 1ab190d8bcba7cc39d47f38db2bee28fab48d48c9a6674c9ff29ea3f51103e13746ee1df2d30581bd8259fc1104fed90b36cba88907bb2f202c931d256eab66a WHIRLPOOL 58105b371bc7156c2749f4bf85377f06fca71eb0a933721d70987aa53bb6c94494de3be25363ccf326105ca475405dcd7c884ceb6158df352ac6cc70dcffbf7e
121 -DIST nvidia-settings-346.96.tar.bz2 1558100 SHA256 b293f269aac01dfdf59e9dff46d774f7ca77d4628f377c01cabfbfccd28f3cd9 SHA512 9ead0fa5f0a55c1080d9b4da6cf96c2435c1a166297187f2c7d8b95a9e66c2e9cdd2e35739a4304b02ff1ccedb0421a7dc99a546df3a8f18804da133b93f50e3 WHIRLPOOL 4bddea94bb4c0dcde6b2b06507ffe890a1996471603de2d494f54b783cd36d44aa620fe03d16bc104ce99d6371a50666b0f029a309b78226810761cc13053f98
122 -DIST nvidia-settings-352.79.tar.bz2 1570988 SHA256 1f103cbfe162281355c484a5c3ef9ac1bb0528acba2d229111da7e58cf18f217 SHA512 d56e20844bf71d55e51aebca38e922a2985fdbd4edab29a07f9a4a8a0b883ca469c3b949f048837ec77464da90e2d485e5efcd314afc2810c44ad7dc497b53fe WHIRLPOOL 51999a744f6b3e36c4d12f841c136a754533de09c1802f60392666392beeccbb0bf1489269cac33b12ccb061554609d3dc8d8ffbf45b4cb860108fd9f86e2139
123 -DIST nvidia-settings-358.16.tar.bz2 1571104 SHA256 8cd78df738a824e282771755ae9a41d5b194b15f9df96b9fd23fcf3005967d35 SHA512 0438aa2599e98f68a04c9f663f4ef9b05092df512fbca40ad0fe17e25ca4d940d02cc55e9fd44a2551950a2a30782d1e48553c4bebd071bfff280869a6dde556 WHIRLPOOL 60b7e9abba3163ac877a3a9d944cf72352e28d2fd1a3af0996d3b7d40ef48be7f057c1063f9ca61c693cbf1bff57be61704f13d941220bf74a8049954f87154d
124 -DIST nvidia-settings-361.42.tar.bz2 1571226 SHA256 d8a8943289de60ccebc86335bbe1f16f7486afedc4334a9584aa56ab6e7cb8bf SHA512 052e35f1204068e631cf34108783a95bf96350475776e3fe7074cd6e2186e9f0f34642ff298389c5aaabd3e2dcd905e0b14604efc71e9a54054d59df43ebe173 WHIRLPOOL 9a89d47c42360fd1712f2fa14d65a416a5b6fe42176439f22b250c754ac2e63826df3449118941073dcf704eb96023d4256475772ca1a1511aa4cc1facbf5910
125 -DIST nvidia-settings-361.45.18.tar.bz2 1571655 SHA256 15a26c318114675c5906879388fbd14445570935454200d39c510abdaa8256ae SHA512 bb4d7234065a9541317aeab1d1229f75b092a99a4b5b1093cb4eb854ccc4005615b12010cf20b299ac46f1bccb0c35c323451d3262ef3325f0b55e88ce11e6bf WHIRLPOOL bbdabbd29882d3323338308878eb95b25e84bd2a4b5d0188e8049457d2dc5b37cba4c1e55aac0088bc6d950a9abb0117744914e6c58d1e1576929ab00434326f
126 -DIST nvidia-settings-364.19.tar.bz2 1573005 SHA256 fe8e9cc4d0ade9caaf51109e7e5287d1cbea111e73fae56f6c1b36ff8e55c370 SHA512 5274d908df284bc0ad2f7e6dd62c4052b2d0445e36dc84007bcb7c4e2382a8e9a4439e3507c229e96461031e1f3207911e659ddc73eea847052fa98b677f82c0 WHIRLPOOL dc93fc3635ff78b0a74d717a825ac630d38779f280c0d611fe43ff69adfda116c2363cb88cac1035d0169038ff4f82e51cd1b741cb5394e8e285cf5fe72ef046
127 -DIST nvidia-settings-367.57.tar.bz2 1571905 SHA256 aacb66b130e4adc034e10afb518c919a96029b31b14da8975b08d250d8750140 SHA512 57bf414f4aefacd994e73ea3b31de8cf9f5d6ddc9a95ea1456c21905510c4ba9219e690a1b1bb1346b57a80caf9856c5fede80734163392f0788b995d1bd4cea WHIRLPOOL 7294f84afe8a00f59e2073773d12dc0b31273ab49fe318558eee84a72b7df1233fa004949c0512bff1974c5edbc4749eed68e172336241ea9cb24d6c585a8979
128 -DIST nvidia-settings-370.28.tar.bz2 1573509 SHA256 59d7818a4837144e373ce958233db059fde59e279477001e187579770ebf0c5f SHA512 c4da6ae54839a8f91d3557153a648f69095e9a486dbaaf73e453d625660f1adcada12ee5c4bccc1afe2cfd454ead13c1df0e59d5d6aa70f6065823d53f7bb461 WHIRLPOOL e5f0a9fd67e50aee42598d6a0ce9a69a162405a6121518c7aaf9ede409e9bdeb44e3102a123eb6f8c963e0fdaca429a8b693f6af2f0467e746c42f57a496d45f
129 DIST nvidia-settings-375.26.tar.bz2 1615459 SHA256 beb0d88e2f63427239fd2014299ef7bf780e70800f68be5d011575e858711fe9 SHA512 e575670ccf7e3ef0089ee6a969f107f6f43d742a60cc325c6d95efc4773f34a6e013fd2c4e38b5f90054e24146a05c2300c0cf6a9b7013b556bacc1402956f49 WHIRLPOOL 854e4444beb330c97b29ebc00936c9d2f2522165ef2ca86f68ae28abadef516aedb341e2b2bf6d7a762decaeac4d5c3084bddaa21492b0a60607a2bbf541c301
130 DIST nvidia-settings-375.39.tar.bz2 1618873 SHA256 e5965788368c85e8a83db27d725ea9492068d0e79f961b22fe38d22f090e0839 SHA512 de6dc16850f032f228313582c83e27fefcb045261cb8b5fdef428cca5264307ef58a5e78d91fe3624a39ab2a4361e3939d4b6592c32837a1f43caf381120bed8 WHIRLPOOL 100102effcb2fb04976f6ecadd23631b5ea28206076fdac24f2ae481c96e6856239295c65e2e527d7c9558d97f3f5a25e6c48907cb41eff0a23ee6d878790716
131 DIST nvidia-settings-378.13.tar.bz2 1618011 SHA256 b23f931e3107897ff73c57ce02aa77e8e1dc95559bfa338e898126731a230023 SHA512 a12352c92fd4f56002bda2b07e8cddd5573af98521ec3495cd428b784eb368c9f2cb40f9b4372400ba1ea67c9349c6a9b4f7c218ede2d0d5dabb08325eda9844 WHIRLPOOL d143ae5fd3d09e235aca4d5f95d87d9ab0e3adee4aab5496fba89bcc75903dae5a604f76e9b34331f561dcc8e9aa222ee91e6e15ce91635cefc1e4e40eb8097f
132
133 diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-346.16-pax-constify.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-346.16-pax-constify.patch
134 deleted file mode 100644
135 index 9b9f53e45dc..00000000000
136 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-346.16-pax-constify.patch
137 +++ /dev/null
138 @@ -1,25 +0,0 @@
139 ---- a/kernel/uvm/uvm_common.c
140 -+++ b/kernel/uvm/uvm_common.c
141 -@@ -95,7 +95,6 @@ static RM_STATUS uvmnext_gpu_event_stop_
142 - #endif // NVIDIA_UVM_NEXT_ENABLED
143 -
144 - static dev_t g_uvmBaseDev;
145 --struct UvmOpsUvmEvents g_exportedUvmOps;
146 -
147 - // TODO: This would be easier if RM allowed for multiple registrations, since we
148 - // could register UVM-Lite and UVM-Next separately (bug 1372835).
149 -@@ -147,9 +146,11 @@ static RM_STATUS uvmSetupGpuProvider(voi
150 - RM_STATUS status = RM_OK;
151 -
152 - #ifdef NVIDIA_UVM_RM_ENABLED
153 -- g_exportedUvmOps.startDevice = uvm_gpu_event_start_device;
154 -- g_exportedUvmOps.stopDevice = uvm_gpu_event_stop_device;
155 -- g_exportedUvmOps.isrTopHalf = uvmnext_isr_top_half;
156 -+ static struct UvmOpsUvmEvents g_exportedUvmOps = {
157 -+ .startDevice = uvm_gpu_event_start_device,
158 -+ .stopDevice = uvm_gpu_event_stop_device,
159 -+ .isrTopHalf = uvmnext_isr_top_half,
160 -+ };
161 -
162 - // call RM to exchange the function pointers.
163 - status = nvUvmInterfaceRegisterUvmCallbacks(&g_exportedUvmOps);
164
165 diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-346.16-pax-usercopy.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-346.16-pax-usercopy.patch
166 deleted file mode 100644
167 index d1a440c94aa..00000000000
168 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-346.16-pax-usercopy.patch
169 +++ /dev/null
170 @@ -1,47 +0,0 @@
171 ---- a/kernel/nv.c
172 -+++ b/kernel/nv.c
173 -@@ -705,7 +705,7 @@ int __init nvidia_init_module(void)
174 - #endif
175 -
176 - nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE(nvidia_stack_cache_name,
177 -- nvidia_stack_t);
178 -+ nvidia_stack_t, SLAB_USERCOPY);
179 - if (nvidia_stack_t_cache == NULL)
180 - {
181 - nv_printf(NV_DBG_ERRORS, "NVRM: stack cache allocation failed!\n");
182 -@@ -846,7 +846,7 @@ int __init nvidia_init_module(void)
183 - nv_lock_init_locks(nv);
184 -
185 - nvidia_pte_t_cache = NV_KMEM_CACHE_CREATE(nvidia_pte_cache_name,
186 -- nvidia_pte_t);
187 -+ nvidia_pte_t, 0);
188 - if (nvidia_pte_t_cache == NULL)
189 - {
190 - rc = -ENOMEM;
191 -@@ -857,7 +857,7 @@ int __init nvidia_init_module(void)
192 - if (!nv_multiple_kernel_modules)
193 - {
194 - nvidia_p2p_page_t_cache = NV_KMEM_CACHE_CREATE(nvidia_p2p_page_cache_name,
195 -- nvidia_p2p_page_t);
196 -+ nvidia_p2p_page_t, 0);
197 - if (nvidia_p2p_page_t_cache == NULL)
198 - {
199 - rc = -ENOMEM;
200 ---- a/kernel/nv-linux.h
201 -+++ b/kernel/nv-linux.h
202 -@@ -1431,11 +1431,11 @@ extern void *nvidia_stack_t_cache;
203 -
204 - #if !defined(NV_VMWARE)
205 - #if (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 5)
206 --#define NV_KMEM_CACHE_CREATE(name, type) \
207 -- kmem_cache_create(name, sizeof(type), 0, 0, NULL)
208 -+#define NV_KMEM_CACHE_CREATE(name, type, flags) \
209 -+ kmem_cache_create(name, sizeof(type), 0, flags, NULL)
210 - #else
211 --#define NV_KMEM_CACHE_CREATE(name, type) \
212 -- kmem_cache_create(name, sizeof(type), 0, 0, NULL, \
213 -+#define NV_KMEM_CACHE_CREATE(name, type, flags) \
214 -+ kmem_cache_create(name, sizeof(type), 0, flags, NULL, \
215 - NULL)
216 - #endif
217 - #define NV_KMEM_CACHE_DESTROY(kmem_cache) \
218
219 diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-355.06-pax.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-355.06-pax.patch
220 deleted file mode 100644
221 index cc5ebdf7957..00000000000
222 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-355.06-pax.patch
223 +++ /dev/null
224 @@ -1,102 +0,0 @@
225 -diff -urp NVIDIA-Linux-x86_64-355.06.orig/kernel/common/inc/nv-linux.h NVIDIA-Linux-x86_64-355.06/kernel/common/inc/nv-linux.h
226 ---- NVIDIA-Linux-x86_64-355.06.orig/kernel/common/inc/nv-linux.h 2015-07-29 05:13:57.000000000 +0200
227 -+++ NVIDIA-Linux-x86_64-355.06/kernel/common/inc/nv-linux.h 2015-08-21 16:45:55.624336728 +0200
228 -@@ -1408,11 +1408,11 @@ extern void *nvidia_stack_t_cache;
229 -
230 - #if !defined(NV_VMWARE)
231 - #if (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 5)
232 --#define NV_KMEM_CACHE_CREATE(name, type) \
233 -- kmem_cache_create(name, sizeof(type), 0, 0, NULL)
234 -+#define NV_KMEM_CACHE_CREATE(name, type, flags) \
235 -+ kmem_cache_create(name, sizeof(type), 0, flags, NULL)
236 - #else
237 --#define NV_KMEM_CACHE_CREATE(name, type) \
238 -- kmem_cache_create(name, sizeof(type), 0, 0, NULL, \
239 -+#define NV_KMEM_CACHE_CREATE(name, type, flags) \
240 -+ kmem_cache_create(name, sizeof(type), 0, flags, NULL, \
241 - NULL)
242 - #endif
243 - #define NV_KMEM_CACHE_DESTROY(kmem_cache) \
244 -diff -urp NVIDIA-Linux-x86_64-355.06.orig/kernel/nvidia/nv.c NVIDIA-Linux-x86_64-355.06/kernel/nvidia/nv.c
245 ---- NVIDIA-Linux-x86_64-355.06.orig/kernel/nvidia/nv.c 2015-07-29 05:13:57.000000000 +0200
246 -+++ NVIDIA-Linux-x86_64-355.06/kernel/nvidia/nv.c 2015-08-21 16:44:51.008340178 +0200
247 -@@ -719,7 +719,7 @@ int __init nvidia_init_module(void)
248 - #endif
249 -
250 - nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE(nvidia_stack_cache_name,
251 -- nvidia_stack_t);
252 -+ nvidia_stack_t, SLAB_USERCOPY);
253 - if (nvidia_stack_t_cache == NULL)
254 - {
255 - nv_printf(NV_DBG_ERRORS, "NVRM: stack cache allocation failed!\n");
256 -@@ -861,7 +861,7 @@ int __init nvidia_init_module(void)
257 - nv_state_init_gpu_uuid_cache(nv);
258 -
259 - nvidia_pte_t_cache = NV_KMEM_CACHE_CREATE(nvidia_pte_cache_name,
260 -- nvidia_pte_t);
261 -+ nvidia_pte_t, 0);
262 - if (nvidia_pte_t_cache == NULL)
263 - {
264 - rc = -ENOMEM;
265 -@@ -872,7 +872,7 @@ int __init nvidia_init_module(void)
266 - if (!nv_multiple_kernel_modules)
267 - {
268 - nvidia_p2p_page_t_cache = NV_KMEM_CACHE_CREATE(nvidia_p2p_page_cache_name,
269 -- nvidia_p2p_page_t);
270 -+ nvidia_p2p_page_t, 0);
271 - if (nvidia_p2p_page_t_cache == NULL)
272 - {
273 - rc = -ENOMEM;
274 -diff -urp NVIDIA-Linux-x86_64-355.06.orig/kernel/nvidia/nv-mmap.c NVIDIA-Linux-x86_64-355.06/kernel/nvidia/nv-mmap.c
275 ---- NVIDIA-Linux-x86_64-355.06.orig/kernel/nvidia/nv-mmap.c 2015-07-29 05:13:57.000000000 +0200
276 -+++ NVIDIA-Linux-x86_64-355.06/kernel/nvidia/nv-mmap.c 2015-08-21 16:58:15.968297199 +0200
277 -@@ -113,12 +113,12 @@ nvidia_vma_release(struct vm_area_struct
278 - }
279 -
280 - #if defined(NV_VM_OPERATIONS_STRUCT_HAS_ACCESS)
281 --static int
282 -+static ssize_t
283 - nvidia_vma_access(
284 - struct vm_area_struct *vma,
285 - unsigned long addr,
286 - void *buffer,
287 -- int length,
288 -+ size_t length,
289 - int write
290 - )
291 - {
292 -diff -urp NVIDIA-Linux-x86_64-355.06.orig/kernel/nvidia-uvm/uvm_common.c NVIDIA-Linux-x86_64-355.06/kernel/nvidia-uvm/uvm_common.c
293 ---- NVIDIA-Linux-x86_64-355.06.orig/kernel/nvidia-uvm/uvm_common.c 2015-07-29 05:10:08.000000000 +0200
294 -+++ NVIDIA-Linux-x86_64-355.06/kernel/nvidia-uvm/uvm_common.c 2015-08-21 17:00:33.788289841 +0200
295 -@@ -60,7 +60,7 @@ static void uvmnext_exit(void)
296 - {
297 -
298 - }
299 --static NV_STATUS uvmnext_isr_top_half(void)
300 -+static NV_STATUS uvmnext_isr_top_half(UvmGpuUuid *gpuUuidStruct)
301 - {
302 - return NV_ERR_NO_INTR_PENDING;
303 - }
304 -@@ -79,7 +79,6 @@ NvBool uvmnext_activated(void)
305 - #endif // NVIDIA_UVM_NEXT_ENABLED
306 -
307 - static dev_t g_uvmBaseDev;
308 --struct UvmOpsUvmEvents g_exportedUvmOps;
309 -
310 - // TODO: This would be easier if RM allowed for multiple registrations, since we
311 - // could register UVM-Lite and UVM-Next separately (bug 1372835).
312 -@@ -112,9 +111,11 @@ static NV_STATUS uvmSetupGpuProvider(voi
313 - NV_STATUS status = NV_OK;
314 -
315 - #ifdef NVIDIA_UVM_RM_ENABLED
316 -- g_exportedUvmOps.startDevice = uvm_gpu_event_start_device;
317 -- g_exportedUvmOps.stopDevice = uvm_gpu_event_stop_device;
318 -- g_exportedUvmOps.isrTopHalf = uvmnext_isr_top_half;
319 -+ static struct UvmOpsUvmEvents g_exportedUvmOps = {
320 -+ .startDevice = uvm_gpu_event_start_device,
321 -+ .stopDevice = uvm_gpu_event_stop_device,
322 -+ .isrTopHalf = uvmnext_isr_top_half,
323 -+ };
324 -
325 - // call RM to exchange the function pointers.
326 - status = nvUvmInterfaceRegisterUvmCallbacks(&g_exportedUvmOps);
327
328 diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-361.28-pax.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-361.28-pax.patch
329 deleted file mode 100644
330 index 09e4384b942..00000000000
331 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-361.28-pax.patch
332 +++ /dev/null
333 @@ -1,351 +0,0 @@
334 -diff -urp work.orig/kernel/common/inc/nv-linux.h work/kernel/common/inc/nv-linux.h
335 ---- work.orig/kernel/common/inc/nv-linux.h 2016-02-03 23:31:51.000000000 +0100
336 -+++ work/kernel/common/inc/nv-linux.h 2016-02-10 11:49:15.309410457 +0100
337 -@@ -1351,6 +1351,9 @@ extern void *nvidia_stack_t_cache;
338 - #define NV_KMEM_CACHE_CREATE(name, type) \
339 - NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, 0, NULL)
340 -
341 -+#define NV_KMEM_CACHE_CREATE_USERCOPY(name, type) \
342 -+ NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, SLAB_USERCOPY, NULL)
343 -+
344 - #define NV_KMEM_CACHE_DESTROY(kmem_cache) \
345 - kmem_cache_destroy(kmem_cache)
346 -
347 -diff -urp work.orig/kernel/common/inc/nv-modeset-interface.h work/kernel/common/inc/nv-modeset-interface.h
348 ---- work.orig/kernel/common/inc/nv-modeset-interface.h 2016-02-03 23:31:51.000000000 +0100
349 -+++ work/kernel/common/inc/nv-modeset-interface.h 2016-02-10 11:49:54.970985152 +0100
350 -@@ -70,7 +70,7 @@ typedef struct {
351 - * mix nvidia and nvidia-modeset kernel modules from different
352 - * releases.
353 - */
354 -- const char *version_string;
355 -+// const char *version_string;
356 -
357 - /*
358 - * Allocate and free an nvidia_stack_t to pass into
359 -@@ -104,6 +104,6 @@ typedef struct {
360 -
361 - } nvidia_modeset_rm_ops_t;
362 -
363 --NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops);
364 -+NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string);
365 -
366 - #endif /* _NV_MODESET_INTERFACE_H_ */
367 -diff -urp work.orig/kernel/common/inc/nv-register-module.h work/kernel/common/inc/nv-register-module.h
368 ---- work.orig/kernel/common/inc/nv-register-module.h 2016-02-03 23:31:51.000000000 +0100
369 -+++ work/kernel/common/inc/nv-register-module.h 2016-02-10 11:50:18.941376865 +0100
370 -@@ -34,7 +34,7 @@ typedef struct nvidia_module_s {
371 - int (*ioctl)(struct inode *, struct file * file, unsigned int cmd, unsigned long arg);
372 - unsigned int (*poll)(struct file * file, poll_table *wait);
373 -
374 --} nvidia_module_t;
375 -+} __do_const nvidia_module_t;
376 -
377 - int nvidia_register_module(nvidia_module_t *);
378 - int nvidia_unregister_module(nvidia_module_t *);
379 -diff -urp work.orig/kernel/nvidia/nv.c work/kernel/nvidia/nv.c
380 ---- work.orig/kernel/nvidia/nv.c 2016-02-03 23:31:51.000000000 +0100
381 -+++ work/kernel/nvidia/nv.c 2016-02-10 11:50:40.191828792 +0100
382 -@@ -704,7 +704,7 @@ int __init nvidia_init_module(void)
383 - NV_SPIN_LOCK_INIT(&km_lock);
384 - #endif
385 -
386 -- nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE(nvidia_stack_cache_name,
387 -+ nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE_USERCOPY(nvidia_stack_cache_name,
388 - nvidia_stack_t);
389 - if (nvidia_stack_t_cache == NULL)
390 - {
391 -diff -urp work.orig/kernel/nvidia/nv-chrdev.c work/kernel/nvidia/nv-chrdev.c
392 ---- work.orig/kernel/nvidia/nv-chrdev.c 2016-02-03 23:31:51.000000000 +0100
393 -+++ work/kernel/nvidia/nv-chrdev.c 2016-02-10 11:50:57.201126955 +0100
394 -@@ -20,8 +20,6 @@ int nv_register_chrdev(void *param)
395 - {
396 - nvidia_module_t *module = (nvidia_module_t *)param;
397 -
398 -- module->instance = nv_module_instance;
399 --
400 - return (nvidia_register_module(module));
401 - }
402 -
403 -diff -urp work.orig/kernel/nvidia/nv-instance.c work/kernel/nvidia/nv-instance.c
404 ---- work.orig/kernel/nvidia/nv-instance.c 2016-02-03 23:31:51.000000000 +0100
405 -+++ work/kernel/nvidia/nv-instance.c 2016-02-10 11:51:35.418977554 +0100
406 -@@ -54,6 +54,7 @@ struct pci_driver nv_pci_driver = {
407 - nvidia_module_t nv_fops = {
408 - .owner = THIS_MODULE,
409 - .module_name = MODULE_NAME,
410 -+ .instance = MODULE_INSTANCE_NUMBER,
411 - .open = nvidia_open,
412 - .close = nvidia_close,
413 - .ioctl = nvidia_ioctl,
414 -diff -urp work.orig/kernel/nvidia/nv-mmap.c work/kernel/nvidia/nv-mmap.c
415 ---- work.orig/kernel/nvidia/nv-mmap.c 2016-02-03 23:31:51.000000000 +0100
416 -+++ work/kernel/nvidia/nv-mmap.c 2016-02-10 11:14:27.996577127 +0100
417 -@@ -113,12 +113,12 @@ nvidia_vma_release(struct vm_area_struct
418 - }
419 -
420 - #if defined(NV_VM_OPERATIONS_STRUCT_HAS_ACCESS)
421 --static int
422 -+static ssize_t
423 - nvidia_vma_access(
424 - struct vm_area_struct *vma,
425 - unsigned long addr,
426 - void *buffer,
427 -- int length,
428 -+ size_t length,
429 - int write
430 - )
431 - {
432 -diff -urp work.orig/kernel/nvidia/nv-modeset-interface.c work/kernel/nvidia/nv-modeset-interface.c
433 ---- work.orig/kernel/nvidia/nv-modeset-interface.c 2016-02-03 23:31:51.000000000 +0100
434 -+++ work/kernel/nvidia/nv-modeset-interface.c 2016-02-10 12:05:23.822391866 +0100
435 -@@ -59,10 +59,9 @@ void nvidia_modeset_resume(NvU32 gpuId)
436 - }
437 - }
438 -
439 --NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops)
440 -+NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string)
441 - {
442 -- const nvidia_modeset_rm_ops_t local_rm_ops = {
443 -- .version_string = NV_VERSION_STRING,
444 -+ static const nvidia_modeset_rm_ops_t local_rm_ops = {
445 - .alloc_stack = nvidia_modeset_rm_ops_alloc_stack,
446 - .free_stack = nvidia_modeset_rm_ops_free_stack,
447 - .get_gpuid_list = nvidia_get_gpuid_list,
448 -@@ -72,13 +71,13 @@ NV_STATUS nvidia_get_rm_ops(nvidia_modes
449 - .set_callbacks = nvidia_modeset_set_callbacks,
450 - };
451 -
452 -- if (strcmp(rm_ops->version_string, NV_VERSION_STRING) != 0)
453 -+ if (strcmp(*version_string, NV_VERSION_STRING) != 0)
454 - {
455 -- rm_ops->version_string = NV_VERSION_STRING;
456 -+ *version_string = NV_VERSION_STRING;
457 - return NV_ERR_GENERIC;
458 - }
459 -
460 -- *rm_ops = local_rm_ops;
461 -+ *rm_ops = &local_rm_ops;
462 -
463 - return NV_OK;
464 - }
465 -diff -urp work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c work/kernel/nvidia-modeset/nvidia-modeset-linux.c
466 ---- work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c 2016-02-03 23:32:20.000000000 +0100
467 -+++ work/kernel/nvidia-modeset/nvidia-modeset-linux.c 2016-02-10 12:08:02.275059160 +0100
468 -@@ -320,49 +320,48 @@ static void nvkms_resume(NvU32 gpuId)
469 - * so we can use a single nvidia_modeset_stack_ptr for calling RM.
470 - *************************************************************************/
471 -
472 --static nvidia_modeset_rm_ops_t __rm_ops = { 0 };
473 -+static const nvidia_modeset_rm_ops_t *__rm_ops;
474 - static nvidia_modeset_stack_ptr nvkms_nvidia_stack = NULL;
475 - static nvidia_modeset_callbacks_t nvkms_rm_callbacks = {
476 -- nvkms_suspend,
477 -- nvkms_resume
478 -+ .suspend = nvkms_suspend,
479 -+ .resume = nvkms_resume
480 - };
481 -
482 - static int nvkms_alloc_rm(void)
483 - {
484 - NV_STATUS nvstatus;
485 - int ret;
486 -+ const char *version_string = NV_VERSION_STRING;
487 -
488 -- __rm_ops.version_string = NV_VERSION_STRING;
489 --
490 -- nvstatus = nvidia_get_rm_ops(&__rm_ops);
491 -+ nvstatus = nvidia_get_rm_ops(&__rm_ops, &version_string);
492 -
493 - if (nvstatus != NV_OK) {
494 - printk(KERN_ERR NVKMS_LOG_PREFIX "Version mismatch: "
495 - "nvidia.ko(%s) nvidia-modeset.ko(%s)\n",
496 -- __rm_ops.version_string, NV_VERSION_STRING);
497 -+ version_string, NV_VERSION_STRING);
498 - return -EINVAL;
499 - }
500 -
501 -- ret = __rm_ops.set_callbacks(&nvkms_rm_callbacks);
502 -+ ret = __rm_ops->set_callbacks(&nvkms_rm_callbacks);
503 - if (ret < 0) {
504 - printk(KERN_ERR NVKMS_LOG_PREFIX "Failed to register callbacks\n");
505 - return ret;
506 - }
507 -
508 -- return __rm_ops.alloc_stack(&nvkms_nvidia_stack);
509 -+ return __rm_ops->alloc_stack(&nvkms_nvidia_stack);
510 - }
511 -
512 - static void nvkms_free_rm(void)
513 - {
514 -- __rm_ops.set_callbacks(NULL);
515 -- if (__rm_ops.free_stack != NULL) {
516 -- __rm_ops.free_stack(nvkms_nvidia_stack);
517 -+ __rm_ops->set_callbacks(NULL);
518 -+ if (__rm_ops->free_stack != NULL) {
519 -+ __rm_ops->free_stack(nvkms_nvidia_stack);
520 - }
521 - }
522 -
523 - void NVKMS_API_CALL nvkms_call_rm(void *ops)
524 - {
525 -- __rm_ops.op(nvkms_nvidia_stack, ops);
526 -+ __rm_ops->op(nvkms_nvidia_stack, ops);
527 - }
528 -
529 - /*************************************************************************
530 -@@ -681,17 +680,17 @@ done:
531 -
532 - NvBool NVKMS_API_CALL nvkms_open_gpu(NvU32 gpuId)
533 - {
534 -- return __rm_ops.open_gpu(gpuId, nvkms_nvidia_stack) == 0;
535 -+ return __rm_ops->open_gpu(gpuId, nvkms_nvidia_stack) == 0;
536 - }
537 -
538 - void NVKMS_API_CALL nvkms_close_gpu(NvU32 gpuId)
539 - {
540 -- __rm_ops.close_gpu(gpuId, nvkms_nvidia_stack);
541 -+ __rm_ops->close_gpu(gpuId, nvkms_nvidia_stack);
542 - }
543 -
544 - NvBool NVKMS_API_CALL nvkms_list_gpus(NvU32 *gpu_ids, NvU32 *gpu_count)
545 - {
546 -- return __rm_ops.get_gpuid_list(gpu_ids, gpu_count);
547 -+ return __rm_ops->get_gpuid_list(gpu_ids, gpu_count);
548 - }
549 -
550 - /*************************************************************************
551 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_channel.c work/kernel/nvidia-uvm/uvm8_channel.c
552 ---- work.orig/kernel/nvidia-uvm/uvm8_channel.c 2016-02-03 23:32:32.000000000 +0100
553 -+++ work/kernel/nvidia-uvm/uvm8_channel.c 2016-02-10 11:39:16.735603941 +0100
554 -@@ -268,7 +268,7 @@ void uvm_channel_end_push(uvm_push_t *pu
555 - mb();
556 -
557 - channel->cpu_put = new_cpu_put;
558 -- ACCESS_ONCE(*channel->channel_info.GPPut) = new_cpu_put;
559 -+ ACCESS_ONCE_RW(*channel->channel_info.GPPut) = new_cpu_put;
560 -
561 - uvm_spin_unlock(&channel->pool->lock);
562 -
563 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_global.c work/kernel/nvidia-uvm/uvm8_global.c
564 ---- work.orig/kernel/nvidia-uvm/uvm8_global.c 2016-02-03 23:32:32.000000000 +0100
565 -+++ work/kernel/nvidia-uvm/uvm8_global.c 2016-02-10 11:28:23.142115625 +0100
566 -@@ -32,16 +32,16 @@
567 - #include "nv_uvm_interface.h"
568 -
569 - uvm_global_t g_uvm_global;
570 --static struct UvmOpsUvmEvents g_exported_uvm8_ops;
571 -+static struct UvmOpsUvmEvents g_exported_uvm8_ops = {
572 -+ .startDevice = NULL,
573 -+ .stopDevice = NULL,
574 -+ .isrTopHalf = uvm8_isr_top_half,
575 -+};
576 -
577 - static NV_STATUS uvm8_register_callbacks(void)
578 - {
579 - NV_STATUS status = NV_OK;
580 -
581 -- g_exported_uvm8_ops.startDevice = NULL;
582 -- g_exported_uvm8_ops.stopDevice = NULL;
583 -- g_exported_uvm8_ops.isrTopHalf = uvm8_isr_top_half;
584 --
585 - // Register the UVM callbacks with the main GPU driver:
586 - status = uvm_rm_locked_call(nvUvmInterfaceRegisterUvmCallbacks(&g_exported_uvm8_ops));
587 - return status;
588 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c
589 ---- work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c 2016-02-03 23:32:32.000000000 +0100
590 -+++ work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c 2016-02-10 11:38:57.478030852 +0100
591 -@@ -288,7 +288,7 @@ NvU64 uvm_gpu_semaphore_get_gpu_va(uvm_g
592 -
593 - NvU32 uvm_gpu_semaphore_get_payload(uvm_gpu_semaphore_t *semaphore)
594 - {
595 -- return ACCESS_ONCE(*semaphore->payload);
596 -+ return ACCESS_ONCE_RW(*semaphore->payload);
597 - }
598 -
599 - void uvm_gpu_semaphore_set_payload(uvm_gpu_semaphore_t *semaphore, NvU32 payload)
600 -@@ -304,7 +304,7 @@ void uvm_gpu_semaphore_set_payload(uvm_g
601 - // being optimized out on non-SMP configs (we need them for interacting with
602 - // the GPU correctly even on non-SMP).
603 - mb();
604 -- ACCESS_ONCE(*semaphore->payload) = payload;
605 -+ ACCESS_ONCE_RW(*semaphore->payload) = payload;
606 - }
607 -
608 - NV_STATUS uvm_gpu_tracking_semaphore_alloc(uvm_gpu_semaphore_pool_t *pool, uvm_gpu_tracking_semaphore_t *tracking_sem)
609 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_hal.c work/kernel/nvidia-uvm/uvm8_hal.c
610 ---- work.orig/kernel/nvidia-uvm/uvm8_hal.c 2016-02-03 23:32:32.000000000 +0100
611 -+++ work/kernel/nvidia-uvm/uvm8_hal.c 2016-02-10 11:47:13.377356162 +0100
612 -@@ -58,7 +58,7 @@ typedef struct
613 - // arch_ops: id is an architecture
614 - uvm_arch_hal_t arch_ops;
615 - } u;
616 --} uvm_hal_class_ops_t;
617 -+} __do_const uvm_hal_class_ops_t;
618 -
619 - // Table for copy engine functions.
620 - // Each entry is associated with a copy engine class through the 'class' field.
621 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_mmu.h work/kernel/nvidia-uvm/uvm8_mmu.h
622 ---- work.orig/kernel/nvidia-uvm/uvm8_mmu.h 2016-02-03 23:32:32.000000000 +0100
623 -+++ work/kernel/nvidia-uvm/uvm8_mmu.h 2016-02-10 12:09:05.463637996 +0100
624 -@@ -24,7 +24,6 @@
625 - #ifndef __UVM8_MMU_H__
626 - #define __UVM8_MMU_H__
627 -
628 --#include "uvm8_forward_decl.h"
629 - #include "uvm8_pmm_gpu.h"
630 - #include "uvmtypes.h"
631 - #include "uvm_common.h"
632 -diff -urp work.orig/kernel/nvidia-uvm/uvm_common.c work/kernel/nvidia-uvm/uvm_common.c
633 ---- work.orig/kernel/nvidia-uvm/uvm_common.c 2016-02-03 23:32:32.000000000 +0100
634 -+++ work/kernel/nvidia-uvm/uvm_common.c 2016-02-10 11:45:58.008501609 +0100
635 -@@ -74,7 +74,6 @@ static int uvmnext_activated(void)
636 - #endif
637 -
638 - static dev_t g_uvmBaseDev;
639 --struct UvmOpsUvmEvents g_exportedUvmOps;
640 -
641 - static char* uvm_driver_mode = "lite";
642 -
643 -@@ -198,12 +197,17 @@ static NV_STATUS uvmSetupGpuProvider(voi
644 - {
645 - NV_STATUS status = NV_OK;
646 -
647 -- g_exportedUvmOps.startDevice = uvm_gpu_event_start_device;
648 -- g_exportedUvmOps.stopDevice = uvm_gpu_event_stop_device;
649 -+ static struct UvmOpsUvmEvents g_exportedUvmOps = {
650 -+ .startDevice = uvm_gpu_event_start_device,
651 -+ .stopDevice = uvm_gpu_event_stop_device,
652 -+ };
653 -+
654 -+ pax_open_kernel();
655 - if (uvmnext_activated())
656 -- g_exportedUvmOps.isrTopHalf = uvmnext_isr_top_half;
657 -+ *(void **)&g_exportedUvmOps.isrTopHalf = uvmnext_isr_top_half;
658 - else if (uvmfull_activated())
659 -- g_exportedUvmOps.isrTopHalf = uvmfull_isr_top_half;
660 -+ *(void **)&g_exportedUvmOps.isrTopHalf = uvmfull_isr_top_half;
661 -+ pax_close_kernel();
662 -
663 - // call RM to exchange the function pointers.
664 - status = nvUvmInterfaceRegisterUvmCallbacks(&g_exportedUvmOps);
665 -diff -urp work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h work/kernel/nvidia-uvm/uvm_full_fault_buffer.h
666 ---- work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h 2016-02-03 23:32:32.000000000 +0100
667 -+++ work/kernel/nvidia-uvm/uvm_full_fault_buffer.h 2016-02-10 11:26:28.143422741 +0100
668 -@@ -31,6 +31,7 @@
669 - #define _UVM_FULL_FAULT_BUFFER_H_
670 -
671 - #include "uvmtypes.h"
672 -+#include "linux/compiler.h"
673 -
674 - #define MAXWELL_FAULT_BUFFER_A (0xb069)
675 - #define MEM_RD32(a) (*(const volatile NvU32 *)(a))
676 -@@ -303,7 +304,7 @@ typedef struct
677 - NvUvmControlPrefetch_t controlPrefetch;
678 - NvUvmTestFaultBufferOverflow_t testFaultBufferOverflow;
679 - NvUvmClearFaultBufferOverflow_t clearFaultBufferOverflow;
680 --} UvmFaultBufferOps;
681 -+} __no_const UvmFaultBufferOps;
682 -
683 - /******************************************************************************
684 - uvmfull_fault_buffer_init
685
686 diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-364.12-pax.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-364.12-pax.patch
687 deleted file mode 100644
688 index 18c316282bc..00000000000
689 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-364.12-pax.patch
690 +++ /dev/null
691 @@ -1,398 +0,0 @@
692 -diff -urp work.orig/kernel/common/inc/nv-linux.h work/kernel/common/inc/nv-linux.h
693 ---- work.orig/kernel/common/inc/nv-linux.h 2016-03-17 03:58:29.000000000 +0100
694 -+++ work/kernel/common/inc/nv-linux.h 2016-03-22 13:51:58.637292065 +0100
695 -@@ -1307,6 +1307,9 @@ extern void *nvidia_stack_t_cache;
696 - #define NV_KMEM_CACHE_CREATE(name, type) \
697 - NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, 0, NULL)
698 -
699 -+#define NV_KMEM_CACHE_CREATE_USERCOPY(name, type) \
700 -+ NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, SLAB_USERCOPY, NULL)
701 -+
702 - #define NV_KMEM_CACHE_DESTROY(kmem_cache) \
703 - kmem_cache_destroy(kmem_cache)
704 -
705 -diff -urp work.orig/kernel/common/inc/nv-modeset-interface.h work/kernel/common/inc/nv-modeset-interface.h
706 ---- work.orig/kernel/common/inc/nv-modeset-interface.h 2016-03-17 03:58:29.000000000 +0100
707 -+++ work/kernel/common/inc/nv-modeset-interface.h 2016-03-22 13:51:58.637292065 +0100
708 -@@ -72,7 +72,7 @@ typedef struct {
709 - * mix nvidia and nvidia-modeset kernel modules from different
710 - * releases.
711 - */
712 -- const char *version_string;
713 -+// const char *version_string;
714 -
715 - /*
716 - * Allocate and free an nvidia_stack_t to pass into
717 -@@ -115,6 +115,6 @@ typedef struct {
718 -
719 - } nvidia_modeset_rm_ops_t;
720 -
721 --NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops);
722 -+NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string);
723 -
724 - #endif /* _NV_MODESET_INTERFACE_H_ */
725 -diff -urp work.orig/kernel/common/inc/nv-register-module.h work/kernel/common/inc/nv-register-module.h
726 ---- work.orig/kernel/common/inc/nv-register-module.h 2016-03-17 03:58:29.000000000 +0100
727 -+++ work/kernel/common/inc/nv-register-module.h 2016-03-22 13:51:58.637292065 +0100
728 -@@ -34,7 +34,7 @@ typedef struct nvidia_module_s {
729 - int (*ioctl)(struct inode *, struct file * file, unsigned int cmd, unsigned long arg);
730 - unsigned int (*poll)(struct file * file, poll_table *wait);
731 -
732 --} nvidia_module_t;
733 -+} __do_const nvidia_module_t;
734 -
735 - int nvidia_register_module(nvidia_module_t *);
736 - int nvidia_unregister_module(nvidia_module_t *);
737 -diff -urp work.orig/kernel/nvidia/nv.c work/kernel/nvidia/nv.c
738 ---- work.orig/kernel/nvidia/nv.c 2016-03-17 03:58:29.000000000 +0100
739 -+++ work/kernel/nvidia/nv.c 2016-03-22 13:51:58.637292065 +0100
740 -@@ -654,7 +654,7 @@ int __init nvidia_init_module(void)
741 - NV_SPIN_LOCK_INIT(&km_lock);
742 - #endif
743 -
744 -- nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE(nvidia_stack_cache_name,
745 -+ nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE_USERCOPY(nvidia_stack_cache_name,
746 - nvidia_stack_t);
747 - if (nvidia_stack_t_cache == NULL)
748 - {
749 -diff -urp work.orig/kernel/nvidia/nv-chrdev.c work/kernel/nvidia/nv-chrdev.c
750 ---- work.orig/kernel/nvidia/nv-chrdev.c 2016-03-17 03:58:29.000000000 +0100
751 -+++ work/kernel/nvidia/nv-chrdev.c 2016-03-22 13:51:58.637292065 +0100
752 -@@ -20,8 +20,6 @@ int nv_register_chrdev(void *param)
753 - {
754 - nvidia_module_t *module = (nvidia_module_t *)param;
755 -
756 -- module->instance = nv_module_instance;
757 --
758 - return (nvidia_register_module(module));
759 - }
760 -
761 -diff -urp work.orig/kernel/nvidia/nv-instance.c work/kernel/nvidia/nv-instance.c
762 ---- work.orig/kernel/nvidia/nv-instance.c 2016-03-17 03:58:29.000000000 +0100
763 -+++ work/kernel/nvidia/nv-instance.c 2016-03-22 13:51:58.637292065 +0100
764 -@@ -51,6 +51,7 @@ struct pci_driver nv_pci_driver = {
765 - nvidia_module_t nv_fops = {
766 - .owner = THIS_MODULE,
767 - .module_name = MODULE_NAME,
768 -+ .instance = MODULE_INSTANCE_NUMBER,
769 - .open = nvidia_open,
770 - .close = nvidia_close,
771 - .ioctl = nvidia_ioctl,
772 -diff -urp work.orig/kernel/nvidia/nv-mmap.c work/kernel/nvidia/nv-mmap.c
773 ---- work.orig/kernel/nvidia/nv-mmap.c 2016-03-17 03:58:29.000000000 +0100
774 -+++ work/kernel/nvidia/nv-mmap.c 2016-03-22 13:51:58.637292065 +0100
775 -@@ -113,12 +113,12 @@ nvidia_vma_release(struct vm_area_struct
776 - }
777 -
778 - #if defined(NV_VM_OPERATIONS_STRUCT_HAS_ACCESS)
779 --static int
780 -+static ssize_t
781 - nvidia_vma_access(
782 - struct vm_area_struct *vma,
783 - unsigned long addr,
784 - void *buffer,
785 -- int length,
786 -+ size_t length,
787 - int write
788 - )
789 - {
790 -diff -urp work.orig/kernel/nvidia/nv-modeset-interface.c work/kernel/nvidia/nv-modeset-interface.c
791 ---- work.orig/kernel/nvidia/nv-modeset-interface.c 2016-03-17 03:58:29.000000000 +0100
792 -+++ work/kernel/nvidia/nv-modeset-interface.c 2016-03-22 13:56:37.019870910 +0100
793 -@@ -100,10 +100,9 @@ static NvU32 nvidia_modeset_enumerate_gp
794 - return count;
795 - }
796 -
797 --NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops)
798 -+NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string)
799 - {
800 -- const nvidia_modeset_rm_ops_t local_rm_ops = {
801 -- .version_string = NV_VERSION_STRING,
802 -+ static const nvidia_modeset_rm_ops_t local_rm_ops = {
803 - .alloc_stack = nvidia_modeset_rm_ops_alloc_stack,
804 - .free_stack = nvidia_modeset_rm_ops_free_stack,
805 - .get_gpuid_list = nvidia_get_gpuid_list,
806 -@@ -114,13 +113,13 @@ NV_STATUS nvidia_get_rm_ops(nvidia_modes
807 - .set_callbacks = nvidia_modeset_set_callbacks,
808 - };
809 -
810 -- if (strcmp(rm_ops->version_string, NV_VERSION_STRING) != 0)
811 -+ if (strcmp(*version_string, NV_VERSION_STRING) != 0)
812 - {
813 -- rm_ops->version_string = NV_VERSION_STRING;
814 -+ *version_string = NV_VERSION_STRING;
815 - return NV_ERR_GENERIC;
816 - }
817 -
818 -- *rm_ops = local_rm_ops;
819 -+ *rm_ops = &local_rm_ops;
820 -
821 - return NV_OK;
822 - }
823 -diff -urp work.orig/kernel/nvidia-drm/nvidia-drm-drv.c work/kernel/nvidia-drm/nvidia-drm-drv.c
824 ---- work.orig/kernel/nvidia-drm/nvidia-drm-drv.c 2016-03-17 03:57:24.000000000 +0100
825 -+++ work/kernel/nvidia-drm/nvidia-drm-drv.c 2016-03-22 14:23:07.084230003 +0100
826 -@@ -586,7 +586,7 @@ static const struct drm_ioctl_desc nv_dr
827 - DRM_CONTROL_ALLOW|DRM_RENDER_ALLOW|DRM_UNLOCKED),
828 - };
829 -
830 --static struct drm_driver nv_drm_driver = {
831 -+static drm_driver_no_const nv_drm_driver __read_only = {
832 -
833 - .driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER,
834 -
835 -@@ -643,6 +643,7 @@ static void nvidia_update_drm_driver_fea
836 - return;
837 - }
838 -
839 -+ pax_open_kernel();
840 - nv_drm_driver.driver_features |= DRIVER_MODESET | DRIVER_ATOMIC;
841 -
842 - nv_drm_driver.master_set = nvidia_drm_master_set;
843 -@@ -651,6 +652,7 @@ static void nvidia_update_drm_driver_fea
844 - nv_drm_driver.dumb_create = nvidia_drm_dumb_create;
845 - nv_drm_driver.dumb_map_offset = nvidia_drm_dumb_map_offset;
846 - nv_drm_driver.dumb_destroy = drm_gem_dumb_destroy;
847 -+ pax_close_kernel();
848 -
849 - #endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */
850 - }
851 -diff -urp work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c work/kernel/nvidia-modeset/nvidia-modeset-linux.c
852 ---- work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c 2016-03-17 03:57:25.000000000 +0100
853 -+++ work/kernel/nvidia-modeset/nvidia-modeset-linux.c 2016-03-22 13:55:05.208148788 +0100
854 -@@ -317,29 +317,28 @@ static void nvkms_resume(NvU32 gpuId)
855 - * Interface with resman.
856 - *************************************************************************/
857 -
858 --static nvidia_modeset_rm_ops_t __rm_ops = { 0 };
859 -+static const nvidia_modeset_rm_ops_t *__rm_ops;
860 - static nvidia_modeset_callbacks_t nvkms_rm_callbacks = {
861 -- nvkms_suspend,
862 -- nvkms_resume
863 -+ .suspend = nvkms_suspend,
864 -+ .resume = nvkms_resume
865 - };
866 -
867 - static int nvkms_alloc_rm(void)
868 - {
869 - NV_STATUS nvstatus;
870 - int ret;
871 -+ const char *version_string = NV_VERSION_STRING;
872 -
873 -- __rm_ops.version_string = NV_VERSION_STRING;
874 --
875 -- nvstatus = nvidia_get_rm_ops(&__rm_ops);
876 -+ nvstatus = nvidia_get_rm_ops(&__rm_ops, &version_string);
877 -
878 - if (nvstatus != NV_OK) {
879 - printk(KERN_ERR NVKMS_LOG_PREFIX "Version mismatch: "
880 - "nvidia.ko(%s) nvidia-modeset.ko(%s)\n",
881 -- __rm_ops.version_string, NV_VERSION_STRING);
882 -+ version_string, NV_VERSION_STRING);
883 - return -EINVAL;
884 - }
885 -
886 -- ret = __rm_ops.set_callbacks(&nvkms_rm_callbacks);
887 -+ ret = __rm_ops->set_callbacks(&nvkms_rm_callbacks);
888 - if (ret < 0) {
889 - printk(KERN_ERR NVKMS_LOG_PREFIX "Failed to register callbacks\n");
890 - return ret;
891 -@@ -350,20 +349,20 @@ static int nvkms_alloc_rm(void)
892 -
893 - static void nvkms_free_rm(void)
894 - {
895 -- __rm_ops.set_callbacks(NULL);
896 -+ __rm_ops->set_callbacks(NULL);
897 - }
898 -
899 - void NVKMS_API_CALL nvkms_call_rm(void *ops)
900 - {
901 - nvidia_modeset_stack_ptr stack = NULL;
902 -
903 -- if (__rm_ops.alloc_stack(&stack) != 0) {
904 -+ if (__rm_ops->alloc_stack(&stack) != 0) {
905 - return;
906 - }
907 -
908 -- __rm_ops.op(stack, ops);
909 -+ __rm_ops->op(stack, ops);
910 -
911 -- __rm_ops.free_stack(stack);
912 -+ __rm_ops->free_stack(stack);
913 - }
914 -
915 - /*************************************************************************
916 -@@ -685,13 +684,13 @@ NvBool NVKMS_API_CALL nvkms_open_gpu(NvU
917 - nvidia_modeset_stack_ptr stack = NULL;
918 - NvBool ret;
919 -
920 -- if (__rm_ops.alloc_stack(&stack) != 0) {
921 -+ if (__rm_ops->alloc_stack(&stack) != 0) {
922 - return NV_FALSE;
923 - }
924 -
925 -- ret = __rm_ops.open_gpu(gpuId, stack) == 0;
926 -+ ret = __rm_ops->open_gpu(gpuId, stack) == 0;
927 -
928 -- __rm_ops.free_stack(stack);
929 -+ __rm_ops->free_stack(stack);
930 -
931 - return ret;
932 - }
933 -@@ -700,18 +699,18 @@ void NVKMS_API_CALL nvkms_close_gpu(NvU3
934 - {
935 - nvidia_modeset_stack_ptr stack = NULL;
936 -
937 -- if (__rm_ops.alloc_stack(&stack) != 0) {
938 -+ if (__rm_ops->alloc_stack(&stack) != 0) {
939 - return;
940 - }
941 -
942 -- __rm_ops.close_gpu(gpuId, stack);
943 -+ __rm_ops->close_gpu(gpuId, stack);
944 -
945 -- __rm_ops.free_stack(stack);
946 -+ __rm_ops->free_stack(stack);
947 - }
948 -
949 - NvU32 NVKMS_API_CALL nvkms_enumerate_gpus(nv_gpu_info_t *gpu_info)
950 - {
951 -- return __rm_ops.enumerate_gpus(gpu_info);
952 -+ return __rm_ops->enumerate_gpus(gpu_info);
953 - }
954 -
955 - /*************************************************************************
956 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_global.c work/kernel/nvidia-uvm/uvm8_global.c
957 ---- work.orig/kernel/nvidia-uvm/uvm8_global.c 2016-03-17 03:59:59.000000000 +0100
958 -+++ work/kernel/nvidia-uvm/uvm8_global.c 2016-03-22 14:00:03.852089935 +0100
959 -@@ -33,17 +33,17 @@
960 - #include "nv_uvm_interface.h"
961 -
962 - uvm_global_t g_uvm_global;
963 --static struct UvmOpsUvmEvents g_exported_uvm8_ops;
964 -+static struct UvmOpsUvmEvents g_exported_uvm8_ops = {
965 -+ .startDevice = NULL,
966 -+ .stopDevice = NULL,
967 -+ .isrTopHalf = uvm8_isr_top_half,
968 -+};
969 - static bool g_ops_registered = false;
970 -
971 - static NV_STATUS uvm8_register_callbacks(void)
972 - {
973 - NV_STATUS status = NV_OK;
974 -
975 -- g_exported_uvm8_ops.startDevice = NULL;
976 -- g_exported_uvm8_ops.stopDevice = NULL;
977 -- g_exported_uvm8_ops.isrTopHalf = uvm8_isr_top_half;
978 --
979 - // Register the UVM callbacks with the main GPU driver:
980 - status = uvm_rm_locked_call(nvUvmInterfaceRegisterUvmCallbacks(&g_exported_uvm8_ops));
981 - if (status != NV_OK)
982 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c
983 ---- work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c 2016-03-17 03:59:59.000000000 +0100
984 -+++ work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c 2016-03-22 13:51:58.641294799 +0100
985 -@@ -285,7 +285,7 @@ NvU64 uvm_gpu_semaphore_get_gpu_va(uvm_g
986 -
987 - NvU32 uvm_gpu_semaphore_get_payload(uvm_gpu_semaphore_t *semaphore)
988 - {
989 -- return ACCESS_ONCE(*semaphore->payload);
990 -+ return ACCESS_ONCE_RW(*semaphore->payload);
991 - }
992 -
993 - void uvm_gpu_semaphore_set_payload(uvm_gpu_semaphore_t *semaphore, NvU32 payload)
994 -@@ -301,7 +301,7 @@ void uvm_gpu_semaphore_set_payload(uvm_g
995 - // being optimized out on non-SMP configs (we need them for interacting with
996 - // the GPU correctly even on non-SMP).
997 - mb();
998 -- ACCESS_ONCE(*semaphore->payload) = payload;
999 -+ ACCESS_ONCE_RW(*semaphore->payload) = payload;
1000 - }
1001 -
1002 - NV_STATUS uvm_gpu_tracking_semaphore_alloc(uvm_gpu_semaphore_pool_t *pool, uvm_gpu_tracking_semaphore_t *tracking_sem)
1003 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_hal.h work/kernel/nvidia-uvm/uvm8_hal.h
1004 ---- work.orig/kernel/nvidia-uvm/uvm8_hal.h 2016-03-17 03:59:59.000000000 +0100
1005 -+++ work/kernel/nvidia-uvm/uvm8_hal.h 2016-03-22 13:55:38.620347598 +0100
1006 -@@ -293,7 +293,7 @@ typedef struct
1007 - // fault_buffer_ops: id is a hardware class
1008 - uvm_fault_buffer_hal_t fault_buffer_ops;
1009 - } u;
1010 --} uvm_hal_class_ops_t;
1011 -+} __do_const uvm_hal_class_ops_t;
1012 -
1013 - // When UVM next support is enabled support for future chips in the hal is
1014 - // enabled by providing additional hal table entries below.
1015 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_mmu.h work/kernel/nvidia-uvm/uvm8_mmu.h
1016 ---- work.orig/kernel/nvidia-uvm/uvm8_mmu.h 2016-03-17 03:59:59.000000000 +0100
1017 -+++ work/kernel/nvidia-uvm/uvm8_mmu.h 2016-03-22 13:57:44.255581049 +0100
1018 -@@ -24,7 +24,6 @@
1019 - #ifndef __UVM8_MMU_H__
1020 - #define __UVM8_MMU_H__
1021 -
1022 --#include "uvm8_forward_decl.h"
1023 - #include "uvm8_hal_types.h"
1024 - #include "uvm8_pmm_gpu.h"
1025 - #include "uvmtypes.h"
1026 -diff -urp work.orig/kernel/nvidia-uvm/uvm_common.c work/kernel/nvidia-uvm/uvm_common.c
1027 ---- work.orig/kernel/nvidia-uvm/uvm_common.c 2016-03-17 03:59:59.000000000 +0100
1028 -+++ work/kernel/nvidia-uvm/uvm_common.c 2016-03-22 13:59:20.045675359 +0100
1029 -@@ -54,7 +54,6 @@
1030 - #include "uvm8_forward_decl.h"
1031 -
1032 - static dev_t g_uvmBaseDev;
1033 --struct UvmOpsUvmEvents g_exportedUvmOps;
1034 -
1035 - static char* uvm_driver_mode = "lite";
1036 -
1037 -@@ -171,10 +170,16 @@ static NV_STATUS uvmSetupGpuProvider(voi
1038 - {
1039 - NV_STATUS status = NV_OK;
1040 -
1041 -- g_exportedUvmOps.startDevice = uvm_gpu_event_start_device;
1042 -- g_exportedUvmOps.stopDevice = uvm_gpu_event_stop_device;
1043 -- if (uvmfull_activated())
1044 -- g_exportedUvmOps.isrTopHalf = uvmfull_isr_top_half;
1045 -+ static struct UvmOpsUvmEvents g_exportedUvmOps = {
1046 -+ .startDevice = uvm_gpu_event_start_device,
1047 -+ .stopDevice = uvm_gpu_event_stop_device,
1048 -+ };
1049 -+
1050 -+ if (uvmfull_activated()) {
1051 -+ pax_open_kernel();
1052 -+ *(void **)&g_exportedUvmOps.isrTopHalf = uvmfull_isr_top_half;
1053 -+ pax_close_kernel();
1054 -+ }
1055 -
1056 - // call RM to exchange the function pointers.
1057 - status = nvUvmInterfaceRegisterUvmCallbacks(&g_exportedUvmOps);
1058 -diff -urp work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h work/kernel/nvidia-uvm/uvm_full_fault_buffer.h
1059 ---- work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h 2016-03-17 03:59:59.000000000 +0100
1060 -+++ work/kernel/nvidia-uvm/uvm_full_fault_buffer.h 2016-03-22 13:51:58.645297533 +0100
1061 -@@ -31,6 +31,7 @@
1062 - #define _UVM_FULL_FAULT_BUFFER_H_
1063 -
1064 - #include "uvmtypes.h"
1065 -+#include "linux/compiler.h"
1066 -
1067 - #define MAXWELL_FAULT_BUFFER_A (0xb069)
1068 - #define MEM_RD32(a) (*(const volatile NvU32 *)(a))
1069 -@@ -303,7 +304,7 @@ typedef struct
1070 - NvUvmControlPrefetch_t controlPrefetch;
1071 - NvUvmTestFaultBufferOverflow_t testFaultBufferOverflow;
1072 - NvUvmClearFaultBufferOverflow_t clearFaultBufferOverflow;
1073 --} UvmFaultBufferOps;
1074 -+} __no_const UvmFaultBufferOps;
1075 -
1076 - /******************************************************************************
1077 - uvmfull_fault_buffer_init
1078 -diff -urp work.orig/kernel/nvidia-uvm/uvm_linux.h work/kernel/nvidia-uvm/uvm_linux.h
1079 ---- work.orig/kernel/nvidia-uvm/uvm_linux.h 2016-03-17 03:59:59.000000000 +0100
1080 -+++ work/kernel/nvidia-uvm/uvm_linux.h 2016-03-22 14:09:14.810534336 +0100
1081 -@@ -485,7 +485,7 @@ static inline NvU64 NV_GETTIME(void)
1082 -
1083 - // WRITE_ONCE/READ_ONCE have incompatible definitions across versions, which produces warnings.
1084 - // Therefore, we define our own macros
1085 --#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE(x) = (val))
1086 -+#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE_RW(x) = (val))
1087 - #define UVM_READ_ONCE(x) ACCESS_ONCE(x)
1088 -
1089 - // Added in 3.11
1090
1091 diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.35-pax.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.35-pax.patch
1092 deleted file mode 100644
1093 index b615064ddc4..00000000000
1094 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.35-pax.patch
1095 +++ /dev/null
1096 @@ -1,404 +0,0 @@
1097 -diff -urp work.orig/kernel/common/inc/nv-linux.h work/kernel/common/inc/nv-linux.h
1098 ---- work.orig/kernel/common/inc/nv-linux.h 2016-07-12 06:52:21.000000000 +0200
1099 -+++ work/kernel/common/inc/nv-linux.h 2016-07-16 22:45:59.870806346 +0200
1100 -@@ -1308,6 +1308,9 @@ extern void *nvidia_stack_t_cache;
1101 - #define NV_KMEM_CACHE_CREATE(name, type) \
1102 - NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, 0, NULL)
1103 -
1104 -+#define NV_KMEM_CACHE_CREATE_USERCOPY(name, type) \
1105 -+ NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, SLAB_USERCOPY, NULL)
1106 -+
1107 - #define NV_KMEM_CACHE_DESTROY(kmem_cache) \
1108 - kmem_cache_destroy(kmem_cache)
1109 -
1110 -diff -urp work.orig/kernel/common/inc/nv-modeset-interface.h work/kernel/common/inc/nv-modeset-interface.h
1111 ---- work.orig/kernel/common/inc/nv-modeset-interface.h 2016-07-12 06:52:21.000000000 +0200
1112 -+++ work/kernel/common/inc/nv-modeset-interface.h 2016-07-16 22:46:16.223400774 +0200
1113 -@@ -72,7 +72,7 @@ typedef struct {
1114 - * mix nvidia and nvidia-modeset kernel modules from different
1115 - * releases.
1116 - */
1117 -- const char *version_string;
1118 -+// const char *version_string;
1119 -
1120 - /*
1121 - * Return system information.
1122 -@@ -117,6 +117,6 @@ typedef struct {
1123 -
1124 - } nvidia_modeset_rm_ops_t;
1125 -
1126 --NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops);
1127 -+NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string);
1128 -
1129 - #endif /* _NV_MODESET_INTERFACE_H_ */
1130 -diff -urp work.orig/kernel/common/inc/nv-register-module.h work/kernel/common/inc/nv-register-module.h
1131 ---- work.orig/kernel/common/inc/nv-register-module.h 2016-07-12 06:52:21.000000000 +0200
1132 -+++ work/kernel/common/inc/nv-register-module.h 2016-07-16 22:45:59.870806346 +0200
1133 -@@ -34,7 +34,7 @@ typedef struct nvidia_module_s {
1134 - int (*ioctl)(struct inode *, struct file * file, unsigned int cmd, unsigned long arg);
1135 - unsigned int (*poll)(struct file * file, poll_table *wait);
1136 -
1137 --} nvidia_module_t;
1138 -+} __do_const nvidia_module_t;
1139 -
1140 - int nvidia_register_module(nvidia_module_t *);
1141 - int nvidia_unregister_module(nvidia_module_t *);
1142 -diff -urp work.orig/kernel/nvidia/nv.c work/kernel/nvidia/nv.c
1143 ---- work.orig/kernel/nvidia/nv.c 2016-07-12 06:52:21.000000000 +0200
1144 -+++ work/kernel/nvidia/nv.c 2016-07-16 22:45:59.874809435 +0200
1145 -@@ -654,7 +654,7 @@ int __init nvidia_init_module(void)
1146 - NV_SPIN_LOCK_INIT(&km_lock);
1147 - #endif
1148 -
1149 -- nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE(nvidia_stack_cache_name,
1150 -+ nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE_USERCOPY(nvidia_stack_cache_name,
1151 - nvidia_stack_t);
1152 - if (nvidia_stack_t_cache == NULL)
1153 - {
1154 -diff -urp work.orig/kernel/nvidia/nv-chrdev.c work/kernel/nvidia/nv-chrdev.c
1155 ---- work.orig/kernel/nvidia/nv-chrdev.c 2016-07-12 06:52:21.000000000 +0200
1156 -+++ work/kernel/nvidia/nv-chrdev.c 2016-07-16 22:45:59.874809435 +0200
1157 -@@ -20,8 +20,6 @@ int nv_register_chrdev(void *param)
1158 - {
1159 - nvidia_module_t *module = (nvidia_module_t *)param;
1160 -
1161 -- module->instance = nv_module_instance;
1162 --
1163 - return (nvidia_register_module(module));
1164 - }
1165 -
1166 -diff -urp work.orig/kernel/nvidia/nv-instance.c work/kernel/nvidia/nv-instance.c
1167 ---- work.orig/kernel/nvidia/nv-instance.c 2016-07-12 06:52:21.000000000 +0200
1168 -+++ work/kernel/nvidia/nv-instance.c 2016-07-16 22:45:59.874809435 +0200
1169 -@@ -51,6 +51,7 @@ struct pci_driver nv_pci_driver = {
1170 - nvidia_module_t nv_fops = {
1171 - .owner = THIS_MODULE,
1172 - .module_name = MODULE_NAME,
1173 -+ .instance = MODULE_INSTANCE_NUMBER,
1174 - .open = nvidia_open,
1175 - .close = nvidia_close,
1176 - .ioctl = nvidia_ioctl,
1177 -diff -urp work.orig/kernel/nvidia/nv-mmap.c work/kernel/nvidia/nv-mmap.c
1178 ---- work.orig/kernel/nvidia/nv-mmap.c 2016-07-12 06:52:21.000000000 +0200
1179 -+++ work/kernel/nvidia/nv-mmap.c 2016-07-16 22:45:59.874809435 +0200
1180 -@@ -113,12 +113,12 @@ nvidia_vma_release(struct vm_area_struct
1181 - }
1182 -
1183 - #if defined(NV_VM_OPERATIONS_STRUCT_HAS_ACCESS)
1184 --static int
1185 -+static ssize_t
1186 - nvidia_vma_access(
1187 - struct vm_area_struct *vma,
1188 - unsigned long addr,
1189 - void *buffer,
1190 -- int length,
1191 -+ size_t length,
1192 - int write
1193 - )
1194 - {
1195 -diff -urp work.orig/kernel/nvidia/nv-modeset-interface.c work/kernel/nvidia/nv-modeset-interface.c
1196 ---- work.orig/kernel/nvidia/nv-modeset-interface.c 2016-07-12 06:52:21.000000000 +0200
1197 -+++ work/kernel/nvidia/nv-modeset-interface.c 2016-07-16 22:54:36.567962197 +0200
1198 -@@ -100,10 +100,9 @@ static NvU32 nvidia_modeset_enumerate_gp
1199 - return count;
1200 - }
1201 -
1202 --NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops)
1203 -+NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string)
1204 - {
1205 -- const nvidia_modeset_rm_ops_t local_rm_ops = {
1206 -- .version_string = NV_VERSION_STRING,
1207 -+ static const nvidia_modeset_rm_ops_t local_rm_ops = {
1208 - .system_info = {
1209 - .allow_write_combining = NV_FALSE,
1210 - },
1211 -@@ -116,17 +115,26 @@ NV_STATUS nvidia_get_rm_ops(nvidia_modes
1212 - .set_callbacks = nvidia_modeset_set_callbacks,
1213 - };
1214 -
1215 -- if (strcmp(rm_ops->version_string, NV_VERSION_STRING) != 0)
1216 -+ static const nvidia_modeset_rm_ops_t local_rm_ops_wc = {
1217 -+ .system_info = {
1218 -+ .allow_write_combining = NV_TRUE,
1219 -+ },
1220 -+ .alloc_stack = nvidia_modeset_rm_ops_alloc_stack,
1221 -+ .free_stack = nvidia_modeset_rm_ops_free_stack,
1222 -+ .enumerate_gpus = nvidia_modeset_enumerate_gpus,
1223 -+ .open_gpu = nvidia_dev_get,
1224 -+ .close_gpu = nvidia_dev_put,
1225 -+ .op = rm_kernel_rmapi_op, /* provided by nv-kernel.o */
1226 -+ .set_callbacks = nvidia_modeset_set_callbacks,
1227 -+ };
1228 -+
1229 -+ if (strcmp(*version_string, NV_VERSION_STRING) != 0)
1230 - {
1231 -- rm_ops->version_string = NV_VERSION_STRING;
1232 -+ *version_string = NV_VERSION_STRING;
1233 - return NV_ERR_GENERIC;
1234 - }
1235 -
1236 -- *rm_ops = local_rm_ops;
1237 --
1238 -- if (NV_ALLOW_WRITE_COMBINING(NV_MEMORY_TYPE_FRAMEBUFFER)) {
1239 -- rm_ops->system_info.allow_write_combining = NV_TRUE;
1240 -- }
1241 -+ *rm_ops = NV_ALLOW_WRITE_COMBINING(NV_MEMORY_TYPE_FRAMEBUFFER) ? &local_rm_ops_wc : &local_rm_ops;
1242 -
1243 - return NV_OK;
1244 - }
1245 -diff -urp work.orig/kernel/nvidia-drm/nvidia-drm-drv.c work/kernel/nvidia-drm/nvidia-drm-drv.c
1246 ---- work.orig/kernel/nvidia-drm/nvidia-drm-drv.c 2016-07-12 06:53:45.000000000 +0200
1247 -+++ work/kernel/nvidia-drm/nvidia-drm-drv.c 2016-07-16 22:45:59.878812524 +0200
1248 -@@ -592,7 +592,7 @@ static const struct drm_ioctl_desc nv_dr
1249 - DRM_CONTROL_ALLOW|DRM_RENDER_ALLOW|DRM_UNLOCKED),
1250 - };
1251 -
1252 --static struct drm_driver nv_drm_driver = {
1253 -+static drm_driver_no_const nv_drm_driver __read_only = {
1254 -
1255 - .driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER,
1256 -
1257 -@@ -649,6 +649,7 @@ static void nvidia_update_drm_driver_fea
1258 - return;
1259 - }
1260 -
1261 -+ pax_open_kernel();
1262 - nv_drm_driver.driver_features |= DRIVER_MODESET | DRIVER_ATOMIC;
1263 -
1264 - nv_drm_driver.master_set = nvidia_drm_master_set;
1265 -@@ -657,6 +658,7 @@ static void nvidia_update_drm_driver_fea
1266 - nv_drm_driver.dumb_create = nvidia_drm_dumb_create;
1267 - nv_drm_driver.dumb_map_offset = nvidia_drm_dumb_map_offset;
1268 - nv_drm_driver.dumb_destroy = drm_gem_dumb_destroy;
1269 -+ pax_close_kernel();
1270 -
1271 - #endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */
1272 - }
1273 -diff -urp work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c work/kernel/nvidia-modeset/nvidia-modeset-linux.c
1274 ---- work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c 2016-07-12 06:53:46.000000000 +0200
1275 -+++ work/kernel/nvidia-modeset/nvidia-modeset-linux.c 2016-07-16 22:47:09.334133112 +0200
1276 -@@ -317,29 +317,28 @@ static void nvkms_resume(NvU32 gpuId)
1277 - * Interface with resman.
1278 - *************************************************************************/
1279 -
1280 --static nvidia_modeset_rm_ops_t __rm_ops = { 0 };
1281 -+static const nvidia_modeset_rm_ops_t *__rm_ops;
1282 - static nvidia_modeset_callbacks_t nvkms_rm_callbacks = {
1283 -- nvkms_suspend,
1284 -- nvkms_resume
1285 -+ .suspend = nvkms_suspend,
1286 -+ .resume = nvkms_resume
1287 - };
1288 -
1289 - static int nvkms_alloc_rm(void)
1290 - {
1291 - NV_STATUS nvstatus;
1292 - int ret;
1293 -+ const char *version_string = NV_VERSION_STRING;
1294 -
1295 -- __rm_ops.version_string = NV_VERSION_STRING;
1296 --
1297 -- nvstatus = nvidia_get_rm_ops(&__rm_ops);
1298 -+ nvstatus = nvidia_get_rm_ops(&__rm_ops, &version_string);
1299 -
1300 - if (nvstatus != NV_OK) {
1301 - printk(KERN_ERR NVKMS_LOG_PREFIX "Version mismatch: "
1302 - "nvidia.ko(%s) nvidia-modeset.ko(%s)\n",
1303 -- __rm_ops.version_string, NV_VERSION_STRING);
1304 -+ version_string, NV_VERSION_STRING);
1305 - return -EINVAL;
1306 - }
1307 -
1308 -- ret = __rm_ops.set_callbacks(&nvkms_rm_callbacks);
1309 -+ ret = __rm_ops->set_callbacks(&nvkms_rm_callbacks);
1310 - if (ret < 0) {
1311 - printk(KERN_ERR NVKMS_LOG_PREFIX "Failed to register callbacks\n");
1312 - return ret;
1313 -@@ -350,20 +349,20 @@ static int nvkms_alloc_rm(void)
1314 -
1315 - static void nvkms_free_rm(void)
1316 - {
1317 -- __rm_ops.set_callbacks(NULL);
1318 -+ __rm_ops->set_callbacks(NULL);
1319 - }
1320 -
1321 - void NVKMS_API_CALL nvkms_call_rm(void *ops)
1322 - {
1323 - nvidia_modeset_stack_ptr stack = NULL;
1324 -
1325 -- if (__rm_ops.alloc_stack(&stack) != 0) {
1326 -+ if (__rm_ops->alloc_stack(&stack) != 0) {
1327 - return;
1328 - }
1329 -
1330 -- __rm_ops.op(stack, ops);
1331 -+ __rm_ops->op(stack, ops);
1332 -
1333 -- __rm_ops.free_stack(stack);
1334 -+ __rm_ops->free_stack(stack);
1335 - }
1336 -
1337 - /*************************************************************************
1338 -@@ -685,13 +684,13 @@ NvBool NVKMS_API_CALL nvkms_open_gpu(NvU
1339 - nvidia_modeset_stack_ptr stack = NULL;
1340 - NvBool ret;
1341 -
1342 -- if (__rm_ops.alloc_stack(&stack) != 0) {
1343 -+ if (__rm_ops->alloc_stack(&stack) != 0) {
1344 - return NV_FALSE;
1345 - }
1346 -
1347 -- ret = __rm_ops.open_gpu(gpuId, stack) == 0;
1348 -+ ret = __rm_ops->open_gpu(gpuId, stack) == 0;
1349 -
1350 -- __rm_ops.free_stack(stack);
1351 -+ __rm_ops->free_stack(stack);
1352 -
1353 - return ret;
1354 - }
1355 -@@ -700,23 +699,23 @@ void NVKMS_API_CALL nvkms_close_gpu(NvU3
1356 - {
1357 - nvidia_modeset_stack_ptr stack = NULL;
1358 -
1359 -- if (__rm_ops.alloc_stack(&stack) != 0) {
1360 -+ if (__rm_ops->alloc_stack(&stack) != 0) {
1361 - return;
1362 - }
1363 -
1364 -- __rm_ops.close_gpu(gpuId, stack);
1365 -+ __rm_ops->close_gpu(gpuId, stack);
1366 -
1367 -- __rm_ops.free_stack(stack);
1368 -+ __rm_ops->free_stack(stack);
1369 - }
1370 -
1371 - NvU32 NVKMS_API_CALL nvkms_enumerate_gpus(nv_gpu_info_t *gpu_info)
1372 - {
1373 -- return __rm_ops.enumerate_gpus(gpu_info);
1374 -+ return __rm_ops->enumerate_gpus(gpu_info);
1375 - }
1376 -
1377 - NvBool NVKMS_API_CALL nvkms_allow_write_combining(void)
1378 - {
1379 -- return __rm_ops.system_info.allow_write_combining;
1380 -+ return __rm_ops->system_info.allow_write_combining;
1381 - }
1382 -
1383 - /*************************************************************************
1384 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_global.c work/kernel/nvidia-uvm/uvm8_global.c
1385 ---- work.orig/kernel/nvidia-uvm/uvm8_global.c 2016-07-12 06:52:17.000000000 +0200
1386 -+++ work/kernel/nvidia-uvm/uvm8_global.c 2016-07-16 22:45:59.878812524 +0200
1387 -@@ -35,17 +35,17 @@
1388 - #include "nv_uvm_interface.h"
1389 -
1390 - uvm_global_t g_uvm_global;
1391 --static struct UvmOpsUvmEvents g_exported_uvm8_ops;
1392 -+static struct UvmOpsUvmEvents g_exported_uvm8_ops = {
1393 -+ .startDevice = NULL,
1394 -+ .stopDevice = NULL,
1395 -+ .isrTopHalf = uvm8_isr_top_half,
1396 -+};
1397 - static bool g_ops_registered = false;
1398 -
1399 - static NV_STATUS uvm8_register_callbacks(void)
1400 - {
1401 - NV_STATUS status = NV_OK;
1402 -
1403 -- g_exported_uvm8_ops.startDevice = NULL;
1404 -- g_exported_uvm8_ops.stopDevice = NULL;
1405 -- g_exported_uvm8_ops.isrTopHalf = uvm8_isr_top_half;
1406 --
1407 - // Register the UVM callbacks with the main GPU driver:
1408 - status = uvm_rm_locked_call(nvUvmInterfaceRegisterUvmCallbacks(&g_exported_uvm8_ops));
1409 - if (status != NV_OK)
1410 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c
1411 ---- work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c 2016-07-12 06:52:17.000000000 +0200
1412 -+++ work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c 2016-07-16 22:45:59.878812524 +0200
1413 -@@ -368,7 +368,7 @@ void uvm_gpu_semaphore_set_payload(uvm_g
1414 - // being optimized out on non-SMP configs (we need them for interacting with
1415 - // the GPU correctly even on non-SMP).
1416 - mb();
1417 -- ACCESS_ONCE(*semaphore->payload) = payload;
1418 -+ ACCESS_ONCE_RW(*semaphore->payload) = payload;
1419 - }
1420 -
1421 - // This function is intended to catch channels which have been left dangling in
1422 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_hal.h work/kernel/nvidia-uvm/uvm8_hal.h
1423 ---- work.orig/kernel/nvidia-uvm/uvm8_hal.h 2016-07-12 06:52:17.000000000 +0200
1424 -+++ work/kernel/nvidia-uvm/uvm8_hal.h 2016-07-16 22:45:59.878812524 +0200
1425 -@@ -310,7 +310,7 @@ typedef struct
1426 - // fault_buffer_ops: id is a hardware class
1427 - uvm_fault_buffer_hal_t fault_buffer_ops;
1428 - } u;
1429 --} uvm_hal_class_ops_t;
1430 -+} __do_const uvm_hal_class_ops_t;
1431 -
1432 - // When UVM next support is enabled support for future chips in the hal is
1433 - // enabled by providing additional hal table entries below.
1434 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_mmu.h work/kernel/nvidia-uvm/uvm8_mmu.h
1435 ---- work.orig/kernel/nvidia-uvm/uvm8_mmu.h 2016-07-12 06:52:17.000000000 +0200
1436 -+++ work/kernel/nvidia-uvm/uvm8_mmu.h 2016-07-16 22:45:59.878812524 +0200
1437 -@@ -24,7 +24,6 @@
1438 - #ifndef __UVM8_MMU_H__
1439 - #define __UVM8_MMU_H__
1440 -
1441 --#include "uvm8_forward_decl.h"
1442 - #include "uvm8_hal_types.h"
1443 - #include "uvm8_pmm_gpu.h"
1444 - #include "uvmtypes.h"
1445 -diff -urp work.orig/kernel/nvidia-uvm/uvm_common.c work/kernel/nvidia-uvm/uvm_common.c
1446 ---- work.orig/kernel/nvidia-uvm/uvm_common.c 2016-07-12 06:52:17.000000000 +0200
1447 -+++ work/kernel/nvidia-uvm/uvm_common.c 2016-07-16 22:45:59.878812524 +0200
1448 -@@ -51,7 +51,6 @@
1449 - #define UVM_SPIN_LOOP_PRINT_TIMEOUT_SEC 30ULL
1450 -
1451 - static dev_t g_uvmBaseDev;
1452 --struct UvmOpsUvmEvents g_exportedUvmOps;
1453 -
1454 - static char* uvm_driver_mode = "8";
1455 -
1456 -@@ -175,8 +174,10 @@ static NV_STATUS uvmSetupGpuProvider(voi
1457 - {
1458 - NV_STATUS status = NV_OK;
1459 -
1460 -- g_exportedUvmOps.startDevice = uvm_gpu_event_start_device;
1461 -- g_exportedUvmOps.stopDevice = uvm_gpu_event_stop_device;
1462 -+ static struct UvmOpsUvmEvents g_exportedUvmOps = {
1463 -+ .startDevice = uvm_gpu_event_start_device,
1464 -+ .stopDevice = uvm_gpu_event_stop_device,
1465 -+ };
1466 -
1467 - // call RM to exchange the function pointers.
1468 - status = nvUvmInterfaceRegisterUvmCallbacks(&g_exportedUvmOps);
1469 -diff -urp work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h work/kernel/nvidia-uvm/uvm_full_fault_buffer.h
1470 ---- work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h 2016-07-12 06:52:17.000000000 +0200
1471 -+++ work/kernel/nvidia-uvm/uvm_full_fault_buffer.h 2016-07-16 22:45:59.878812524 +0200
1472 -@@ -31,6 +31,7 @@
1473 - #define _UVM_FULL_FAULT_BUFFER_H_
1474 -
1475 - #include "uvmtypes.h"
1476 -+#include "linux/compiler.h"
1477 -
1478 - #define MAXWELL_FAULT_BUFFER_A (0xb069)
1479 - #define MEM_RD32(a) (*(const volatile NvU32 *)(a))
1480 -@@ -303,7 +304,7 @@ typedef struct
1481 - NvUvmControlPrefetch_t controlPrefetch;
1482 - NvUvmTestFaultBufferOverflow_t testFaultBufferOverflow;
1483 - NvUvmClearFaultBufferOverflow_t clearFaultBufferOverflow;
1484 --} UvmFaultBufferOps;
1485 -+} __no_const UvmFaultBufferOps;
1486 -
1487 - /******************************************************************************
1488 - uvmfull_fault_buffer_init
1489 -diff -urp work.orig/kernel/nvidia-uvm/uvm_linux.h work/kernel/nvidia-uvm/uvm_linux.h
1490 ---- work.orig/kernel/nvidia-uvm/uvm_linux.h 2016-07-12 06:52:17.000000000 +0200
1491 -+++ work/kernel/nvidia-uvm/uvm_linux.h 2016-07-16 22:45:59.882815613 +0200
1492 -@@ -508,7 +508,7 @@ static inline NvU64 NV_GETTIME(void)
1493 -
1494 - // WRITE_ONCE/READ_ONCE have incompatible definitions across versions, which produces warnings.
1495 - // Therefore, we define our own macros
1496 --#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE(x) = (val))
1497 -+#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE_RW(x) = (val))
1498 - #define UVM_READ_ONCE(x) ACCESS_ONCE(x)
1499 -
1500 - // Added in 3.11
1501
1502 diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.57-pax.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.57-pax.patch
1503 deleted file mode 100644
1504 index bf2013265ad..00000000000
1505 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.57-pax.patch
1506 +++ /dev/null
1507 @@ -1,391 +0,0 @@
1508 -diff -urp work.orig/kernel/common/inc/nv-linux.h work/kernel/common/inc/nv-linux.h
1509 ---- work.orig/kernel/common/inc/nv-linux.h 2016-07-12 06:52:21.000000000 +0200
1510 -+++ work/kernel/common/inc/nv-linux.h 2016-07-16 22:45:59.870806346 +0200
1511 -@@ -1308,6 +1308,9 @@ extern void *nvidia_stack_t_cache;
1512 - #define NV_KMEM_CACHE_CREATE(name, type) \
1513 - NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, 0, NULL)
1514 -
1515 -+#define NV_KMEM_CACHE_CREATE_USERCOPY(name, type) \
1516 -+ NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, SLAB_USERCOPY, NULL)
1517 -+
1518 - #define NV_KMEM_CACHE_DESTROY(kmem_cache) \
1519 - kmem_cache_destroy(kmem_cache)
1520 -
1521 -diff -urp work.orig/kernel/common/inc/nv-modeset-interface.h work/kernel/common/inc/nv-modeset-interface.h
1522 ---- work.orig/kernel/common/inc/nv-modeset-interface.h 2016-07-12 06:52:21.000000000 +0200
1523 -+++ work/kernel/common/inc/nv-modeset-interface.h 2016-07-16 22:46:16.223400774 +0200
1524 -@@ -72,7 +72,7 @@ typedef struct {
1525 - * mix nvidia and nvidia-modeset kernel modules from different
1526 - * releases.
1527 - */
1528 -- const char *version_string;
1529 -+// const char *version_string;
1530 -
1531 - /*
1532 - * Return system information.
1533 -@@ -117,6 +117,6 @@ typedef struct {
1534 -
1535 - } nvidia_modeset_rm_ops_t;
1536 -
1537 --NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops);
1538 -+NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string);
1539 -
1540 - #endif /* _NV_MODESET_INTERFACE_H_ */
1541 -diff -urp work.orig/kernel/common/inc/nv-register-module.h work/kernel/common/inc/nv-register-module.h
1542 ---- work.orig/kernel/common/inc/nv-register-module.h 2016-07-12 06:52:21.000000000 +0200
1543 -+++ work/kernel/common/inc/nv-register-module.h 2016-07-16 22:45:59.870806346 +0200
1544 -@@ -34,7 +34,7 @@ typedef struct nvidia_module_s {
1545 - int (*ioctl)(struct inode *, struct file * file, unsigned int cmd, unsigned long arg);
1546 - unsigned int (*poll)(struct file * file, poll_table *wait);
1547 -
1548 --} nvidia_module_t;
1549 -+} __do_const nvidia_module_t;
1550 -
1551 - int nvidia_register_module(nvidia_module_t *);
1552 - int nvidia_unregister_module(nvidia_module_t *);
1553 -diff -urp work.orig/kernel/nvidia/nv.c work/kernel/nvidia/nv.c
1554 ---- work.orig/kernel/nvidia/nv.c 2016-07-12 06:52:21.000000000 +0200
1555 -+++ work/kernel/nvidia/nv.c 2016-07-16 22:45:59.874809435 +0200
1556 -@@ -654,7 +654,7 @@ int __init nvidia_init_module(void)
1557 - NV_SPIN_LOCK_INIT(&km_lock);
1558 - #endif
1559 -
1560 -- nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE(nvidia_stack_cache_name,
1561 -+ nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE_USERCOPY(nvidia_stack_cache_name,
1562 - nvidia_stack_t);
1563 - if (nvidia_stack_t_cache == NULL)
1564 - {
1565 -diff -urp work.orig/kernel/nvidia/nv-chrdev.c work/kernel/nvidia/nv-chrdev.c
1566 ---- work.orig/kernel/nvidia/nv-chrdev.c 2016-07-12 06:52:21.000000000 +0200
1567 -+++ work/kernel/nvidia/nv-chrdev.c 2016-07-16 22:45:59.874809435 +0200
1568 -@@ -20,8 +20,6 @@ int nv_register_chrdev(void *param)
1569 - {
1570 - nvidia_module_t *module = (nvidia_module_t *)param;
1571 -
1572 -- module->instance = nv_module_instance;
1573 --
1574 - return (nvidia_register_module(module));
1575 - }
1576 -
1577 -diff -urp work.orig/kernel/nvidia/nv-instance.c work/kernel/nvidia/nv-instance.c
1578 ---- work.orig/kernel/nvidia/nv-instance.c 2016-07-12 06:52:21.000000000 +0200
1579 -+++ work/kernel/nvidia/nv-instance.c 2016-07-16 22:45:59.874809435 +0200
1580 -@@ -51,6 +51,7 @@ struct pci_driver nv_pci_driver = {
1581 - nvidia_module_t nv_fops = {
1582 - .owner = THIS_MODULE,
1583 - .module_name = MODULE_NAME,
1584 -+ .instance = MODULE_INSTANCE_NUMBER,
1585 - .open = nvidia_open,
1586 - .close = nvidia_close,
1587 - .ioctl = nvidia_ioctl,
1588 -diff -urp work.orig/kernel/nvidia/nv-mmap.c work/kernel/nvidia/nv-mmap.c
1589 ---- work.orig/kernel/nvidia/nv-mmap.c 2016-07-12 06:52:21.000000000 +0200
1590 -+++ work/kernel/nvidia/nv-mmap.c 2016-07-16 22:45:59.874809435 +0200
1591 -@@ -113,12 +113,12 @@ nvidia_vma_release(struct vm_area_struct
1592 - }
1593 -
1594 - #if defined(NV_VM_OPERATIONS_STRUCT_HAS_ACCESS)
1595 --static int
1596 -+static ssize_t
1597 - nvidia_vma_access(
1598 - struct vm_area_struct *vma,
1599 - unsigned long addr,
1600 - void *buffer,
1601 -- int length,
1602 -+ size_t length,
1603 - int write
1604 - )
1605 - {
1606 -diff -urp work.orig/kernel/nvidia/nv-modeset-interface.c work/kernel/nvidia/nv-modeset-interface.c
1607 ---- work.orig/kernel/nvidia/nv-modeset-interface.c 2016-07-12 06:52:21.000000000 +0200
1608 -+++ work/kernel/nvidia/nv-modeset-interface.c 2016-07-16 22:54:36.567962197 +0200
1609 -@@ -100,10 +100,9 @@ static NvU32 nvidia_modeset_enumerate_gp
1610 - return count;
1611 - }
1612 -
1613 --NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops)
1614 -+NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string)
1615 - {
1616 -- const nvidia_modeset_rm_ops_t local_rm_ops = {
1617 -- .version_string = NV_VERSION_STRING,
1618 -+ static const nvidia_modeset_rm_ops_t local_rm_ops = {
1619 - .system_info = {
1620 - .allow_write_combining = NV_FALSE,
1621 - },
1622 -@@ -116,17 +115,26 @@ NV_STATUS nvidia_get_rm_ops(nvidia_modes
1623 - .set_callbacks = nvidia_modeset_set_callbacks,
1624 - };
1625 -
1626 -- if (strcmp(rm_ops->version_string, NV_VERSION_STRING) != 0)
1627 -+ static const nvidia_modeset_rm_ops_t local_rm_ops_wc = {
1628 -+ .system_info = {
1629 -+ .allow_write_combining = NV_TRUE,
1630 -+ },
1631 -+ .alloc_stack = nvidia_modeset_rm_ops_alloc_stack,
1632 -+ .free_stack = nvidia_modeset_rm_ops_free_stack,
1633 -+ .enumerate_gpus = nvidia_modeset_enumerate_gpus,
1634 -+ .open_gpu = nvidia_dev_get,
1635 -+ .close_gpu = nvidia_dev_put,
1636 -+ .op = rm_kernel_rmapi_op, /* provided by nv-kernel.o */
1637 -+ .set_callbacks = nvidia_modeset_set_callbacks,
1638 -+ };
1639 -+
1640 -+ if (strcmp(*version_string, NV_VERSION_STRING) != 0)
1641 - {
1642 -- rm_ops->version_string = NV_VERSION_STRING;
1643 -+ *version_string = NV_VERSION_STRING;
1644 - return NV_ERR_GENERIC;
1645 - }
1646 -
1647 -- *rm_ops = local_rm_ops;
1648 --
1649 -- if (NV_ALLOW_WRITE_COMBINING(NV_MEMORY_TYPE_FRAMEBUFFER)) {
1650 -- rm_ops->system_info.allow_write_combining = NV_TRUE;
1651 -- }
1652 -+ *rm_ops = NV_ALLOW_WRITE_COMBINING(NV_MEMORY_TYPE_FRAMEBUFFER) ? &local_rm_ops_wc : &local_rm_ops;
1653 -
1654 - return NV_OK;
1655 - }
1656 -diff -urp work.orig/kernel/nvidia-drm/nvidia-drm-drv.c work/kernel/nvidia-drm/nvidia-drm-drv.c
1657 ---- work.orig/kernel/nvidia-drm/nvidia-drm-drv.c 2016-07-12 06:53:45.000000000 +0200
1658 -+++ work/kernel/nvidia-drm/nvidia-drm-drv.c 2016-07-16 22:45:59.878812524 +0200
1659 -@@ -592,7 +592,7 @@ static const struct drm_ioctl_desc nv_dr
1660 - DRM_CONTROL_ALLOW|DRM_RENDER_ALLOW|DRM_UNLOCKED),
1661 - };
1662 -
1663 --static struct drm_driver nv_drm_driver = {
1664 -+static drm_driver_no_const nv_drm_driver __read_only = {
1665 -
1666 - .driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER,
1667 -
1668 -@@ -649,6 +649,7 @@ static void nvidia_update_drm_driver_fea
1669 - return;
1670 - }
1671 -
1672 -+ pax_open_kernel();
1673 - nv_drm_driver.driver_features |= DRIVER_MODESET | DRIVER_ATOMIC;
1674 -
1675 - nv_drm_driver.master_set = nvidia_drm_master_set;
1676 -@@ -657,6 +658,7 @@ static void nvidia_update_drm_driver_fea
1677 - nv_drm_driver.dumb_create = nvidia_drm_dumb_create;
1678 - nv_drm_driver.dumb_map_offset = nvidia_drm_dumb_map_offset;
1679 - nv_drm_driver.dumb_destroy = drm_gem_dumb_destroy;
1680 -+ pax_close_kernel();
1681 -
1682 - #endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */
1683 - }
1684 -diff -urp work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c work/kernel/nvidia-modeset/nvidia-modeset-linux.c
1685 ---- work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c 2016-07-12 06:53:46.000000000 +0200
1686 -+++ work/kernel/nvidia-modeset/nvidia-modeset-linux.c 2016-07-16 22:47:09.334133112 +0200
1687 -@@ -317,29 +317,28 @@ static void nvkms_resume(NvU32 gpuId)
1688 - * Interface with resman.
1689 - *************************************************************************/
1690 -
1691 --static nvidia_modeset_rm_ops_t __rm_ops = { 0 };
1692 -+static const nvidia_modeset_rm_ops_t *__rm_ops;
1693 - static nvidia_modeset_callbacks_t nvkms_rm_callbacks = {
1694 -- nvkms_suspend,
1695 -- nvkms_resume
1696 -+ .suspend = nvkms_suspend,
1697 -+ .resume = nvkms_resume
1698 - };
1699 -
1700 - static int nvkms_alloc_rm(void)
1701 - {
1702 - NV_STATUS nvstatus;
1703 - int ret;
1704 -+ const char *version_string = NV_VERSION_STRING;
1705 -
1706 -- __rm_ops.version_string = NV_VERSION_STRING;
1707 --
1708 -- nvstatus = nvidia_get_rm_ops(&__rm_ops);
1709 -+ nvstatus = nvidia_get_rm_ops(&__rm_ops, &version_string);
1710 -
1711 - if (nvstatus != NV_OK) {
1712 - printk(KERN_ERR NVKMS_LOG_PREFIX "Version mismatch: "
1713 - "nvidia.ko(%s) nvidia-modeset.ko(%s)\n",
1714 -- __rm_ops.version_string, NV_VERSION_STRING);
1715 -+ version_string, NV_VERSION_STRING);
1716 - return -EINVAL;
1717 - }
1718 -
1719 -- ret = __rm_ops.set_callbacks(&nvkms_rm_callbacks);
1720 -+ ret = __rm_ops->set_callbacks(&nvkms_rm_callbacks);
1721 - if (ret < 0) {
1722 - printk(KERN_ERR NVKMS_LOG_PREFIX "Failed to register callbacks\n");
1723 - return ret;
1724 -@@ -350,20 +349,20 @@ static int nvkms_alloc_rm(void)
1725 -
1726 - static void nvkms_free_rm(void)
1727 - {
1728 -- __rm_ops.set_callbacks(NULL);
1729 -+ __rm_ops->set_callbacks(NULL);
1730 - }
1731 -
1732 - void NVKMS_API_CALL nvkms_call_rm(void *ops)
1733 - {
1734 - nvidia_modeset_stack_ptr stack = NULL;
1735 -
1736 -- if (__rm_ops.alloc_stack(&stack) != 0) {
1737 -+ if (__rm_ops->alloc_stack(&stack) != 0) {
1738 - return;
1739 - }
1740 -
1741 -- __rm_ops.op(stack, ops);
1742 -+ __rm_ops->op(stack, ops);
1743 -
1744 -- __rm_ops.free_stack(stack);
1745 -+ __rm_ops->free_stack(stack);
1746 - }
1747 -
1748 - /*************************************************************************
1749 -@@ -685,13 +684,13 @@ NvBool NVKMS_API_CALL nvkms_open_gpu(NvU
1750 - nvidia_modeset_stack_ptr stack = NULL;
1751 - NvBool ret;
1752 -
1753 -- if (__rm_ops.alloc_stack(&stack) != 0) {
1754 -+ if (__rm_ops->alloc_stack(&stack) != 0) {
1755 - return NV_FALSE;
1756 - }
1757 -
1758 -- ret = __rm_ops.open_gpu(gpuId, stack) == 0;
1759 -+ ret = __rm_ops->open_gpu(gpuId, stack) == 0;
1760 -
1761 -- __rm_ops.free_stack(stack);
1762 -+ __rm_ops->free_stack(stack);
1763 -
1764 - return ret;
1765 - }
1766 -@@ -700,23 +699,23 @@ void NVKMS_API_CALL nvkms_close_gpu(NvU3
1767 - {
1768 - nvidia_modeset_stack_ptr stack = NULL;
1769 -
1770 -- if (__rm_ops.alloc_stack(&stack) != 0) {
1771 -+ if (__rm_ops->alloc_stack(&stack) != 0) {
1772 - return;
1773 - }
1774 -
1775 -- __rm_ops.close_gpu(gpuId, stack);
1776 -+ __rm_ops->close_gpu(gpuId, stack);
1777 -
1778 -- __rm_ops.free_stack(stack);
1779 -+ __rm_ops->free_stack(stack);
1780 - }
1781 -
1782 - NvU32 NVKMS_API_CALL nvkms_enumerate_gpus(nv_gpu_info_t *gpu_info)
1783 - {
1784 -- return __rm_ops.enumerate_gpus(gpu_info);
1785 -+ return __rm_ops->enumerate_gpus(gpu_info);
1786 - }
1787 -
1788 - NvBool NVKMS_API_CALL nvkms_allow_write_combining(void)
1789 - {
1790 -- return __rm_ops.system_info.allow_write_combining;
1791 -+ return __rm_ops->system_info.allow_write_combining;
1792 - }
1793 -
1794 - /*************************************************************************
1795 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_global.c work/kernel/nvidia-uvm/uvm8_global.c
1796 ---- work.orig/kernel/nvidia-uvm/uvm8_global.c 2016-07-12 06:52:17.000000000 +0200
1797 -+++ work/kernel/nvidia-uvm/uvm8_global.c 2016-07-16 22:45:59.878812524 +0200
1798 -@@ -35,17 +35,17 @@
1799 - #include "nv_uvm_interface.h"
1800 -
1801 - uvm_global_t g_uvm_global;
1802 --static struct UvmOpsUvmEvents g_exported_uvm8_ops;
1803 -+static struct UvmOpsUvmEvents g_exported_uvm8_ops = {
1804 -+ .startDevice = NULL,
1805 -+ .stopDevice = NULL,
1806 -+ .isrTopHalf = uvm8_isr_top_half,
1807 -+};
1808 - static bool g_ops_registered = false;
1809 -
1810 - static NV_STATUS uvm8_register_callbacks(void)
1811 - {
1812 - NV_STATUS status = NV_OK;
1813 -
1814 -- g_exported_uvm8_ops.startDevice = NULL;
1815 -- g_exported_uvm8_ops.stopDevice = NULL;
1816 -- g_exported_uvm8_ops.isrTopHalf = uvm8_isr_top_half;
1817 --
1818 - // Register the UVM callbacks with the main GPU driver:
1819 - status = uvm_rm_locked_call(nvUvmInterfaceRegisterUvmCallbacks(&g_exported_uvm8_ops));
1820 - if (status != NV_OK)
1821 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c
1822 ---- work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c 2016-07-12 06:52:17.000000000 +0200
1823 -+++ work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c 2016-07-16 22:45:59.878812524 +0200
1824 -@@ -368,7 +368,7 @@ void uvm_gpu_semaphore_set_payload(uvm_g
1825 - // being optimized out on non-SMP configs (we need them for interacting with
1826 - // the GPU correctly even on non-SMP).
1827 - mb();
1828 -- ACCESS_ONCE(*semaphore->payload) = payload;
1829 -+ ACCESS_ONCE_RW(*semaphore->payload) = payload;
1830 - }
1831 -
1832 - // This function is intended to catch channels which have been left dangling in
1833 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_hal.h work/kernel/nvidia-uvm/uvm8_hal.h
1834 ---- work.orig/kernel/nvidia-uvm/uvm8_hal.h 2016-07-12 06:52:17.000000000 +0200
1835 -+++ work/kernel/nvidia-uvm/uvm8_hal.h 2016-07-16 22:45:59.878812524 +0200
1836 -@@ -310,7 +310,7 @@ typedef struct
1837 - // fault_buffer_ops: id is a hardware class
1838 - uvm_fault_buffer_hal_t fault_buffer_ops;
1839 - } u;
1840 --} uvm_hal_class_ops_t;
1841 -+} __do_const uvm_hal_class_ops_t;
1842 -
1843 - // When UVM next support is enabled support for future chips in the hal is
1844 - // enabled by providing additional hal table entries below.
1845 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_mmu.h work/kernel/nvidia-uvm/uvm8_mmu.h
1846 ---- work.orig/kernel/nvidia-uvm/uvm8_mmu.h 2016-07-12 06:52:17.000000000 +0200
1847 -+++ work/kernel/nvidia-uvm/uvm8_mmu.h 2016-07-16 22:45:59.878812524 +0200
1848 -@@ -24,7 +24,6 @@
1849 - #ifndef __UVM8_MMU_H__
1850 - #define __UVM8_MMU_H__
1851 -
1852 --#include "uvm8_forward_decl.h"
1853 - #include "uvm8_hal_types.h"
1854 - #include "uvm8_pmm_gpu.h"
1855 - #include "uvmtypes.h"
1856 -diff -urp work.orig/kernel/nvidia-uvm/uvm_common.c work/kernel/nvidia-uvm/uvm_common.c
1857 ---- work.orig/kernel/nvidia-uvm/uvm_common.c 2016-07-12 06:52:17.000000000 +0200
1858 -+++ work/kernel/nvidia-uvm/uvm_common.c 2016-07-16 22:45:59.878812524 +0200
1859 -@@ -51,7 +51,6 @@
1860 - #define UVM_SPIN_LOOP_PRINT_TIMEOUT_SEC 30ULL
1861 -
1862 - static dev_t g_uvmBaseDev;
1863 --struct UvmOpsUvmEvents g_exportedUvmOps;
1864 -
1865 - static char* uvm_driver_mode = "8";
1866 -
1867 -diff -urp work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h work/kernel/nvidia-uvm/uvm_full_fault_buffer.h
1868 ---- work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h 2016-07-12 06:52:17.000000000 +0200
1869 -+++ work/kernel/nvidia-uvm/uvm_full_fault_buffer.h 2016-07-16 22:45:59.878812524 +0200
1870 -@@ -31,6 +31,7 @@
1871 - #define _UVM_FULL_FAULT_BUFFER_H_
1872 -
1873 - #include "uvmtypes.h"
1874 -+#include "linux/compiler.h"
1875 -
1876 - #define MAXWELL_FAULT_BUFFER_A (0xb069)
1877 - #define MEM_RD32(a) (*(const volatile NvU32 *)(a))
1878 -@@ -303,7 +304,7 @@ typedef struct
1879 - NvUvmControlPrefetch_t controlPrefetch;
1880 - NvUvmTestFaultBufferOverflow_t testFaultBufferOverflow;
1881 - NvUvmClearFaultBufferOverflow_t clearFaultBufferOverflow;
1882 --} UvmFaultBufferOps;
1883 -+} __no_const UvmFaultBufferOps;
1884 -
1885 - /******************************************************************************
1886 - uvmfull_fault_buffer_init
1887 -diff -urp work.orig/kernel/nvidia-uvm/uvm_linux.h work/kernel/nvidia-uvm/uvm_linux.h
1888 ---- work.orig/kernel/nvidia-uvm/uvm_linux.h 2016-07-12 06:52:17.000000000 +0200
1889 -+++ work/kernel/nvidia-uvm/uvm_linux.h 2016-07-16 22:45:59.882815613 +0200
1890 -@@ -508,7 +508,7 @@ static inline NvU64 NV_GETTIME(void)
1891 -
1892 - // WRITE_ONCE/READ_ONCE have incompatible definitions across versions, which produces warnings.
1893 - // Therefore, we define our own macros
1894 --#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE(x) = (val))
1895 -+#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE_RW(x) = (val))
1896 - #define UVM_READ_ONCE(x) ACCESS_ONCE(x)
1897 -
1898 - // Added in 3.11
1899
1900 diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.57-profiles-rc.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.57-profiles-rc.patch
1901 deleted file mode 100644
1902 index b29895c3dff..00000000000
1903 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-367.57-profiles-rc.patch
1904 +++ /dev/null
1905 @@ -1,11 +0,0 @@
1906 ---- a/nvidia-application-profiles-367.57-rc
1907 -+++ b/nvidia-application-profiles-367.57-rc
1908 -@@ -44,7 +44,7 @@
1909 - {
1910 - "name" : "NamedVertexAttributesApplyDivisor",
1911 - "settings" : [ "GL23cd0e", 1 ]
1912 -- },
1913 -+ }
1914 - ],
1915 - "rules" : [
1916 - {
1917
1918 diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-370.28-profiles-rc.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-370.28-profiles-rc.patch
1919 deleted file mode 100644
1920 index cec890b28cc..00000000000
1921 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-370.28-profiles-rc.patch
1922 +++ /dev/null
1923 @@ -1,11 +0,0 @@
1924 ---- a/nvidia-application-profiles-370.28-rc
1925 -+++ b/nvidia-application-profiles-370.28-rc
1926 -@@ -44,7 +44,7 @@
1927 - {
1928 - "name" : "NamedVertexAttributesApplyDivisor",
1929 - "settings" : [ "GL23cd0e", 1 ]
1930 -- },
1931 -+ }
1932 - ],
1933 - "rules" : [
1934 - {
1935
1936 diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-settings.desktop b/x11-drivers/nvidia-drivers/files/nvidia-drivers-settings.desktop
1937 deleted file mode 100644
1938 index 773a5af2466..00000000000
1939 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-settings.desktop
1940 +++ /dev/null
1941 @@ -1,7 +0,0 @@
1942 -[Desktop Entry]
1943 -Type=Application
1944 -Name=NVIDIA X Server Settings
1945 -Comment=Configure NVIDIA X Server Settings
1946 -Exec=/opt/bin/nvidia-settings
1947 -Icon=nvidia-drivers-settings
1948 -Categories=System;Settings;
1949
1950 diff --git a/x11-drivers/nvidia-drivers/metadata.xml b/x11-drivers/nvidia-drivers/metadata.xml
1951 index 8f630f27655..8de5b844b79 100644
1952 --- a/x11-drivers/nvidia-drivers/metadata.xml
1953 +++ b/x11-drivers/nvidia-drivers/metadata.xml
1954 @@ -17,7 +17,6 @@ branches.
1955 <flag name="compat">Install non-GLVND libGL for backwards compatibility</flag>
1956 <flag name="driver">Install the kernel driver module</flag>
1957 <flag name="X">Install the X.org driver, OpenGL libraries, XvMC libraries, and VDPAU libraries</flag>
1958 - <flag name="gtk2">Install nvidia-settings with support for GTK+ 2</flag>
1959 <flag name="gtk3">Install nvidia-settings with support for GTK+ 3</flag>
1960 <flag name="kms">Enable support for kernel mode setting (KMS)</flag>
1961 <flag name="pax_kernel">PaX patches from the PaX project</flag>
1962
1963 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-346.96-r6.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-346.96-r6.ebuild
1964 deleted file mode 100644
1965 index 2efeb5df250..00000000000
1966 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-346.96-r6.ebuild
1967 +++ /dev/null
1968 @@ -1,527 +0,0 @@
1969 -# Copyright 1999-2016 Gentoo Foundation
1970 -# Distributed under the terms of the GNU General Public License v2
1971 -
1972 -EAPI=5
1973 -
1974 -inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
1975 - portability toolchain-funcs unpacker user udev
1976 -
1977 -NV_URI="http://us.download.nvidia.com/XFree86/"
1978 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
1979 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
1980 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
1981 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
1982 -
1983 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
1984 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
1985 -SRC_URI="
1986 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
1987 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
1988 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
1989 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
1990 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
1991 -"
1992 -
1993 -LICENSE="GPL-2 NVIDIA-r2"
1994 -SLOT="0/${PV%.*}"
1995 -KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
1996 -RESTRICT="bindist mirror"
1997 -EMULTILIB_PKG="true"
1998 -
1999 -IUSE="acpi gtk3 kernel_FreeBSD kernel_linux multilib pax_kernel static-libs +tools uvm +X"
2000 -REQUIRED_USE="
2001 - tools? ( X )
2002 - static-libs? ( tools )
2003 -"
2004 -
2005 -COMMON="
2006 - app-eselect/eselect-opencl
2007 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
2008 - tools? (
2009 - dev-libs/atk
2010 - dev-libs/glib:2
2011 - dev-libs/jansson
2012 - gtk3? ( x11-libs/gtk+:3 )
2013 - x11-libs/cairo
2014 - x11-libs/gdk-pixbuf[X]
2015 - x11-libs/gtk+:2
2016 - x11-libs/libX11
2017 - x11-libs/libXext
2018 - x11-libs/libXrandr
2019 - x11-libs/libXv
2020 - x11-libs/libXxf86vm
2021 - x11-libs/pango[X]
2022 - )
2023 - X? (
2024 - >=app-eselect/eselect-opengl-1.0.9
2025 - )
2026 -"
2027 -DEPEND="
2028 - ${COMMON}
2029 - app-arch/xz-utils
2030 - kernel_linux? ( virtual/linux-sources )
2031 -"
2032 -RDEPEND="
2033 - ${COMMON}
2034 - acpi? ( sys-power/acpid )
2035 - tools? ( !media-video/nvidia-settings )
2036 - X? (
2037 - <x11-base/xorg-server-1.18.99:=
2038 - >=x11-libs/libvdpau-0.3-r1
2039 - multilib? (
2040 - >=x11-libs/libX11-1.6.2[abi_x86_32]
2041 - >=x11-libs/libXext-1.3.2[abi_x86_32]
2042 - )
2043 - )
2044 -"
2045 -
2046 -QA_PREBUILT="opt/* usr/lib*"
2047 -
2048 -S=${WORKDIR}/
2049 -
2050 -pkg_pretend() {
2051 - if use amd64 && has_multilib_profile && \
2052 - [ "${DEFAULT_ABI}" != "amd64" ]; then
2053 - eerror "This ebuild doesn't currently support changing your default ABI"
2054 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
2055 - fi
2056 -
2057 - if use kernel_linux && kernel_is ge 4 3; then
2058 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
2059 - ewarn "which are limited to the following kernels:"
2060 - ewarn "<sys-kernel/gentoo-sources-4.3"
2061 - ewarn "<sys-kernel/vanilla-sources-4.3"
2062 - ewarn ""
2063 - ewarn "You are free to utilize epatch_user to provide whatever"
2064 - ewarn "support you feel is appropriate, but will not receive"
2065 - ewarn "support as a result of those changes."
2066 - ewarn ""
2067 - ewarn "Do not file a bug report about this."
2068 - fi
2069 -
2070 - # Since Nvidia ships many different series of drivers, we need to give the user
2071 - # some kind of guidance as to what version they should install. This tries
2072 - # to point the user in the right direction but can't be perfect. check
2073 - # nvidia-driver.eclass
2074 - nvidia-driver-check-warning
2075 -
2076 - # Kernel features/options to check for
2077 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
2078 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
2079 -
2080 - # Now do the above checks
2081 - use kernel_linux && check_extra_config
2082 -}
2083 -
2084 -pkg_setup() {
2085 - # try to turn off distcc and ccache for people that have a problem with it
2086 - export DISTCC_DISABLE=1
2087 - export CCACHE_DISABLE=1
2088 -
2089 - if use kernel_linux; then
2090 - MODULE_NAMES="nvidia(video:${S}/kernel)"
2091 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel/uvm)"
2092 -
2093 - # This needs to run after MODULE_NAMES (so that the eclass checks
2094 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
2095 - # is set (so that KV_DIR is populated).
2096 - linux-mod_pkg_setup
2097 -
2098 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
2099 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
2100 -
2101 - # linux-mod_src_compile calls set_arch_to_kernel, which
2102 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
2103 - # expects x86_64 or i386 and then converts it to x86
2104 - # later on in the build process
2105 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
2106 - fi
2107 -
2108 - # set variables to where files are in the package structure
2109 - if use kernel_FreeBSD; then
2110 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
2111 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
2112 - NV_DOC="${S}/doc"
2113 - NV_OBJ="${S}/obj"
2114 - NV_SRC="${S}/src"
2115 - NV_MAN="${S}/x11/man"
2116 - NV_X11="${S}/obj"
2117 - NV_SOVER=1
2118 - elif use kernel_linux; then
2119 - NV_DOC="${S}"
2120 - NV_OBJ="${S}"
2121 - NV_SRC="${S}/kernel"
2122 - NV_MAN="${S}"
2123 - NV_X11="${S}"
2124 - NV_SOVER=${PV}
2125 - else
2126 - die "Could not determine proper NVIDIA package"
2127 - fi
2128 -}
2129 -
2130 -src_prepare() {
2131 - # Please add a brief description for every added patch
2132 -
2133 - if use kernel_linux; then
2134 - if kernel_is lt 2 6 9 ; then
2135 - eerror "You must build this against 2.6.9 or higher kernels."
2136 - fi
2137 -
2138 - # If greater than 2.6.5 use M= instead of SUBDIR=
2139 -# convert_to_m "${NV_SRC}"/Makefile.kbuild
2140 - fi
2141 -
2142 - if use pax_kernel; then
2143 - ewarn "Using PAX patches is not supported. You will be asked to"
2144 - ewarn "use a standard kernel should you have issues. Should you"
2145 - ewarn "need support with these patches, contact the PaX team."
2146 - epatch "${FILESDIR}"/${PN}-346.16-pax-usercopy.patch
2147 - epatch "${FILESDIR}"/${PN}-346.16-pax-constify.patch
2148 - fi
2149 -
2150 - # Allow user patches so they can support RC kernels and whatever else
2151 - epatch_user
2152 -}
2153 -
2154 -src_compile() {
2155 - # This is already the default on Linux, as there's no toplevel Makefile, but
2156 - # on FreeBSD there's one and triggers the kernel module build, as we install
2157 - # it by itself, pass this.
2158 -
2159 - cd "${NV_SRC}"
2160 - if use kernel_FreeBSD; then
2161 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
2162 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
2163 - elif use kernel_linux; then
2164 - MAKEOPTS=-j1
2165 - linux-mod_src_compile
2166 - fi
2167 -
2168 - if use tools; then
2169 - emake -C "${S}"/nvidia-settings-${PV}/src \
2170 - AR="$(tc-getAR)" \
2171 - CC="$(tc-getCC)" \
2172 - LIBDIR="$(get_libdir)" \
2173 - RANLIB="$(tc-getRANLIB)" \
2174 - build-xnvctrl
2175 -
2176 - emake -C "${S}"/nvidia-settings-${PV}/src \
2177 - CC="$(tc-getCC)" \
2178 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
2179 - LD="$(tc-getCC)" \
2180 - LIBDIR="$(get_libdir)" \
2181 - NVML_ENABLED=0 \
2182 - NV_USE_BUNDLED_LIBJANSSON=0 \
2183 - NV_VERBOSE=1 \
2184 - STRIP_CMD=true
2185 - fi
2186 -}
2187 -
2188 -# Install nvidia library:
2189 -# the first parameter is the library to install
2190 -# the second parameter is the provided soversion
2191 -# the third parameter is the target directory if its not /usr/lib
2192 -donvidia() {
2193 - # Full path to library minus SOVER
2194 - MY_LIB="$1"
2195 -
2196 - # SOVER to use
2197 - MY_SOVER="$2"
2198 -
2199 - # Where to install
2200 - MY_DEST="$3"
2201 -
2202 - if [[ -z "${MY_DEST}" ]]; then
2203 - MY_DEST="/usr/$(get_libdir)"
2204 - action="dolib.so"
2205 - else
2206 - exeinto ${MY_DEST}
2207 - action="doexe"
2208 - fi
2209 -
2210 - # Get just the library name
2211 - libname=$(basename $1)
2212 -
2213 - # Install the library with the correct SOVER
2214 - ${action} ${MY_LIB}.${MY_SOVER} || \
2215 - die "failed to install ${libname}"
2216 -
2217 - # If SOVER wasn't 1, then we need to create a .1 symlink
2218 - if [[ "${MY_SOVER}" != "1" ]]; then
2219 - dosym ${libname}.${MY_SOVER} \
2220 - ${MY_DEST}/${libname}.1 || \
2221 - die "failed to create ${libname} symlink"
2222 - fi
2223 -
2224 - # Always create the symlink from the raw lib to the .1
2225 - dosym ${libname}.1 \
2226 - ${MY_DEST}/${libname} || \
2227 - die "failed to create ${libname} symlink"
2228 -}
2229 -
2230 -src_install() {
2231 - if use kernel_linux; then
2232 - linux-mod_src_install
2233 -
2234 - # Add the aliases
2235 - # This file is tweaked with the appropriate video group in
2236 - # pkg_preinst, see bug #491414
2237 - insinto /etc/modprobe.d
2238 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
2239 - use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
2240 -
2241 - # Ensures that our device nodes are created when not using X
2242 - exeinto "$(get_udevdir)"
2243 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
2244 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
2245 - elif use kernel_FreeBSD; then
2246 - if use x86-fbsd; then
2247 - insinto /boot/modules
2248 - doins "${S}/src/nvidia.kld"
2249 - fi
2250 -
2251 - exeinto /boot/modules
2252 - doexe "${S}/src/nvidia.ko"
2253 - fi
2254 -
2255 - # NVIDIA kernel <-> userspace driver config lib
2256 - donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
2257 -
2258 - # NVIDIA framebuffer capture library
2259 - donvidia ${NV_OBJ}/libnvidia-fbc.so ${NV_SOVER}
2260 -
2261 - # NVIDIA video encode/decode <-> CUDA
2262 - if use kernel_linux; then
2263 - donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
2264 - donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
2265 - fi
2266 -
2267 - if use X; then
2268 - # Xorg DDX driver
2269 - insinto /usr/$(get_libdir)/xorg/modules/drivers
2270 - doins ${NV_X11}/nvidia_drv.so
2271 -
2272 - # Xorg GLX driver
2273 - donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
2274 - /usr/$(get_libdir)/opengl/nvidia/extensions
2275 -
2276 - # Xorg nvidia.conf
2277 - if has_version '>=x11-base/xorg-server-1.16'; then
2278 - insinto /usr/share/X11/xorg.conf.d
2279 - newins {,50-}nvidia-drm-outputclass.conf
2280 - fi
2281 - fi
2282 -
2283 - # OpenCL ICD for NVIDIA
2284 - if use kernel_linux; then
2285 - insinto /etc/OpenCL/vendors
2286 - doins ${NV_OBJ}/nvidia.icd
2287 - fi
2288 -
2289 - # Documentation
2290 - dohtml ${NV_DOC}/html/*
2291 - if use kernel_FreeBSD; then
2292 - dodoc "${NV_DOC}/README"
2293 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
2294 - use tools && doman "${NV_MAN}/nvidia-settings.1"
2295 - else
2296 - # Docs
2297 - newdoc "${NV_DOC}/README.txt" README
2298 - dodoc "${NV_DOC}/NVIDIA_Changelog"
2299 - doman "${NV_MAN}/nvidia-smi.1.gz"
2300 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
2301 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
2302 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
2303 - fi
2304 -
2305 - # Helper Apps
2306 - exeinto /opt/bin/
2307 -
2308 - if use X; then
2309 - doexe ${NV_OBJ}/nvidia-xconfig
2310 - fi
2311 -
2312 - if use kernel_linux ; then
2313 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
2314 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
2315 - doexe ${NV_OBJ}/nvidia-debugdump
2316 - doexe ${NV_OBJ}/nvidia-persistenced
2317 - doexe ${NV_OBJ}/nvidia-smi
2318 -
2319 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
2320 - doexe ${NV_OBJ}/nvidia-modprobe
2321 - fowners root:video /opt/bin/nvidia-modprobe
2322 - fperms 4710 /opt/bin/nvidia-modprobe
2323 - dosym /{opt,usr}/bin/nvidia-modprobe
2324 -
2325 - doman nvidia-cuda-mps-control.1.gz
2326 - doman nvidia-modprobe.1.gz
2327 - doman nvidia-persistenced.1.gz
2328 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
2329 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
2330 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
2331 - fi
2332 -
2333 - if use tools; then
2334 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
2335 - DESTDIR="${D}" \
2336 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
2337 - LIBDIR="${D}/usr/$(get_libdir)" \
2338 - PREFIX=/usr \
2339 - NV_USE_BUNDLED_LIBJANSSON=0 \
2340 - install
2341 -
2342 - if use static-libs; then
2343 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
2344 -
2345 - insinto /usr/include/NVCtrl
2346 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
2347 - fi
2348 -
2349 - insinto /usr/share/nvidia/
2350 - doins nvidia-application-profiles-${PV}-key-documentation
2351 -
2352 - insinto /etc/nvidia
2353 - newins \
2354 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
2355 -
2356 - # There is no icon in the FreeBSD tarball.
2357 - use kernel_FreeBSD || \
2358 - doicon ${NV_OBJ}/nvidia-settings.png
2359 -
2360 - domenu "${FILESDIR}"/nvidia-settings.desktop
2361 -
2362 - exeinto /etc/X11/xinit/xinitrc.d
2363 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
2364 - fi
2365 -
2366 - dobin ${NV_OBJ}/nvidia-bug-report.sh
2367 -
2368 - if has_multilib_profile && use multilib ; then
2369 - local OABI=${ABI}
2370 - for ABI in $(get_install_abis) ; do
2371 - src_install-libs
2372 - done
2373 - ABI=${OABI}
2374 - unset OABI
2375 - else
2376 - src_install-libs
2377 - fi
2378 -
2379 - is_final_abi || die "failed to iterate through all ABIs"
2380 -
2381 - readme.gentoo_create_doc
2382 -}
2383 -
2384 -src_install-libs() {
2385 - local inslibdir=$(get_libdir)
2386 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
2387 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
2388 - local libdir=${NV_OBJ}
2389 -
2390 - if use kernel_linux && has_multilib_profile && \
2391 - [[ ${ABI} == "x86" ]] ; then
2392 - libdir=${NV_OBJ}/32
2393 - fi
2394 -
2395 - if use X; then
2396 - # The GLX libraries
2397 - donvidia ${libdir}/libEGL.so ${NV_SOVER} ${GL_ROOT}
2398 - donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
2399 - donvidia ${libdir}/libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}
2400 - donvidia ${libdir}/libnvidia-eglcore.so ${NV_SOVER}
2401 - donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
2402 - donvidia ${libdir}/libnvidia-glsi.so ${NV_SOVER}
2403 - donvidia ${libdir}/libnvidia-ifr.so ${NV_SOVER}
2404 - if use kernel_FreeBSD; then
2405 - donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
2406 - else
2407 - donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
2408 - fi
2409 -
2410 - # VDPAU
2411 - donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
2412 -
2413 - # GLES v2 libraries
2414 - insinto ${GL_ROOT}
2415 - doexe ${libdir}/libGLESv2.so.${PV}
2416 - dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
2417 - dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
2418 - fi
2419 -
2420 - # NVIDIA monitoring library
2421 - if use kernel_linux ; then
2422 - donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
2423 - fi
2424 -
2425 - # CUDA & OpenCL
2426 - if use kernel_linux; then
2427 - donvidia ${libdir}/libcuda.so ${NV_SOVER}
2428 - donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
2429 - donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
2430 - donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
2431 - fi
2432 -}
2433 -
2434 -pkg_preinst() {
2435 - if use kernel_linux; then
2436 - linux-mod_pkg_preinst
2437 -
2438 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
2439 - if [ -z "${videogroup}" ]; then
2440 - eerror "Failed to determine the video group gid"
2441 - die "Failed to determine the video group gid"
2442 - else
2443 - sed -i \
2444 - -e "s:PACKAGE:${PF}:g" \
2445 - -e "s:VIDEOGID:${videogroup}:" \
2446 - "${D}"/etc/modprobe.d/nvidia.conf || die
2447 - fi
2448 - fi
2449 -
2450 - # Clean the dynamic libGL stuff's home to ensure
2451 - # we dont have stale libs floating around
2452 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
2453 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
2454 - fi
2455 - # Make sure we nuke the old nvidia-glx's env.d file
2456 - if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
2457 - rm -f "${ROOT}"/etc/env.d/09nvidia
2458 - fi
2459 -}
2460 -
2461 -pkg_postinst() {
2462 - use kernel_linux && linux-mod_pkg_postinst
2463 -
2464 - # Switch to the nvidia implementation
2465 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
2466 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
2467 -
2468 - readme.gentoo_print_elog
2469 -
2470 - if ! use X; then
2471 - elog "You have elected to not install the X.org driver. Along with"
2472 - elog "this the OpenGL libraries and VDPAU libraries were not"
2473 - elog "installed. Additionally, once the driver is loaded your card"
2474 - elog "and fan will run at max speed which may not be desirable."
2475 - elog "Use the 'nvidia-smi' init script to have your card and fan"
2476 - elog "speed scale appropriately."
2477 - elog
2478 - fi
2479 - if ! use tools; then
2480 - elog "USE=tools controls whether the nvidia-settings application"
2481 - elog "is installed. If you would like to use it, enable that"
2482 - elog "flag and re-emerge this ebuild. Optionally you can install"
2483 - elog "media-video/nvidia-settings"
2484 - elog
2485 - fi
2486 -}
2487 -
2488 -pkg_prerm() {
2489 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
2490 -}
2491 -
2492 -pkg_postrm() {
2493 - use kernel_linux && linux-mod_pkg_postrm
2494 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
2495 -}
2496
2497 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-346.96-r7.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-346.96-r7.ebuild
2498 deleted file mode 100644
2499 index 5fca7a1b697..00000000000
2500 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-346.96-r7.ebuild
2501 +++ /dev/null
2502 @@ -1,528 +0,0 @@
2503 -# Copyright 1999-2017 Gentoo Foundation
2504 -# Distributed under the terms of the GNU General Public License v2
2505 -
2506 -EAPI=5
2507 -
2508 -inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
2509 - portability toolchain-funcs unpacker user udev
2510 -
2511 -NV_URI="http://us.download.nvidia.com/XFree86/"
2512 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
2513 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
2514 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
2515 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
2516 -
2517 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
2518 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
2519 -SRC_URI="
2520 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
2521 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
2522 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
2523 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
2524 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
2525 -"
2526 -
2527 -LICENSE="GPL-2 NVIDIA-r2"
2528 -SLOT="0/${PV%.*}"
2529 -KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
2530 -RESTRICT="bindist mirror"
2531 -EMULTILIB_PKG="true"
2532 -
2533 -IUSE="acpi gtk3 kernel_FreeBSD kernel_linux multilib pax_kernel static-libs +tools uvm +X"
2534 -REQUIRED_USE="
2535 - tools? ( X )
2536 - static-libs? ( tools )
2537 -"
2538 -
2539 -COMMON="
2540 - app-eselect/eselect-opencl
2541 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
2542 - tools? (
2543 - dev-libs/atk
2544 - dev-libs/glib:2
2545 - dev-libs/jansson
2546 - gtk3? (
2547 - x11-libs/gtk+:3
2548 - )
2549 - x11-libs/cairo
2550 - x11-libs/gdk-pixbuf[X]
2551 - x11-libs/gtk+:2
2552 - x11-libs/libX11
2553 - x11-libs/libXext
2554 - x11-libs/libXrandr
2555 - x11-libs/libXv
2556 - x11-libs/libXxf86vm
2557 - x11-libs/pango[X]
2558 - )
2559 - X? (
2560 - >=app-eselect/eselect-opengl-1.0.9
2561 - )
2562 -"
2563 -DEPEND="
2564 - ${COMMON}
2565 - app-arch/xz-utils
2566 - kernel_linux? ( virtual/linux-sources )
2567 -"
2568 -RDEPEND="
2569 - ${COMMON}
2570 - acpi? ( sys-power/acpid )
2571 - tools? ( !media-video/nvidia-settings )
2572 - X? (
2573 - <x11-base/xorg-server-1.18.99:=
2574 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
2575 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
2576 - >=x11-libs/libvdpau-0.3-r1[${MULTILIB_USEDEP}]
2577 - sys-libs/zlib[${MULTILIB_USEDEP}]
2578 - )
2579 -"
2580 -
2581 -QA_PREBUILT="opt/* usr/lib*"
2582 -
2583 -S=${WORKDIR}/
2584 -
2585 -pkg_pretend() {
2586 - if use amd64 && has_multilib_profile && \
2587 - [ "${DEFAULT_ABI}" != "amd64" ]; then
2588 - eerror "This ebuild doesn't currently support changing your default ABI"
2589 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
2590 - fi
2591 -
2592 - if use kernel_linux && kernel_is ge 4 3; then
2593 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
2594 - ewarn "which are limited to the following kernels:"
2595 - ewarn "<sys-kernel/gentoo-sources-4.3"
2596 - ewarn "<sys-kernel/vanilla-sources-4.3"
2597 - ewarn ""
2598 - ewarn "You are free to utilize epatch_user to provide whatever"
2599 - ewarn "support you feel is appropriate, but will not receive"
2600 - ewarn "support as a result of those changes."
2601 - ewarn ""
2602 - ewarn "Do not file a bug report about this."
2603 - fi
2604 -
2605 - # Since Nvidia ships many different series of drivers, we need to give the user
2606 - # some kind of guidance as to what version they should install. This tries
2607 - # to point the user in the right direction but can't be perfect. check
2608 - # nvidia-driver.eclass
2609 - nvidia-driver-check-warning
2610 -
2611 - # Kernel features/options to check for
2612 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
2613 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
2614 -
2615 - # Now do the above checks
2616 - use kernel_linux && check_extra_config
2617 -}
2618 -
2619 -pkg_setup() {
2620 - # try to turn off distcc and ccache for people that have a problem with it
2621 - export DISTCC_DISABLE=1
2622 - export CCACHE_DISABLE=1
2623 -
2624 - if use kernel_linux; then
2625 - MODULE_NAMES="nvidia(video:${S}/kernel)"
2626 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel/uvm)"
2627 -
2628 - # This needs to run after MODULE_NAMES (so that the eclass checks
2629 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
2630 - # is set (so that KV_DIR is populated).
2631 - linux-mod_pkg_setup
2632 -
2633 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
2634 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
2635 -
2636 - # linux-mod_src_compile calls set_arch_to_kernel, which
2637 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
2638 - # expects x86_64 or i386 and then converts it to x86
2639 - # later on in the build process
2640 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
2641 - fi
2642 -
2643 - # set variables to where files are in the package structure
2644 - if use kernel_FreeBSD; then
2645 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
2646 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
2647 - NV_DOC="${S}/doc"
2648 - NV_OBJ="${S}/obj"
2649 - NV_SRC="${S}/src"
2650 - NV_MAN="${S}/x11/man"
2651 - NV_X11="${S}/obj"
2652 - NV_SOVER=1
2653 - elif use kernel_linux; then
2654 - NV_DOC="${S}"
2655 - NV_OBJ="${S}"
2656 - NV_SRC="${S}/kernel"
2657 - NV_MAN="${S}"
2658 - NV_X11="${S}"
2659 - NV_SOVER=${PV}
2660 - else
2661 - die "Could not determine proper NVIDIA package"
2662 - fi
2663 -}
2664 -
2665 -src_prepare() {
2666 - # Please add a brief description for every added patch
2667 -
2668 - if use kernel_linux; then
2669 - if kernel_is lt 2 6 9 ; then
2670 - eerror "You must build this against 2.6.9 or higher kernels."
2671 - fi
2672 -
2673 - # If greater than 2.6.5 use M= instead of SUBDIR=
2674 -# convert_to_m "${NV_SRC}"/Makefile.kbuild
2675 - fi
2676 -
2677 - if use pax_kernel; then
2678 - ewarn "Using PAX patches is not supported. You will be asked to"
2679 - ewarn "use a standard kernel should you have issues. Should you"
2680 - ewarn "need support with these patches, contact the PaX team."
2681 - epatch "${FILESDIR}"/${PN}-346.16-pax-usercopy.patch
2682 - epatch "${FILESDIR}"/${PN}-346.16-pax-constify.patch
2683 - fi
2684 -
2685 - # Allow user patches so they can support RC kernels and whatever else
2686 - epatch_user
2687 -}
2688 -
2689 -src_compile() {
2690 - # This is already the default on Linux, as there's no toplevel Makefile, but
2691 - # on FreeBSD there's one and triggers the kernel module build, as we install
2692 - # it by itself, pass this.
2693 -
2694 - cd "${NV_SRC}"
2695 - if use kernel_FreeBSD; then
2696 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
2697 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
2698 - elif use kernel_linux; then
2699 - MAKEOPTS=-j1
2700 - linux-mod_src_compile
2701 - fi
2702 -
2703 - if use tools; then
2704 - emake -C "${S}"/nvidia-settings-${PV}/src \
2705 - AR="$(tc-getAR)" \
2706 - CC="$(tc-getCC)" \
2707 - LIBDIR="$(get_libdir)" \
2708 - RANLIB="$(tc-getRANLIB)" \
2709 - build-xnvctrl
2710 -
2711 - emake -C "${S}"/nvidia-settings-${PV}/src \
2712 - CC="$(tc-getCC)" \
2713 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
2714 - LD="$(tc-getCC)" \
2715 - LIBDIR="$(get_libdir)" \
2716 - NVML_ENABLED=0 \
2717 - NV_USE_BUNDLED_LIBJANSSON=0 \
2718 - NV_VERBOSE=1 \
2719 - STRIP_CMD=true
2720 - fi
2721 -}
2722 -
2723 -# Install nvidia library:
2724 -# the first parameter is the library to install
2725 -# the second parameter is the provided soversion
2726 -# the third parameter is the target directory if its not /usr/lib
2727 -donvidia() {
2728 - # Full path to library minus SOVER
2729 - MY_LIB="$1"
2730 -
2731 - # SOVER to use
2732 - MY_SOVER="$2"
2733 -
2734 - # Where to install
2735 - MY_DEST="$3"
2736 -
2737 - if [[ -z "${MY_DEST}" ]]; then
2738 - MY_DEST="/usr/$(get_libdir)"
2739 - action="dolib.so"
2740 - else
2741 - exeinto ${MY_DEST}
2742 - action="doexe"
2743 - fi
2744 -
2745 - # Get just the library name
2746 - libname=$(basename $1)
2747 -
2748 - # Install the library with the correct SOVER
2749 - ${action} ${MY_LIB}.${MY_SOVER} || \
2750 - die "failed to install ${libname}"
2751 -
2752 - # If SOVER wasn't 1, then we need to create a .1 symlink
2753 - if [[ "${MY_SOVER}" != "1" ]]; then
2754 - dosym ${libname}.${MY_SOVER} \
2755 - ${MY_DEST}/${libname}.1 || \
2756 - die "failed to create ${libname} symlink"
2757 - fi
2758 -
2759 - # Always create the symlink from the raw lib to the .1
2760 - dosym ${libname}.1 \
2761 - ${MY_DEST}/${libname} || \
2762 - die "failed to create ${libname} symlink"
2763 -}
2764 -
2765 -src_install() {
2766 - if use kernel_linux; then
2767 - linux-mod_src_install
2768 -
2769 - # Add the aliases
2770 - # This file is tweaked with the appropriate video group in
2771 - # pkg_preinst, see bug #491414
2772 - insinto /etc/modprobe.d
2773 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
2774 - use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
2775 -
2776 - # Ensures that our device nodes are created when not using X
2777 - exeinto "$(get_udevdir)"
2778 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
2779 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
2780 - elif use kernel_FreeBSD; then
2781 - if use x86-fbsd; then
2782 - insinto /boot/modules
2783 - doins "${S}/src/nvidia.kld"
2784 - fi
2785 -
2786 - exeinto /boot/modules
2787 - doexe "${S}/src/nvidia.ko"
2788 - fi
2789 -
2790 - # NVIDIA kernel <-> userspace driver config lib
2791 - donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
2792 -
2793 - # NVIDIA framebuffer capture library
2794 - donvidia ${NV_OBJ}/libnvidia-fbc.so ${NV_SOVER}
2795 -
2796 - # NVIDIA video encode/decode <-> CUDA
2797 - if use kernel_linux; then
2798 - donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
2799 - donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
2800 - fi
2801 -
2802 - if use X; then
2803 - # Xorg DDX driver
2804 - insinto /usr/$(get_libdir)/xorg/modules/drivers
2805 - doins ${NV_X11}/nvidia_drv.so
2806 -
2807 - # Xorg GLX driver
2808 - donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
2809 - /usr/$(get_libdir)/opengl/nvidia/extensions
2810 -
2811 - # Xorg nvidia.conf
2812 - if has_version '>=x11-base/xorg-server-1.16'; then
2813 - insinto /usr/share/X11/xorg.conf.d
2814 - newins {,50-}nvidia-drm-outputclass.conf
2815 - fi
2816 - fi
2817 -
2818 - # OpenCL ICD for NVIDIA
2819 - if use kernel_linux; then
2820 - insinto /etc/OpenCL/vendors
2821 - doins ${NV_OBJ}/nvidia.icd
2822 - fi
2823 -
2824 - # Documentation
2825 - dohtml ${NV_DOC}/html/*
2826 - if use kernel_FreeBSD; then
2827 - dodoc "${NV_DOC}/README"
2828 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
2829 - use tools && doman "${NV_MAN}/nvidia-settings.1"
2830 - else
2831 - # Docs
2832 - newdoc "${NV_DOC}/README.txt" README
2833 - dodoc "${NV_DOC}/NVIDIA_Changelog"
2834 - doman "${NV_MAN}/nvidia-smi.1.gz"
2835 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
2836 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
2837 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
2838 - fi
2839 -
2840 - # Helper Apps
2841 - exeinto /opt/bin/
2842 -
2843 - if use X; then
2844 - doexe ${NV_OBJ}/nvidia-xconfig
2845 - fi
2846 -
2847 - if use kernel_linux ; then
2848 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
2849 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
2850 - doexe ${NV_OBJ}/nvidia-debugdump
2851 - doexe ${NV_OBJ}/nvidia-persistenced
2852 - doexe ${NV_OBJ}/nvidia-smi
2853 -
2854 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
2855 - doexe ${NV_OBJ}/nvidia-modprobe
2856 - fowners root:video /opt/bin/nvidia-modprobe
2857 - fperms 4710 /opt/bin/nvidia-modprobe
2858 - dosym /{opt,usr}/bin/nvidia-modprobe
2859 -
2860 - doman nvidia-cuda-mps-control.1.gz
2861 - doman nvidia-modprobe.1.gz
2862 - doman nvidia-persistenced.1.gz
2863 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
2864 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
2865 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
2866 - fi
2867 -
2868 - if use tools; then
2869 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
2870 - DESTDIR="${D}" \
2871 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
2872 - LIBDIR="${D}/usr/$(get_libdir)" \
2873 - PREFIX=/usr \
2874 - NV_USE_BUNDLED_LIBJANSSON=0 \
2875 - install
2876 -
2877 - if use static-libs; then
2878 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
2879 -
2880 - insinto /usr/include/NVCtrl
2881 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
2882 - fi
2883 -
2884 - insinto /usr/share/nvidia/
2885 - doins nvidia-application-profiles-${PV}-key-documentation
2886 -
2887 - insinto /etc/nvidia
2888 - newins \
2889 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
2890 -
2891 - # There is no icon in the FreeBSD tarball.
2892 - use kernel_FreeBSD || \
2893 - doicon ${NV_OBJ}/nvidia-settings.png
2894 -
2895 - domenu "${FILESDIR}"/nvidia-settings.desktop
2896 -
2897 - exeinto /etc/X11/xinit/xinitrc.d
2898 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
2899 - fi
2900 -
2901 - dobin ${NV_OBJ}/nvidia-bug-report.sh
2902 -
2903 - if has_multilib_profile && use multilib ; then
2904 - local OABI=${ABI}
2905 - for ABI in $(get_install_abis) ; do
2906 - src_install-libs
2907 - done
2908 - ABI=${OABI}
2909 - unset OABI
2910 - else
2911 - src_install-libs
2912 - fi
2913 -
2914 - is_final_abi || die "failed to iterate through all ABIs"
2915 -
2916 - readme.gentoo_create_doc
2917 -}
2918 -
2919 -src_install-libs() {
2920 - local inslibdir=$(get_libdir)
2921 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
2922 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
2923 - local libdir=${NV_OBJ}
2924 -
2925 - if use kernel_linux && has_multilib_profile && \
2926 - [[ ${ABI} == "x86" ]] ; then
2927 - libdir=${NV_OBJ}/32
2928 - fi
2929 -
2930 - if use X; then
2931 - # The GLX libraries
2932 - donvidia ${libdir}/libEGL.so ${NV_SOVER} ${GL_ROOT}
2933 - donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
2934 - donvidia ${libdir}/libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}
2935 - donvidia ${libdir}/libnvidia-eglcore.so ${NV_SOVER}
2936 - donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
2937 - donvidia ${libdir}/libnvidia-glsi.so ${NV_SOVER}
2938 - donvidia ${libdir}/libnvidia-ifr.so ${NV_SOVER}
2939 - if use kernel_FreeBSD; then
2940 - donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
2941 - else
2942 - donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
2943 - fi
2944 -
2945 - # VDPAU
2946 - donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
2947 -
2948 - # GLES v2 libraries
2949 - insinto ${GL_ROOT}
2950 - doexe ${libdir}/libGLESv2.so.${PV}
2951 - dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
2952 - dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
2953 - fi
2954 -
2955 - # NVIDIA monitoring library
2956 - if use kernel_linux ; then
2957 - donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
2958 - fi
2959 -
2960 - # CUDA & OpenCL
2961 - if use kernel_linux; then
2962 - donvidia ${libdir}/libcuda.so ${NV_SOVER}
2963 - donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
2964 - donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
2965 - donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
2966 - fi
2967 -}
2968 -
2969 -pkg_preinst() {
2970 - if use kernel_linux; then
2971 - linux-mod_pkg_preinst
2972 -
2973 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
2974 - if [ -z "${videogroup}" ]; then
2975 - eerror "Failed to determine the video group gid"
2976 - die "Failed to determine the video group gid"
2977 - else
2978 - sed -i \
2979 - -e "s:PACKAGE:${PF}:g" \
2980 - -e "s:VIDEOGID:${videogroup}:" \
2981 - "${D}"/etc/modprobe.d/nvidia.conf || die
2982 - fi
2983 - fi
2984 -
2985 - # Clean the dynamic libGL stuff's home to ensure
2986 - # we dont have stale libs floating around
2987 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
2988 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
2989 - fi
2990 - # Make sure we nuke the old nvidia-glx's env.d file
2991 - if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
2992 - rm -f "${ROOT}"/etc/env.d/09nvidia
2993 - fi
2994 -}
2995 -
2996 -pkg_postinst() {
2997 - use kernel_linux && linux-mod_pkg_postinst
2998 -
2999 - # Switch to the nvidia implementation
3000 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
3001 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
3002 -
3003 - readme.gentoo_print_elog
3004 -
3005 - if ! use X; then
3006 - elog "You have elected to not install the X.org driver. Along with"
3007 - elog "this the OpenGL libraries and VDPAU libraries were not"
3008 - elog "installed. Additionally, once the driver is loaded your card"
3009 - elog "and fan will run at max speed which may not be desirable."
3010 - elog "Use the 'nvidia-smi' init script to have your card and fan"
3011 - elog "speed scale appropriately."
3012 - elog
3013 - fi
3014 - if ! use tools; then
3015 - elog "USE=tools controls whether the nvidia-settings application"
3016 - elog "is installed. If you would like to use it, enable that"
3017 - elog "flag and re-emerge this ebuild. Optionally you can install"
3018 - elog "media-video/nvidia-settings"
3019 - elog
3020 - fi
3021 -}
3022 -
3023 -pkg_prerm() {
3024 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
3025 -}
3026 -
3027 -pkg_postrm() {
3028 - use kernel_linux && linux-mod_pkg_postrm
3029 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
3030 -}
3031
3032 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-352.79-r4.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-352.79-r4.ebuild
3033 deleted file mode 100644
3034 index dd5ab2bf43c..00000000000
3035 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-352.79-r4.ebuild
3036 +++ /dev/null
3037 @@ -1,526 +0,0 @@
3038 -# Copyright 1999-2016 Gentoo Foundation
3039 -# Distributed under the terms of the GNU General Public License v2
3040 -
3041 -EAPI=5
3042 -
3043 -inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
3044 - portability toolchain-funcs unpacker user udev
3045 -
3046 -NV_URI="http://us.download.nvidia.com/XFree86/"
3047 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
3048 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
3049 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
3050 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
3051 -
3052 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
3053 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
3054 -SRC_URI="
3055 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
3056 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
3057 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
3058 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
3059 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
3060 -"
3061 -
3062 -LICENSE="GPL-2 NVIDIA-r2"
3063 -SLOT="0/${PV%.*}"
3064 -KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
3065 -RESTRICT="bindist mirror"
3066 -EMULTILIB_PKG="true"
3067 -
3068 -IUSE="acpi gtk3 multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools +X uvm"
3069 -REQUIRED_USE="
3070 - tools? ( X )
3071 - static-libs? ( tools )
3072 -"
3073 -
3074 -COMMON="
3075 - app-eselect/eselect-opencl
3076 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
3077 - tools? (
3078 - dev-libs/atk
3079 - dev-libs/glib:2
3080 - dev-libs/jansson
3081 - gtk3? (
3082 - x11-libs/gtk+:3
3083 - )
3084 - x11-libs/cairo
3085 - x11-libs/gdk-pixbuf[X]
3086 - x11-libs/gtk+:2
3087 - x11-libs/libX11
3088 - x11-libs/libXext
3089 - x11-libs/libXrandr
3090 - x11-libs/libXv
3091 - x11-libs/libXxf86vm
3092 - x11-libs/pango[X]
3093 - )
3094 - X? (
3095 - >=app-eselect/eselect-opengl-1.0.9
3096 - )
3097 -"
3098 -DEPEND="
3099 - ${COMMON}
3100 - kernel_linux? ( virtual/linux-sources )
3101 -"
3102 -RDEPEND="
3103 - ${COMMON}
3104 - acpi? ( sys-power/acpid )
3105 - tools? ( !media-video/nvidia-settings )
3106 - X? (
3107 - <x11-base/xorg-server-1.18.99:=
3108 - >=x11-libs/libvdpau-1.0
3109 - multilib? (
3110 - >=x11-libs/libX11-1.6.2[abi_x86_32]
3111 - >=x11-libs/libXext-1.3.2[abi_x86_32]
3112 - )
3113 - )
3114 -"
3115 -
3116 -QA_PREBUILT="opt/* usr/lib*"
3117 -
3118 -S=${WORKDIR}/
3119 -
3120 -pkg_pretend() {
3121 - if use amd64 && has_multilib_profile && \
3122 - [ "${DEFAULT_ABI}" != "amd64" ]; then
3123 - eerror "This ebuild doesn't currently support changing your default ABI"
3124 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
3125 - fi
3126 -
3127 - if use kernel_linux && kernel_is ge 4 4; then
3128 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
3129 - ewarn "which are limited to the following kernels:"
3130 - ewarn "<sys-kernel/gentoo-sources-4.4"
3131 - ewarn "<sys-kernel/vanilla-sources-4.4"
3132 - ewarn ""
3133 - ewarn "You are free to utilize epatch_user to provide whatever"
3134 - ewarn "support you feel is appropriate, but will not receive"
3135 - ewarn "support as a result of those changes."
3136 - ewarn ""
3137 - ewarn "Do not file a bug report about this."
3138 - ewarn ""
3139 - fi
3140 -
3141 - # Since Nvidia ships many different series of drivers, we need to give the user
3142 - # some kind of guidance as to what version they should install. This tries
3143 - # to point the user in the right direction but can't be perfect. check
3144 - # nvidia-driver.eclass
3145 - nvidia-driver-check-warning
3146 -
3147 - # Kernel features/options to check for
3148 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
3149 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
3150 -
3151 - # Now do the above checks
3152 - use kernel_linux && check_extra_config
3153 -}
3154 -
3155 -pkg_setup() {
3156 - # try to turn off distcc and ccache for people that have a problem with it
3157 - export DISTCC_DISABLE=1
3158 - export CCACHE_DISABLE=1
3159 -
3160 - if use kernel_linux; then
3161 - MODULE_NAMES="nvidia(video:${S}/kernel)"
3162 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel/uvm)"
3163 -
3164 - # This needs to run after MODULE_NAMES (so that the eclass checks
3165 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
3166 - # is set (so that KV_DIR is populated).
3167 - linux-mod_pkg_setup
3168 -
3169 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
3170 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
3171 -
3172 - # linux-mod_src_compile calls set_arch_to_kernel, which
3173 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
3174 - # expects x86_64 or i386 and then converts it to x86
3175 - # later on in the build process
3176 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
3177 - fi
3178 -
3179 - # set variables to where files are in the package structure
3180 - if use kernel_FreeBSD; then
3181 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
3182 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
3183 - NV_DOC="${S}/doc"
3184 - NV_OBJ="${S}/obj"
3185 - NV_SRC="${S}/src"
3186 - NV_MAN="${S}/x11/man"
3187 - NV_X11="${S}/obj"
3188 - NV_SOVER=1
3189 - elif use kernel_linux; then
3190 - NV_DOC="${S}"
3191 - NV_OBJ="${S}"
3192 - NV_SRC="${S}/kernel"
3193 - NV_MAN="${S}"
3194 - NV_X11="${S}"
3195 - NV_SOVER=${PV}
3196 - else
3197 - die "Could not determine proper NVIDIA package"
3198 - fi
3199 -}
3200 -
3201 -src_prepare() {
3202 - # Please add a brief description for every added patch
3203 -
3204 - if use kernel_linux; then
3205 - if kernel_is lt 2 6 9 ; then
3206 - eerror "You must build this against 2.6.9 or higher kernels."
3207 - fi
3208 -
3209 - # If greater than 2.6.5 use M= instead of SUBDIR=
3210 -# convert_to_m "${NV_SRC}"/Makefile.kbuild
3211 - fi
3212 -
3213 - if use pax_kernel; then
3214 - ewarn "Using PAX patches is not supported. You will be asked to"
3215 - ewarn "use a standard kernel should you have issues. Should you"
3216 - ewarn "need support with these patches, contact the PaX team."
3217 - epatch "${FILESDIR}"/${PN}-346.16-pax-usercopy.patch
3218 - epatch "${FILESDIR}"/${PN}-346.16-pax-constify.patch
3219 - fi
3220 -
3221 - # Allow user patches so they can support RC kernels and whatever else
3222 - epatch_user
3223 -}
3224 -
3225 -src_compile() {
3226 - # This is already the default on Linux, as there's no toplevel Makefile, but
3227 - # on FreeBSD there's one and triggers the kernel module build, as we install
3228 - # it by itself, pass this.
3229 -
3230 - cd "${NV_SRC}"
3231 - if use kernel_FreeBSD; then
3232 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
3233 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
3234 - elif use kernel_linux; then
3235 - MAKEOPTS=-j1
3236 - linux-mod_src_compile
3237 - fi
3238 -
3239 - if use tools; then
3240 - emake -C "${S}"/nvidia-settings-${PV}/src \
3241 - AR="$(tc-getAR)" \
3242 - CC="$(tc-getCC)" \
3243 - LIBDIR="$(get_libdir)" \
3244 - RANLIB="$(tc-getRANLIB)" \
3245 - build-xnvctrl
3246 -
3247 - emake -C "${S}"/nvidia-settings-${PV}/src \
3248 - CC="$(tc-getCC)" \
3249 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
3250 - LD="$(tc-getCC)" \
3251 - LIBDIR="$(get_libdir)" \
3252 - NVML_ENABLED=0 \
3253 - NV_USE_BUNDLED_LIBJANSSON=0 \
3254 - NV_VERBOSE=1 \
3255 - STRIP_CMD=true
3256 - fi
3257 -}
3258 -
3259 -# Install nvidia library:
3260 -# the first parameter is the library to install
3261 -# the second parameter is the provided soversion
3262 -# the third parameter is the target directory if its not /usr/lib
3263 -donvidia() {
3264 - # Full path to library minus SOVER
3265 - MY_LIB="$1"
3266 -
3267 - # SOVER to use
3268 - MY_SOVER="$2"
3269 -
3270 - # Where to install
3271 - MY_DEST="$3"
3272 -
3273 - if [[ -z "${MY_DEST}" ]]; then
3274 - MY_DEST="/usr/$(get_libdir)"
3275 - action="dolib.so"
3276 - else
3277 - exeinto ${MY_DEST}
3278 - action="doexe"
3279 - fi
3280 -
3281 - # Get just the library name
3282 - libname=$(basename $1)
3283 -
3284 - # Install the library with the correct SOVER
3285 - ${action} ${MY_LIB}.${MY_SOVER} || \
3286 - die "failed to install ${libname}"
3287 -
3288 - # If SOVER wasn't 1, then we need to create a .1 symlink
3289 - if [[ "${MY_SOVER}" != "1" ]]; then
3290 - dosym ${libname}.${MY_SOVER} \
3291 - ${MY_DEST}/${libname}.1 || \
3292 - die "failed to create ${libname} symlink"
3293 - fi
3294 -
3295 - # Always create the symlink from the raw lib to the .1
3296 - dosym ${libname}.1 \
3297 - ${MY_DEST}/${libname} || \
3298 - die "failed to create ${libname} symlink"
3299 -}
3300 -
3301 -src_install() {
3302 - if use kernel_linux; then
3303 - linux-mod_src_install
3304 -
3305 - # Add the aliases
3306 - # This file is tweaked with the appropriate video group in
3307 - # pkg_preinst, see bug #491414
3308 - insinto /etc/modprobe.d
3309 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
3310 - use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
3311 -
3312 - # Ensures that our device nodes are created when not using X
3313 - exeinto "$(get_udevdir)"
3314 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
3315 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
3316 - elif use kernel_FreeBSD; then
3317 - if use x86-fbsd; then
3318 - insinto /boot/modules
3319 - doins "${S}/src/nvidia.kld"
3320 - fi
3321 -
3322 - exeinto /boot/modules
3323 - doexe "${S}/src/nvidia.ko"
3324 - fi
3325 -
3326 - # NVIDIA kernel <-> userspace driver config lib
3327 - donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
3328 -
3329 - # NVIDIA framebuffer capture library
3330 - donvidia ${NV_OBJ}/libnvidia-fbc.so ${NV_SOVER}
3331 -
3332 - # NVIDIA video encode/decode <-> CUDA
3333 - if use kernel_linux; then
3334 - donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
3335 - donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
3336 - fi
3337 -
3338 - if use X; then
3339 - # Xorg DDX driver
3340 - insinto /usr/$(get_libdir)/xorg/modules/drivers
3341 - doins ${NV_X11}/nvidia_drv.so
3342 -
3343 - # Xorg GLX driver
3344 - donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
3345 - /usr/$(get_libdir)/opengl/nvidia/extensions
3346 -
3347 - # Xorg nvidia.conf
3348 - if has_version '>=x11-base/xorg-server-1.16'; then
3349 - insinto /usr/share/X11/xorg.conf.d
3350 - newins {,50-}nvidia-drm-outputclass.conf
3351 - fi
3352 - fi
3353 -
3354 - # OpenCL ICD for NVIDIA
3355 - if use kernel_linux; then
3356 - insinto /etc/OpenCL/vendors
3357 - doins ${NV_OBJ}/nvidia.icd
3358 - fi
3359 -
3360 - # Documentation
3361 - dohtml ${NV_DOC}/html/*
3362 - if use kernel_FreeBSD; then
3363 - dodoc "${NV_DOC}/README"
3364 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
3365 - use tools && doman "${NV_MAN}/nvidia-settings.1"
3366 - else
3367 - # Docs
3368 - newdoc "${NV_DOC}/README.txt" README
3369 - dodoc "${NV_DOC}/NVIDIA_Changelog"
3370 - doman "${NV_MAN}/nvidia-smi.1.gz"
3371 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
3372 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
3373 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
3374 - fi
3375 -
3376 - # Helper Apps
3377 - exeinto /opt/bin/
3378 -
3379 - if use X; then
3380 - doexe ${NV_OBJ}/nvidia-xconfig
3381 - fi
3382 -
3383 - if use kernel_linux ; then
3384 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
3385 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
3386 - doexe ${NV_OBJ}/nvidia-debugdump
3387 - doexe ${NV_OBJ}/nvidia-persistenced
3388 - doexe ${NV_OBJ}/nvidia-smi
3389 -
3390 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
3391 - doexe ${NV_OBJ}/nvidia-modprobe
3392 - fowners root:video /opt/bin/nvidia-modprobe
3393 - fperms 4710 /opt/bin/nvidia-modprobe
3394 - dosym /{opt,usr}/bin/nvidia-modprobe
3395 -
3396 - doman nvidia-cuda-mps-control.1.gz
3397 - doman nvidia-modprobe.1.gz
3398 - doman nvidia-persistenced.1.gz
3399 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
3400 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
3401 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
3402 - fi
3403 -
3404 - if use tools; then
3405 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
3406 - DESTDIR="${D}" \
3407 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
3408 - LIBDIR="${D}/usr/$(get_libdir)" \
3409 - PREFIX=/usr \
3410 - NV_USE_BUNDLED_LIBJANSSON=0 \
3411 - install
3412 -
3413 - if use static-libs; then
3414 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
3415 -
3416 - insinto /usr/share/nvidia/
3417 - doins nvidia-application-profiles-${PV}-key-documentation
3418 - fi
3419 -
3420 - insinto /etc/nvidia
3421 - newins \
3422 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
3423 -
3424 - # There is no icon in the FreeBSD tarball.
3425 - use kernel_FreeBSD || \
3426 - doicon ${NV_OBJ}/nvidia-settings.png
3427 -
3428 - domenu "${FILESDIR}"/nvidia-settings.desktop
3429 -
3430 - exeinto /etc/X11/xinit/xinitrc.d
3431 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
3432 - fi
3433 -
3434 - dobin ${NV_OBJ}/nvidia-bug-report.sh
3435 -
3436 - if has_multilib_profile && use multilib ; then
3437 - local OABI=${ABI}
3438 - for ABI in $(get_install_abis) ; do
3439 - src_install-libs
3440 - done
3441 - ABI=${OABI}
3442 - unset OABI
3443 - else
3444 - src_install-libs
3445 - fi
3446 -
3447 - is_final_abi || die "failed to iterate through all ABIs"
3448 -
3449 - readme.gentoo_create_doc
3450 -}
3451 -
3452 -src_install-libs() {
3453 - local inslibdir=$(get_libdir)
3454 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
3455 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
3456 - local libdir=${NV_OBJ}
3457 -
3458 - if use kernel_linux && has_multilib_profile && \
3459 - [[ ${ABI} == "x86" ]] ; then
3460 - libdir=${NV_OBJ}/32
3461 - fi
3462 -
3463 - if use X; then
3464 - # The GLX libraries
3465 - donvidia ${libdir}/libEGL.so ${NV_SOVER} ${GL_ROOT}
3466 - donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
3467 - donvidia ${libdir}/libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}
3468 - donvidia ${libdir}/libnvidia-eglcore.so ${NV_SOVER}
3469 - donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
3470 - donvidia ${libdir}/libnvidia-glsi.so ${NV_SOVER}
3471 - donvidia ${libdir}/libnvidia-ifr.so ${NV_SOVER}
3472 - if use kernel_FreeBSD; then
3473 - donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
3474 - else
3475 - donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
3476 - fi
3477 -
3478 - # VDPAU
3479 - donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
3480 -
3481 - # GLES v2 libraries
3482 - insinto ${GL_ROOT}
3483 - doexe ${libdir}/libGLESv2.so.${PV}
3484 - dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
3485 - dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
3486 - fi
3487 -
3488 - # NVIDIA monitoring library
3489 - if use kernel_linux ; then
3490 - donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
3491 - fi
3492 -
3493 - # CUDA & OpenCL
3494 - if use kernel_linux; then
3495 - donvidia ${libdir}/libcuda.so ${NV_SOVER}
3496 - donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
3497 - donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
3498 - donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
3499 - fi
3500 -}
3501 -
3502 -pkg_preinst() {
3503 - if use kernel_linux; then
3504 - linux-mod_pkg_preinst
3505 -
3506 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
3507 - if [ -z "${videogroup}" ]; then
3508 - eerror "Failed to determine the video group gid"
3509 - die "Failed to determine the video group gid"
3510 - else
3511 - sed -i \
3512 - -e "s:PACKAGE:${PF}:g" \
3513 - -e "s:VIDEOGID:${videogroup}:" \
3514 - "${D}"/etc/modprobe.d/nvidia.conf || die
3515 - fi
3516 - fi
3517 -
3518 - # Clean the dynamic libGL stuff's home to ensure
3519 - # we dont have stale libs floating around
3520 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
3521 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
3522 - fi
3523 - # Make sure we nuke the old nvidia-glx's env.d file
3524 - if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
3525 - rm -f "${ROOT}"/etc/env.d/09nvidia
3526 - fi
3527 -}
3528 -
3529 -pkg_postinst() {
3530 - use kernel_linux && linux-mod_pkg_postinst
3531 -
3532 - # Switch to the nvidia implementation
3533 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
3534 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
3535 -
3536 - readme.gentoo_print_elog
3537 -
3538 - if ! use X; then
3539 - elog "You have elected to not install the X.org driver. Along with"
3540 - elog "this the OpenGL libraries and VDPAU libraries were not"
3541 - elog "installed. Additionally, once the driver is loaded your card"
3542 - elog "and fan will run at max speed which may not be desirable."
3543 - elog "Use the 'nvidia-smi' init script to have your card and fan"
3544 - elog "speed scale appropriately."
3545 - elog
3546 - fi
3547 - if ! use tools; then
3548 - elog "USE=tools controls whether the nvidia-settings application"
3549 - elog "is installed. If you would like to use it, enable that"
3550 - elog "flag and re-emerge this ebuild. Optionally you can install"
3551 - elog "media-video/nvidia-settings"
3552 - elog
3553 - fi
3554 -}
3555 -
3556 -pkg_prerm() {
3557 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
3558 -}
3559 -
3560 -pkg_postrm() {
3561 - use kernel_linux && linux-mod_pkg_postrm
3562 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
3563 -}
3564
3565 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-352.79-r5.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-352.79-r5.ebuild
3566 deleted file mode 100644
3567 index 7451b354b2f..00000000000
3568 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-352.79-r5.ebuild
3569 +++ /dev/null
3570 @@ -1,525 +0,0 @@
3571 -# Copyright 1999-2017 Gentoo Foundation
3572 -# Distributed under the terms of the GNU General Public License v2
3573 -
3574 -EAPI=5
3575 -
3576 -inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
3577 - portability toolchain-funcs unpacker user udev
3578 -
3579 -NV_URI="http://us.download.nvidia.com/XFree86/"
3580 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
3581 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
3582 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
3583 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
3584 -
3585 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
3586 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
3587 -SRC_URI="
3588 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
3589 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
3590 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
3591 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
3592 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
3593 -"
3594 -
3595 -LICENSE="GPL-2 NVIDIA-r2"
3596 -SLOT="0/${PV%.*}"
3597 -KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
3598 -RESTRICT="bindist mirror"
3599 -EMULTILIB_PKG="true"
3600 -
3601 -IUSE="acpi gtk3 multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools +X uvm"
3602 -REQUIRED_USE="
3603 - tools? ( X )
3604 - static-libs? ( tools )
3605 -"
3606 -
3607 -COMMON="
3608 - app-eselect/eselect-opencl
3609 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
3610 - tools? (
3611 - dev-libs/atk
3612 - dev-libs/glib:2
3613 - dev-libs/jansson
3614 - gtk3? (
3615 - x11-libs/gtk+:3
3616 - )
3617 - x11-libs/cairo
3618 - x11-libs/gdk-pixbuf[X]
3619 - x11-libs/gtk+:2
3620 - x11-libs/libX11
3621 - x11-libs/libXext
3622 - x11-libs/libXrandr
3623 - x11-libs/libXv
3624 - x11-libs/libXxf86vm
3625 - x11-libs/pango[X]
3626 - )
3627 - X? (
3628 - >=app-eselect/eselect-opengl-1.0.9
3629 - )
3630 -"
3631 -DEPEND="
3632 - ${COMMON}
3633 - kernel_linux? ( virtual/linux-sources )
3634 -"
3635 -RDEPEND="
3636 - ${COMMON}
3637 - acpi? ( sys-power/acpid )
3638 - tools? ( !media-video/nvidia-settings )
3639 - X? (
3640 - <x11-base/xorg-server-1.18.99:=
3641 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
3642 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
3643 - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
3644 - sys-libs/zlib[${MULTILIB_USEDEP}]
3645 - )
3646 -"
3647 -
3648 -QA_PREBUILT="opt/* usr/lib*"
3649 -
3650 -S=${WORKDIR}/
3651 -
3652 -pkg_pretend() {
3653 - if use amd64 && has_multilib_profile && \
3654 - [ "${DEFAULT_ABI}" != "amd64" ]; then
3655 - eerror "This ebuild doesn't currently support changing your default ABI"
3656 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
3657 - fi
3658 -
3659 - if use kernel_linux && kernel_is ge 4 4; then
3660 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
3661 - ewarn "which are limited to the following kernels:"
3662 - ewarn "<sys-kernel/gentoo-sources-4.4"
3663 - ewarn "<sys-kernel/vanilla-sources-4.4"
3664 - ewarn ""
3665 - ewarn "You are free to utilize epatch_user to provide whatever"
3666 - ewarn "support you feel is appropriate, but will not receive"
3667 - ewarn "support as a result of those changes."
3668 - ewarn ""
3669 - ewarn "Do not file a bug report about this."
3670 - ewarn ""
3671 - fi
3672 -
3673 - # Since Nvidia ships many different series of drivers, we need to give the user
3674 - # some kind of guidance as to what version they should install. This tries
3675 - # to point the user in the right direction but can't be perfect. check
3676 - # nvidia-driver.eclass
3677 - nvidia-driver-check-warning
3678 -
3679 - # Kernel features/options to check for
3680 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
3681 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
3682 -
3683 - # Now do the above checks
3684 - use kernel_linux && check_extra_config
3685 -}
3686 -
3687 -pkg_setup() {
3688 - # try to turn off distcc and ccache for people that have a problem with it
3689 - export DISTCC_DISABLE=1
3690 - export CCACHE_DISABLE=1
3691 -
3692 - if use kernel_linux; then
3693 - MODULE_NAMES="nvidia(video:${S}/kernel)"
3694 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel/uvm)"
3695 -
3696 - # This needs to run after MODULE_NAMES (so that the eclass checks
3697 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
3698 - # is set (so that KV_DIR is populated).
3699 - linux-mod_pkg_setup
3700 -
3701 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
3702 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
3703 -
3704 - # linux-mod_src_compile calls set_arch_to_kernel, which
3705 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
3706 - # expects x86_64 or i386 and then converts it to x86
3707 - # later on in the build process
3708 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
3709 - fi
3710 -
3711 - # set variables to where files are in the package structure
3712 - if use kernel_FreeBSD; then
3713 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
3714 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
3715 - NV_DOC="${S}/doc"
3716 - NV_OBJ="${S}/obj"
3717 - NV_SRC="${S}/src"
3718 - NV_MAN="${S}/x11/man"
3719 - NV_X11="${S}/obj"
3720 - NV_SOVER=1
3721 - elif use kernel_linux; then
3722 - NV_DOC="${S}"
3723 - NV_OBJ="${S}"
3724 - NV_SRC="${S}/kernel"
3725 - NV_MAN="${S}"
3726 - NV_X11="${S}"
3727 - NV_SOVER=${PV}
3728 - else
3729 - die "Could not determine proper NVIDIA package"
3730 - fi
3731 -}
3732 -
3733 -src_prepare() {
3734 - # Please add a brief description for every added patch
3735 -
3736 - if use kernel_linux; then
3737 - if kernel_is lt 2 6 9 ; then
3738 - eerror "You must build this against 2.6.9 or higher kernels."
3739 - fi
3740 -
3741 - # If greater than 2.6.5 use M= instead of SUBDIR=
3742 -# convert_to_m "${NV_SRC}"/Makefile.kbuild
3743 - fi
3744 -
3745 - if use pax_kernel; then
3746 - ewarn "Using PAX patches is not supported. You will be asked to"
3747 - ewarn "use a standard kernel should you have issues. Should you"
3748 - ewarn "need support with these patches, contact the PaX team."
3749 - epatch "${FILESDIR}"/${PN}-346.16-pax-usercopy.patch
3750 - epatch "${FILESDIR}"/${PN}-346.16-pax-constify.patch
3751 - fi
3752 -
3753 - # Allow user patches so they can support RC kernels and whatever else
3754 - epatch_user
3755 -}
3756 -
3757 -src_compile() {
3758 - # This is already the default on Linux, as there's no toplevel Makefile, but
3759 - # on FreeBSD there's one and triggers the kernel module build, as we install
3760 - # it by itself, pass this.
3761 -
3762 - cd "${NV_SRC}"
3763 - if use kernel_FreeBSD; then
3764 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
3765 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
3766 - elif use kernel_linux; then
3767 - MAKEOPTS=-j1
3768 - linux-mod_src_compile
3769 - fi
3770 -
3771 - if use tools; then
3772 - emake -C "${S}"/nvidia-settings-${PV}/src \
3773 - AR="$(tc-getAR)" \
3774 - CC="$(tc-getCC)" \
3775 - LIBDIR="$(get_libdir)" \
3776 - RANLIB="$(tc-getRANLIB)" \
3777 - build-xnvctrl
3778 -
3779 - emake -C "${S}"/nvidia-settings-${PV}/src \
3780 - CC="$(tc-getCC)" \
3781 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
3782 - LD="$(tc-getCC)" \
3783 - LIBDIR="$(get_libdir)" \
3784 - NVML_ENABLED=0 \
3785 - NV_USE_BUNDLED_LIBJANSSON=0 \
3786 - NV_VERBOSE=1 \
3787 - STRIP_CMD=true
3788 - fi
3789 -}
3790 -
3791 -# Install nvidia library:
3792 -# the first parameter is the library to install
3793 -# the second parameter is the provided soversion
3794 -# the third parameter is the target directory if its not /usr/lib
3795 -donvidia() {
3796 - # Full path to library minus SOVER
3797 - MY_LIB="$1"
3798 -
3799 - # SOVER to use
3800 - MY_SOVER="$2"
3801 -
3802 - # Where to install
3803 - MY_DEST="$3"
3804 -
3805 - if [[ -z "${MY_DEST}" ]]; then
3806 - MY_DEST="/usr/$(get_libdir)"
3807 - action="dolib.so"
3808 - else
3809 - exeinto ${MY_DEST}
3810 - action="doexe"
3811 - fi
3812 -
3813 - # Get just the library name
3814 - libname=$(basename $1)
3815 -
3816 - # Install the library with the correct SOVER
3817 - ${action} ${MY_LIB}.${MY_SOVER} || \
3818 - die "failed to install ${libname}"
3819 -
3820 - # If SOVER wasn't 1, then we need to create a .1 symlink
3821 - if [[ "${MY_SOVER}" != "1" ]]; then
3822 - dosym ${libname}.${MY_SOVER} \
3823 - ${MY_DEST}/${libname}.1 || \
3824 - die "failed to create ${libname} symlink"
3825 - fi
3826 -
3827 - # Always create the symlink from the raw lib to the .1
3828 - dosym ${libname}.1 \
3829 - ${MY_DEST}/${libname} || \
3830 - die "failed to create ${libname} symlink"
3831 -}
3832 -
3833 -src_install() {
3834 - if use kernel_linux; then
3835 - linux-mod_src_install
3836 -
3837 - # Add the aliases
3838 - # This file is tweaked with the appropriate video group in
3839 - # pkg_preinst, see bug #491414
3840 - insinto /etc/modprobe.d
3841 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
3842 - use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
3843 -
3844 - # Ensures that our device nodes are created when not using X
3845 - exeinto "$(get_udevdir)"
3846 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
3847 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
3848 - elif use kernel_FreeBSD; then
3849 - if use x86-fbsd; then
3850 - insinto /boot/modules
3851 - doins "${S}/src/nvidia.kld"
3852 - fi
3853 -
3854 - exeinto /boot/modules
3855 - doexe "${S}/src/nvidia.ko"
3856 - fi
3857 -
3858 - # NVIDIA kernel <-> userspace driver config lib
3859 - donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
3860 -
3861 - # NVIDIA framebuffer capture library
3862 - donvidia ${NV_OBJ}/libnvidia-fbc.so ${NV_SOVER}
3863 -
3864 - # NVIDIA video encode/decode <-> CUDA
3865 - if use kernel_linux; then
3866 - donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
3867 - donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
3868 - fi
3869 -
3870 - if use X; then
3871 - # Xorg DDX driver
3872 - insinto /usr/$(get_libdir)/xorg/modules/drivers
3873 - doins ${NV_X11}/nvidia_drv.so
3874 -
3875 - # Xorg GLX driver
3876 - donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
3877 - /usr/$(get_libdir)/opengl/nvidia/extensions
3878 -
3879 - # Xorg nvidia.conf
3880 - if has_version '>=x11-base/xorg-server-1.16'; then
3881 - insinto /usr/share/X11/xorg.conf.d
3882 - newins {,50-}nvidia-drm-outputclass.conf
3883 - fi
3884 - fi
3885 -
3886 - # OpenCL ICD for NVIDIA
3887 - if use kernel_linux; then
3888 - insinto /etc/OpenCL/vendors
3889 - doins ${NV_OBJ}/nvidia.icd
3890 - fi
3891 -
3892 - # Documentation
3893 - dohtml ${NV_DOC}/html/*
3894 - if use kernel_FreeBSD; then
3895 - dodoc "${NV_DOC}/README"
3896 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
3897 - use tools && doman "${NV_MAN}/nvidia-settings.1"
3898 - else
3899 - # Docs
3900 - newdoc "${NV_DOC}/README.txt" README
3901 - dodoc "${NV_DOC}/NVIDIA_Changelog"
3902 - doman "${NV_MAN}/nvidia-smi.1.gz"
3903 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
3904 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
3905 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
3906 - fi
3907 -
3908 - # Helper Apps
3909 - exeinto /opt/bin/
3910 -
3911 - if use X; then
3912 - doexe ${NV_OBJ}/nvidia-xconfig
3913 - fi
3914 -
3915 - if use kernel_linux ; then
3916 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
3917 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
3918 - doexe ${NV_OBJ}/nvidia-debugdump
3919 - doexe ${NV_OBJ}/nvidia-persistenced
3920 - doexe ${NV_OBJ}/nvidia-smi
3921 -
3922 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
3923 - doexe ${NV_OBJ}/nvidia-modprobe
3924 - fowners root:video /opt/bin/nvidia-modprobe
3925 - fperms 4710 /opt/bin/nvidia-modprobe
3926 - dosym /{opt,usr}/bin/nvidia-modprobe
3927 -
3928 - doman nvidia-cuda-mps-control.1.gz
3929 - doman nvidia-modprobe.1.gz
3930 - doman nvidia-persistenced.1.gz
3931 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
3932 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
3933 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
3934 - fi
3935 -
3936 - if use tools; then
3937 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
3938 - DESTDIR="${D}" \
3939 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
3940 - LIBDIR="${D}/usr/$(get_libdir)" \
3941 - PREFIX=/usr \
3942 - NV_USE_BUNDLED_LIBJANSSON=0 \
3943 - install
3944 -
3945 - if use static-libs; then
3946 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
3947 -
3948 - insinto /usr/share/nvidia/
3949 - doins nvidia-application-profiles-${PV}-key-documentation
3950 - fi
3951 -
3952 - insinto /etc/nvidia
3953 - newins \
3954 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
3955 -
3956 - # There is no icon in the FreeBSD tarball.
3957 - use kernel_FreeBSD || \
3958 - doicon ${NV_OBJ}/nvidia-settings.png
3959 -
3960 - domenu "${FILESDIR}"/nvidia-settings.desktop
3961 -
3962 - exeinto /etc/X11/xinit/xinitrc.d
3963 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
3964 - fi
3965 -
3966 - dobin ${NV_OBJ}/nvidia-bug-report.sh
3967 -
3968 - if has_multilib_profile && use multilib ; then
3969 - local OABI=${ABI}
3970 - for ABI in $(get_install_abis) ; do
3971 - src_install-libs
3972 - done
3973 - ABI=${OABI}
3974 - unset OABI
3975 - else
3976 - src_install-libs
3977 - fi
3978 -
3979 - is_final_abi || die "failed to iterate through all ABIs"
3980 -
3981 - readme.gentoo_create_doc
3982 -}
3983 -
3984 -src_install-libs() {
3985 - local inslibdir=$(get_libdir)
3986 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
3987 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
3988 - local libdir=${NV_OBJ}
3989 -
3990 - if use kernel_linux && has_multilib_profile && \
3991 - [[ ${ABI} == "x86" ]] ; then
3992 - libdir=${NV_OBJ}/32
3993 - fi
3994 -
3995 - if use X; then
3996 - # The GLX libraries
3997 - donvidia ${libdir}/libEGL.so ${NV_SOVER} ${GL_ROOT}
3998 - donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
3999 - donvidia ${libdir}/libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}
4000 - donvidia ${libdir}/libnvidia-eglcore.so ${NV_SOVER}
4001 - donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
4002 - donvidia ${libdir}/libnvidia-glsi.so ${NV_SOVER}
4003 - donvidia ${libdir}/libnvidia-ifr.so ${NV_SOVER}
4004 - if use kernel_FreeBSD; then
4005 - donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
4006 - else
4007 - donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
4008 - fi
4009 -
4010 - # VDPAU
4011 - donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
4012 -
4013 - # GLES v2 libraries
4014 - insinto ${GL_ROOT}
4015 - doexe ${libdir}/libGLESv2.so.${PV}
4016 - dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
4017 - dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
4018 - fi
4019 -
4020 - # NVIDIA monitoring library
4021 - if use kernel_linux ; then
4022 - donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
4023 - fi
4024 -
4025 - # CUDA & OpenCL
4026 - if use kernel_linux; then
4027 - donvidia ${libdir}/libcuda.so ${NV_SOVER}
4028 - donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
4029 - donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
4030 - donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
4031 - fi
4032 -}
4033 -
4034 -pkg_preinst() {
4035 - if use kernel_linux; then
4036 - linux-mod_pkg_preinst
4037 -
4038 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
4039 - if [ -z "${videogroup}" ]; then
4040 - eerror "Failed to determine the video group gid"
4041 - die "Failed to determine the video group gid"
4042 - else
4043 - sed -i \
4044 - -e "s:PACKAGE:${PF}:g" \
4045 - -e "s:VIDEOGID:${videogroup}:" \
4046 - "${D}"/etc/modprobe.d/nvidia.conf || die
4047 - fi
4048 - fi
4049 -
4050 - # Clean the dynamic libGL stuff's home to ensure
4051 - # we dont have stale libs floating around
4052 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
4053 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
4054 - fi
4055 - # Make sure we nuke the old nvidia-glx's env.d file
4056 - if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
4057 - rm -f "${ROOT}"/etc/env.d/09nvidia
4058 - fi
4059 -}
4060 -
4061 -pkg_postinst() {
4062 - use kernel_linux && linux-mod_pkg_postinst
4063 -
4064 - # Switch to the nvidia implementation
4065 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
4066 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
4067 -
4068 - readme.gentoo_print_elog
4069 -
4070 - if ! use X; then
4071 - elog "You have elected to not install the X.org driver. Along with"
4072 - elog "this the OpenGL libraries and VDPAU libraries were not"
4073 - elog "installed. Additionally, once the driver is loaded your card"
4074 - elog "and fan will run at max speed which may not be desirable."
4075 - elog "Use the 'nvidia-smi' init script to have your card and fan"
4076 - elog "speed scale appropriately."
4077 - elog
4078 - fi
4079 - if ! use tools; then
4080 - elog "USE=tools controls whether the nvidia-settings application"
4081 - elog "is installed. If you would like to use it, enable that"
4082 - elog "flag and re-emerge this ebuild. Optionally you can install"
4083 - elog "media-video/nvidia-settings"
4084 - elog
4085 - fi
4086 -}
4087 -
4088 -pkg_prerm() {
4089 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
4090 -}
4091 -
4092 -pkg_postrm() {
4093 - use kernel_linux && linux-mod_pkg_postrm
4094 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
4095 -}
4096
4097 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-355.11-r4.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-355.11-r4.ebuild
4098 deleted file mode 100644
4099 index 4dc2199f3e7..00000000000
4100 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-355.11-r4.ebuild
4101 +++ /dev/null
4102 @@ -1,499 +0,0 @@
4103 -# Copyright 1999-2016 Gentoo Foundation
4104 -# Distributed under the terms of the GNU General Public License v2
4105 -
4106 -EAPI=5
4107 -
4108 -inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
4109 - portability toolchain-funcs unpacker user udev
4110 -
4111 -NV_URI="http://us.download.nvidia.com/XFree86/"
4112 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
4113 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
4114 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
4115 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
4116 -
4117 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
4118 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
4119 -SRC_URI="
4120 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
4121 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
4122 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
4123 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
4124 -"
4125 -
4126 -LICENSE="GPL-2 NVIDIA-r2"
4127 -SLOT="0/${PV%.*}"
4128 -KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
4129 -RESTRICT="bindist mirror"
4130 -EMULTILIB_PKG="true"
4131 -
4132 -IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel +tools gtk2 gtk3 +X uvm"
4133 -REQUIRED_USE="
4134 - tools? ( X || ( gtk2 gtk3 ) )
4135 -"
4136 -
4137 -COMMON="
4138 - app-eselect/eselect-opencl
4139 - gtk3? ( x11-libs/cairo )
4140 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
4141 - X? (
4142 - >=app-eselect/eselect-opengl-1.0.9
4143 - )
4144 -"
4145 -DEPEND="
4146 - ${COMMON}
4147 - app-arch/xz-utils
4148 - kernel_linux? ( virtual/linux-sources )
4149 -"
4150 -RDEPEND="
4151 - ${COMMON}
4152 - acpi? ( sys-power/acpid )
4153 - tools? (
4154 - dev-libs/atk
4155 - dev-libs/glib:2
4156 - x11-libs/gdk-pixbuf
4157 - gtk2? ( >=x11-libs/gtk+-2.4:2 )
4158 - gtk3? ( x11-libs/gtk+:3 )
4159 - x11-libs/libX11
4160 - x11-libs/libXext
4161 - x11-libs/pango[X]
4162 - )
4163 - X? (
4164 - <x11-base/xorg-server-1.18.99:=
4165 - >=x11-libs/libvdpau-1.0
4166 - multilib? (
4167 - >=x11-libs/libX11-1.6.2[abi_x86_32]
4168 - >=x11-libs/libXext-1.3.2[abi_x86_32]
4169 - )
4170 - )
4171 -"
4172 -
4173 -QA_PREBUILT="opt/* usr/lib*"
4174 -
4175 -S=${WORKDIR}/
4176 -
4177 -pkg_pretend() {
4178 - if use amd64 && has_multilib_profile && \
4179 - [ "${DEFAULT_ABI}" != "amd64" ]; then
4180 - eerror "This ebuild doesn't currently support changing your default ABI"
4181 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
4182 - fi
4183 -
4184 - if use kernel_linux && kernel_is ge 4 3; then
4185 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
4186 - ewarn "which are limited to the following kernels:"
4187 - ewarn "<sys-kernel/gentoo-sources-4.3"
4188 - ewarn "<sys-kernel/vanilla-sources-4.3"
4189 - ewarn ""
4190 - ewarn "You are free to utilize epatch_user to provide whatever"
4191 - ewarn "support you feel is appropriate, but will not receive"
4192 - ewarn "support as a result of those changes."
4193 - ewarn ""
4194 - ewarn "Do not file a bug report about this."
4195 - fi
4196 -
4197 - # Since Nvidia ships many different series of drivers, we need to give the user
4198 - # some kind of guidance as to what version they should install. This tries
4199 - # to point the user in the right direction but can't be perfect. check
4200 - # nvidia-driver.eclass
4201 - nvidia-driver-check-warning
4202 -
4203 - # Kernel features/options to check for
4204 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
4205 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
4206 -
4207 - # Now do the above checks
4208 - use kernel_linux && check_extra_config
4209 -}
4210 -
4211 -pkg_setup() {
4212 - # try to turn off distcc and ccache for people that have a problem with it
4213 - export DISTCC_DISABLE=1
4214 - export CCACHE_DISABLE=1
4215 -
4216 - if use kernel_linux; then
4217 - MODULE_NAMES="nvidia(video:${S}/kernel)"
4218 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
4219 -
4220 - # This needs to run after MODULE_NAMES (so that the eclass checks
4221 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
4222 - # is set (so that KV_DIR is populated).
4223 - linux-mod_pkg_setup
4224 -
4225 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
4226 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
4227 -
4228 - # linux-mod_src_compile calls set_arch_to_kernel, which
4229 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
4230 - # expects x86_64 or i386 and then converts it to x86
4231 - # later on in the build process
4232 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
4233 - fi
4234 -
4235 - # set variables to where files are in the package structure
4236 - if use kernel_FreeBSD; then
4237 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
4238 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
4239 - NV_DOC="${S}/doc"
4240 - NV_OBJ="${S}/obj"
4241 - NV_SRC="${S}/src"
4242 - NV_MAN="${S}/x11/man"
4243 - NV_X11="${S}/obj"
4244 - NV_SOVER=1
4245 - elif use kernel_linux; then
4246 - NV_DOC="${S}"
4247 - NV_OBJ="${S}"
4248 - NV_SRC="${S}/kernel"
4249 - NV_MAN="${S}"
4250 - NV_X11="${S}"
4251 - NV_SOVER=${PV}
4252 - else
4253 - die "Could not determine proper NVIDIA package"
4254 - fi
4255 -}
4256 -
4257 -src_prepare() {
4258 - # Please add a brief description for every added patch
4259 -
4260 - if use kernel_linux; then
4261 - if kernel_is lt 2 6 9; then
4262 - eerror "You must build this against 2.6.9 or higher kernels."
4263 - fi
4264 -
4265 - # If greater than 2.6.5 use M= instead of SUBDIR=
4266 -# convert_to_m "${NV_SRC}"/Makefile.kbuild
4267 - fi
4268 -
4269 - if use pax_kernel; then
4270 - ewarn "Using PAX patches is not supported. You will be asked to"
4271 - ewarn "use a standard kernel should you have issues. Should you"
4272 - ewarn "need support with these patches, contact the PaX team."
4273 - epatch "${FILESDIR}"/${PN}-355.06-pax.patch
4274 - fi
4275 -
4276 - # Allow user patches so they can support RC kernels and whatever else
4277 - epatch_user
4278 -}
4279 -
4280 -src_compile() {
4281 - # This is already the default on Linux, as there's no toplevel Makefile, but
4282 - # on FreeBSD there's one and triggers the kernel module build, as we install
4283 - # it by itself, pass this.
4284 -
4285 - cd "${NV_SRC}"
4286 - if use kernel_FreeBSD; then
4287 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
4288 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
4289 - elif use kernel_linux; then
4290 - MAKEOPTS=-j1
4291 - linux-mod_src_compile
4292 - fi
4293 -}
4294 -
4295 -# Install nvidia library:
4296 -# the first parameter is the library to install
4297 -# the second parameter is the provided soversion
4298 -# the third parameter is the target directory if it is not /usr/lib
4299 -donvidia() {
4300 - # Full path to library minus SOVER
4301 - MY_LIB="$1"
4302 -
4303 - # SOVER to use
4304 - MY_SOVER="$2"
4305 -
4306 - # Where to install
4307 - MY_DEST="$3"
4308 -
4309 - if [[ -z "${MY_DEST}" ]]; then
4310 - MY_DEST="/usr/$(get_libdir)"
4311 - action="dolib.so"
4312 - else
4313 - exeinto ${MY_DEST}
4314 - action="doexe"
4315 - fi
4316 -
4317 - # Get just the library name
4318 - libname=$(basename $1)
4319 -
4320 - # Install the library with the correct SOVER
4321 - ${action} ${MY_LIB}.${MY_SOVER} || \
4322 - die "failed to install ${libname}"
4323 -
4324 - # If SOVER wasn't 1, then we need to create a .1 symlink
4325 - if [[ "${MY_SOVER}" != "1" ]]; then
4326 - dosym ${libname}.${MY_SOVER} \
4327 - ${MY_DEST}/${libname}.1 || \
4328 - die "failed to create ${libname} symlink"
4329 - fi
4330 -
4331 - # Always create the symlink from the raw lib to the .1
4332 - dosym ${libname}.1 \
4333 - ${MY_DEST}/${libname} || \
4334 - die "failed to create ${libname} symlink"
4335 -}
4336 -
4337 -src_install() {
4338 - if use kernel_linux; then
4339 - linux-mod_src_install
4340 -
4341 - # Add the aliases
4342 - # This file is tweaked with the appropriate video group in
4343 - # pkg_preinst, see bug #491414
4344 - insinto /etc/modprobe.d
4345 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
4346 - use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
4347 -
4348 - # Ensures that our device nodes are created when not using X
4349 - exeinto "$(get_udevdir)"
4350 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
4351 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
4352 - elif use kernel_FreeBSD; then
4353 - if use x86-fbsd; then
4354 - insinto /boot/modules
4355 - doins "${S}/src/nvidia.kld"
4356 - fi
4357 -
4358 - exeinto /boot/modules
4359 - doexe "${S}/src/nvidia.ko"
4360 - fi
4361 -
4362 - # NVIDIA kernel <-> userspace driver config lib
4363 - donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
4364 -
4365 - # NVIDIA framebuffer capture library
4366 - donvidia ${NV_OBJ}/libnvidia-fbc.so ${NV_SOVER}
4367 -
4368 - # NVIDIA video encode/decode <-> CUDA
4369 - if use kernel_linux; then
4370 - donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
4371 - donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
4372 - fi
4373 -
4374 - if use X; then
4375 - # Xorg DDX driver
4376 - insinto /usr/$(get_libdir)/xorg/modules/drivers
4377 - doins ${NV_X11}/nvidia_drv.so
4378 -
4379 - # Xorg GLX driver
4380 - donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
4381 - /usr/$(get_libdir)/opengl/nvidia/extensions
4382 -
4383 - # Xorg nvidia.conf
4384 - if has_version '>=x11-base/xorg-server-1.16'; then
4385 - insinto /usr/share/X11/xorg.conf.d
4386 - newins {,50-}nvidia-drm-outputclass.conf
4387 - fi
4388 - fi
4389 -
4390 - # OpenCL ICD for NVIDIA
4391 - if use kernel_linux; then
4392 - insinto /etc/OpenCL/vendors
4393 - doins ${NV_OBJ}/nvidia.icd
4394 - fi
4395 -
4396 - # Documentation
4397 - dohtml ${NV_DOC}/html/*
4398 - if use kernel_FreeBSD; then
4399 - dodoc "${NV_DOC}/README"
4400 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
4401 - use tools && doman "${NV_MAN}/nvidia-settings.1"
4402 - else
4403 - # Docs
4404 - newdoc "${NV_DOC}/README.txt" README
4405 - dodoc "${NV_DOC}/NVIDIA_Changelog"
4406 - doman "${NV_MAN}/nvidia-smi.1.gz"
4407 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
4408 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
4409 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
4410 - fi
4411 -
4412 - # Helper Apps
4413 - exeinto /opt/bin/
4414 -
4415 - if use X; then
4416 - doexe ${NV_OBJ}/nvidia-xconfig
4417 - fi
4418 -
4419 - if use kernel_linux; then
4420 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
4421 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
4422 - doexe ${NV_OBJ}/nvidia-debugdump
4423 - doexe ${NV_OBJ}/nvidia-persistenced
4424 - doexe ${NV_OBJ}/nvidia-smi
4425 -
4426 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
4427 - doexe ${NV_OBJ}/nvidia-modprobe
4428 - fowners root:video /opt/bin/nvidia-modprobe
4429 - fperms 4710 /opt/bin/nvidia-modprobe
4430 - dosym /{opt,usr}/bin/nvidia-modprobe
4431 -
4432 - doman nvidia-cuda-mps-control.1.gz
4433 - doman nvidia-modprobe.1.gz
4434 - doman nvidia-persistenced.1.gz
4435 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
4436 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
4437 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
4438 - fi
4439 -
4440 - if use tools; then
4441 - doexe ${NV_OBJ}/nvidia-settings
4442 - use gtk2 && donvidia libnvidia-gtk2.so ${PV}
4443 - use gtk3 && donvidia libnvidia-gtk3.so ${PV}
4444 - insinto /usr/share/nvidia/
4445 - doins nvidia-application-profiles-${PV}-key-documentation
4446 - insinto /etc/nvidia
4447 - newins nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
4448 - fi
4449 -
4450 - dobin ${NV_OBJ}/nvidia-bug-report.sh
4451 -
4452 - # Desktop entries for nvidia-settings
4453 - if use tools; then
4454 - # There is no icon in the FreeBSD tarball.
4455 - use kernel_FreeBSD || newicon ${NV_OBJ}/nvidia-settings.png ${PN}-settings.png
4456 - domenu "${FILESDIR}"/${PN}-settings.desktop
4457 - exeinto /etc/X11/xinit/xinitrc.d
4458 - doexe "${FILESDIR}"/95-nvidia-settings
4459 - fi
4460 -
4461 - #doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
4462 -
4463 - if has_multilib_profile && use multilib; then
4464 - local OABI=${ABI}
4465 - for ABI in $(get_install_abis); do
4466 - src_install-libs
4467 - done
4468 - ABI=${OABI}
4469 - unset OABI
4470 - else
4471 - src_install-libs
4472 - fi
4473 -
4474 - is_final_abi || die "failed to iterate through all ABIs"
4475 -
4476 - readme.gentoo_create_doc
4477 -}
4478 -
4479 -src_install-libs() {
4480 - local inslibdir=$(get_libdir)
4481 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
4482 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
4483 - local libdir=${NV_OBJ}
4484 -
4485 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
4486 - libdir=${NV_OBJ}/32
4487 - fi
4488 -
4489 - if use X; then
4490 - NV_GLX_LIBRARIES=(
4491 - "libEGL.so 1 ${GL_ROOT}"
4492 - "libEGL_nvidia.so 0 ${GL_ROOT}"
4493 - "libGL.so ${NV_SOVER} ${GL_ROOT}"
4494 - "libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}"
4495 - "libGLdispatch.so 0 ${GL_ROOT}"
4496 - "libOpenCL.so 1.0.0 ${CL_ROOT}"
4497 - "libOpenGL.so 0 ${GL_ROOT}"
4498 - "libcuda.so ${NV_SOVER}"
4499 - "libnvcuvid.so ${NV_SOVER}"
4500 - "libnvidia-compiler.so ${NV_SOVER}"
4501 - "libnvidia-eglcore.so ${NV_SOVER}"
4502 - "libnvidia-encode.so ${NV_SOVER}"
4503 - "libnvidia-fbc.so ${NV_SOVER}"
4504 - "libnvidia-glcore.so ${NV_SOVER}"
4505 - "libnvidia-glsi.so ${NV_SOVER}"
4506 - "libnvidia-ifr.so ${NV_SOVER}"
4507 - "libnvidia-opencl.so ${NV_SOVER}"
4508 - "libvdpau.so ${NV_SOVER} ${GL_ROOT}"
4509 - "libvdpau_nvidia.so ${NV_SOVER}"
4510 - "libvdpau_trace.so ${NV_SOVER} ${GL_ROOT}"
4511 - )
4512 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
4513 - then
4514 - NV_GLX_LIBRARIES+=( "libnvidia-wfb.so ${NV_SOVER}" )
4515 - fi
4516 -
4517 - if use kernel_FreeBSD; then
4518 - NV_GLX_LIBRARIES+=( "libnvidia-tls.so ${NV_SOVER}" )
4519 - fi
4520 -
4521 - if use kernel_linux; then
4522 - NV_GLX_LIBRARIES+=(
4523 - "libnvidia-ml.so ${NV_SOVER}"
4524 - "tls/libnvidia-tls.so ${NV_SOVER}"
4525 - )
4526 - fi
4527 -
4528 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
4529 - donvidia ${libdir}/${NV_LIB}
4530 - done
4531 -
4532 - # GLES v2 library is special
4533 - insinto ${GL_ROOT}
4534 - doexe ${libdir}/libGLESv2.so.${PV}
4535 - dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
4536 - dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
4537 - fi
4538 -}
4539 -
4540 -pkg_preinst() {
4541 - if use kernel_linux; then
4542 - linux-mod_pkg_preinst
4543 -
4544 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
4545 - if [ -z "${videogroup}" ]; then
4546 - eerror "Failed to determine the video group gid"
4547 - die "Failed to determine the video group gid"
4548 - else
4549 - sed -i \
4550 - -e "s:PACKAGE:${PF}:g" \
4551 - -e "s:VIDEOGID:${videogroup}:" \
4552 - "${D}"/etc/modprobe.d/nvidia.conf || die
4553 - fi
4554 - fi
4555 -
4556 - # Clean the dynamic libGL stuff's home to ensure
4557 - # we dont have stale libs floating around
4558 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
4559 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
4560 - fi
4561 - # Make sure we nuke the old nvidia-glx's env.d file
4562 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
4563 - rm -f "${ROOT}"/etc/env.d/09nvidia
4564 - fi
4565 -}
4566 -
4567 -pkg_postinst() {
4568 - use kernel_linux && linux-mod_pkg_postinst
4569 -
4570 - # Switch to the nvidia implementation
4571 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
4572 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
4573 -
4574 - readme.gentoo_print_elog
4575 -
4576 - if ! use X; then
4577 - elog "You have elected to not install the X.org driver. Along with"
4578 - elog "this the OpenGL libraries and VDPAU libraries were not"
4579 - elog "installed. Additionally, once the driver is loaded your card"
4580 - elog "and fan will run at max speed which may not be desirable."
4581 - elog "Use the 'nvidia-smi' init script to have your card and fan"
4582 - elog "speed scale appropriately."
4583 - elog
4584 - fi
4585 - if ! use tools; then
4586 - elog "USE=tools controls whether the nvidia-settings application"
4587 - elog "is installed. If you would like to use it, enable that"
4588 - elog "flag and re-emerge this ebuild. Optionally you can install"
4589 - elog "media-video/nvidia-settings"
4590 - elog
4591 - fi
4592 -}
4593 -
4594 -pkg_prerm() {
4595 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
4596 -}
4597 -
4598 -pkg_postrm() {
4599 - use kernel_linux && linux-mod_pkg_postrm
4600 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
4601 -}
4602
4603 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-355.11-r5.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-355.11-r5.ebuild
4604 deleted file mode 100644
4605 index 2bdc6e727de..00000000000
4606 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-355.11-r5.ebuild
4607 +++ /dev/null
4608 @@ -1,502 +0,0 @@
4609 -# Copyright 1999-2017 Gentoo Foundation
4610 -# Distributed under the terms of the GNU General Public License v2
4611 -
4612 -EAPI=5
4613 -
4614 -inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
4615 - portability toolchain-funcs unpacker user udev
4616 -
4617 -NV_URI="http://us.download.nvidia.com/XFree86/"
4618 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
4619 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
4620 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
4621 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
4622 -
4623 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
4624 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
4625 -SRC_URI="
4626 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
4627 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
4628 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
4629 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
4630 -"
4631 -
4632 -LICENSE="GPL-2 NVIDIA-r2"
4633 -SLOT="0/${PV%.*}"
4634 -KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
4635 -RESTRICT="bindist mirror"
4636 -EMULTILIB_PKG="true"
4637 -
4638 -IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel +tools gtk2 gtk3 +X uvm"
4639 -REQUIRED_USE="
4640 - tools? ( X || ( gtk2 gtk3 ) )
4641 -"
4642 -
4643 -COMMON="
4644 - app-eselect/eselect-opencl
4645 - gtk3? ( x11-libs/cairo[${MULTILIB_USEDEP}] )
4646 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
4647 - X? (
4648 - >=app-eselect/eselect-opengl-1.0.9
4649 - )
4650 -"
4651 -DEPEND="
4652 - ${COMMON}
4653 - app-arch/xz-utils
4654 - kernel_linux? ( virtual/linux-sources )
4655 -"
4656 -RDEPEND="
4657 - ${COMMON}
4658 - acpi? ( sys-power/acpid )
4659 - tools? (
4660 - dev-libs/atk
4661 - dev-libs/glib:2
4662 - x11-libs/gdk-pixbuf
4663 - gtk2? (
4664 - >=x11-libs/gtk+-2.4:2
4665 - )
4666 - gtk3? (
4667 - x11-libs/gtk+:3
4668 - )
4669 - x11-libs/libX11
4670 - x11-libs/libXext
4671 - x11-libs/pango[X]
4672 - )
4673 - X? (
4674 - <x11-base/xorg-server-1.18.99:=
4675 - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
4676 - sys-libs/zlib[${MULTILIB_USEDEP}]
4677 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
4678 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
4679 - )
4680 -"
4681 -
4682 -QA_PREBUILT="opt/* usr/lib*"
4683 -
4684 -S=${WORKDIR}/
4685 -
4686 -pkg_pretend() {
4687 - if use amd64 && has_multilib_profile && \
4688 - [ "${DEFAULT_ABI}" != "amd64" ]; then
4689 - eerror "This ebuild doesn't currently support changing your default ABI"
4690 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
4691 - fi
4692 -
4693 - if use kernel_linux && kernel_is ge 4 3; then
4694 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
4695 - ewarn "which are limited to the following kernels:"
4696 - ewarn "<sys-kernel/gentoo-sources-4.3"
4697 - ewarn "<sys-kernel/vanilla-sources-4.3"
4698 - ewarn ""
4699 - ewarn "You are free to utilize epatch_user to provide whatever"
4700 - ewarn "support you feel is appropriate, but will not receive"
4701 - ewarn "support as a result of those changes."
4702 - ewarn ""
4703 - ewarn "Do not file a bug report about this."
4704 - fi
4705 -
4706 - # Since Nvidia ships many different series of drivers, we need to give the user
4707 - # some kind of guidance as to what version they should install. This tries
4708 - # to point the user in the right direction but can't be perfect. check
4709 - # nvidia-driver.eclass
4710 - nvidia-driver-check-warning
4711 -
4712 - # Kernel features/options to check for
4713 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
4714 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
4715 -
4716 - # Now do the above checks
4717 - use kernel_linux && check_extra_config
4718 -}
4719 -
4720 -pkg_setup() {
4721 - # try to turn off distcc and ccache for people that have a problem with it
4722 - export DISTCC_DISABLE=1
4723 - export CCACHE_DISABLE=1
4724 -
4725 - if use kernel_linux; then
4726 - MODULE_NAMES="nvidia(video:${S}/kernel)"
4727 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
4728 -
4729 - # This needs to run after MODULE_NAMES (so that the eclass checks
4730 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
4731 - # is set (so that KV_DIR is populated).
4732 - linux-mod_pkg_setup
4733 -
4734 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
4735 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
4736 -
4737 - # linux-mod_src_compile calls set_arch_to_kernel, which
4738 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
4739 - # expects x86_64 or i386 and then converts it to x86
4740 - # later on in the build process
4741 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
4742 - fi
4743 -
4744 - # set variables to where files are in the package structure
4745 - if use kernel_FreeBSD; then
4746 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
4747 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
4748 - NV_DOC="${S}/doc"
4749 - NV_OBJ="${S}/obj"
4750 - NV_SRC="${S}/src"
4751 - NV_MAN="${S}/x11/man"
4752 - NV_X11="${S}/obj"
4753 - NV_SOVER=1
4754 - elif use kernel_linux; then
4755 - NV_DOC="${S}"
4756 - NV_OBJ="${S}"
4757 - NV_SRC="${S}/kernel"
4758 - NV_MAN="${S}"
4759 - NV_X11="${S}"
4760 - NV_SOVER=${PV}
4761 - else
4762 - die "Could not determine proper NVIDIA package"
4763 - fi
4764 -}
4765 -
4766 -src_prepare() {
4767 - # Please add a brief description for every added patch
4768 -
4769 - if use kernel_linux; then
4770 - if kernel_is lt 2 6 9; then
4771 - eerror "You must build this against 2.6.9 or higher kernels."
4772 - fi
4773 -
4774 - # If greater than 2.6.5 use M= instead of SUBDIR=
4775 -# convert_to_m "${NV_SRC}"/Makefile.kbuild
4776 - fi
4777 -
4778 - if use pax_kernel; then
4779 - ewarn "Using PAX patches is not supported. You will be asked to"
4780 - ewarn "use a standard kernel should you have issues. Should you"
4781 - ewarn "need support with these patches, contact the PaX team."
4782 - epatch "${FILESDIR}"/${PN}-355.06-pax.patch
4783 - fi
4784 -
4785 - # Allow user patches so they can support RC kernels and whatever else
4786 - epatch_user
4787 -}
4788 -
4789 -src_compile() {
4790 - # This is already the default on Linux, as there's no toplevel Makefile, but
4791 - # on FreeBSD there's one and triggers the kernel module build, as we install
4792 - # it by itself, pass this.
4793 -
4794 - cd "${NV_SRC}"
4795 - if use kernel_FreeBSD; then
4796 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
4797 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
4798 - elif use kernel_linux; then
4799 - MAKEOPTS=-j1
4800 - linux-mod_src_compile
4801 - fi
4802 -}
4803 -
4804 -# Install nvidia library:
4805 -# the first parameter is the library to install
4806 -# the second parameter is the provided soversion
4807 -# the third parameter is the target directory if it is not /usr/lib
4808 -donvidia() {
4809 - # Full path to library minus SOVER
4810 - MY_LIB="$1"
4811 -
4812 - # SOVER to use
4813 - MY_SOVER="$2"
4814 -
4815 - # Where to install
4816 - MY_DEST="$3"
4817 -
4818 - if [[ -z "${MY_DEST}" ]]; then
4819 - MY_DEST="/usr/$(get_libdir)"
4820 - action="dolib.so"
4821 - else
4822 - exeinto ${MY_DEST}
4823 - action="doexe"
4824 - fi
4825 -
4826 - # Get just the library name
4827 - libname=$(basename $1)
4828 -
4829 - # Install the library with the correct SOVER
4830 - ${action} ${MY_LIB}.${MY_SOVER} || \
4831 - die "failed to install ${libname}"
4832 -
4833 - # If SOVER wasn't 1, then we need to create a .1 symlink
4834 - if [[ "${MY_SOVER}" != "1" ]]; then
4835 - dosym ${libname}.${MY_SOVER} \
4836 - ${MY_DEST}/${libname}.1 || \
4837 - die "failed to create ${libname} symlink"
4838 - fi
4839 -
4840 - # Always create the symlink from the raw lib to the .1
4841 - dosym ${libname}.1 \
4842 - ${MY_DEST}/${libname} || \
4843 - die "failed to create ${libname} symlink"
4844 -}
4845 -
4846 -src_install() {
4847 - if use kernel_linux; then
4848 - linux-mod_src_install
4849 -
4850 - # Add the aliases
4851 - # This file is tweaked with the appropriate video group in
4852 - # pkg_preinst, see bug #491414
4853 - insinto /etc/modprobe.d
4854 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
4855 - use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
4856 -
4857 - # Ensures that our device nodes are created when not using X
4858 - exeinto "$(get_udevdir)"
4859 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
4860 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
4861 - elif use kernel_FreeBSD; then
4862 - if use x86-fbsd; then
4863 - insinto /boot/modules
4864 - doins "${S}/src/nvidia.kld"
4865 - fi
4866 -
4867 - exeinto /boot/modules
4868 - doexe "${S}/src/nvidia.ko"
4869 - fi
4870 -
4871 - # NVIDIA kernel <-> userspace driver config lib
4872 - donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
4873 -
4874 - # NVIDIA framebuffer capture library
4875 - donvidia ${NV_OBJ}/libnvidia-fbc.so ${NV_SOVER}
4876 -
4877 - # NVIDIA video encode/decode <-> CUDA
4878 - if use kernel_linux; then
4879 - donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
4880 - donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
4881 - fi
4882 -
4883 - if use X; then
4884 - # Xorg DDX driver
4885 - insinto /usr/$(get_libdir)/xorg/modules/drivers
4886 - doins ${NV_X11}/nvidia_drv.so
4887 -
4888 - # Xorg GLX driver
4889 - donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
4890 - /usr/$(get_libdir)/opengl/nvidia/extensions
4891 -
4892 - # Xorg nvidia.conf
4893 - if has_version '>=x11-base/xorg-server-1.16'; then
4894 - insinto /usr/share/X11/xorg.conf.d
4895 - newins {,50-}nvidia-drm-outputclass.conf
4896 - fi
4897 - fi
4898 -
4899 - # OpenCL ICD for NVIDIA
4900 - if use kernel_linux; then
4901 - insinto /etc/OpenCL/vendors
4902 - doins ${NV_OBJ}/nvidia.icd
4903 - fi
4904 -
4905 - # Documentation
4906 - dohtml ${NV_DOC}/html/*
4907 - if use kernel_FreeBSD; then
4908 - dodoc "${NV_DOC}/README"
4909 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
4910 - use tools && doman "${NV_MAN}/nvidia-settings.1"
4911 - else
4912 - # Docs
4913 - newdoc "${NV_DOC}/README.txt" README
4914 - dodoc "${NV_DOC}/NVIDIA_Changelog"
4915 - doman "${NV_MAN}/nvidia-smi.1.gz"
4916 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
4917 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
4918 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
4919 - fi
4920 -
4921 - # Helper Apps
4922 - exeinto /opt/bin/
4923 -
4924 - if use X; then
4925 - doexe ${NV_OBJ}/nvidia-xconfig
4926 - fi
4927 -
4928 - if use kernel_linux; then
4929 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
4930 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
4931 - doexe ${NV_OBJ}/nvidia-debugdump
4932 - doexe ${NV_OBJ}/nvidia-persistenced
4933 - doexe ${NV_OBJ}/nvidia-smi
4934 -
4935 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
4936 - doexe ${NV_OBJ}/nvidia-modprobe
4937 - fowners root:video /opt/bin/nvidia-modprobe
4938 - fperms 4710 /opt/bin/nvidia-modprobe
4939 - dosym /{opt,usr}/bin/nvidia-modprobe
4940 -
4941 - doman nvidia-cuda-mps-control.1.gz
4942 - doman nvidia-modprobe.1.gz
4943 - doman nvidia-persistenced.1.gz
4944 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
4945 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
4946 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
4947 - fi
4948 -
4949 - if use tools; then
4950 - doexe ${NV_OBJ}/nvidia-settings
4951 - use gtk2 && donvidia libnvidia-gtk2.so ${PV}
4952 - use gtk3 && donvidia libnvidia-gtk3.so ${PV}
4953 - insinto /usr/share/nvidia/
4954 - doins nvidia-application-profiles-${PV}-key-documentation
4955 - insinto /etc/nvidia
4956 - newins nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
4957 - fi
4958 -
4959 - dobin ${NV_OBJ}/nvidia-bug-report.sh
4960 -
4961 - # Desktop entries for nvidia-settings
4962 - if use tools; then
4963 - # There is no icon in the FreeBSD tarball.
4964 - use kernel_FreeBSD || newicon ${NV_OBJ}/nvidia-settings.png ${PN}-settings.png
4965 - domenu "${FILESDIR}"/${PN}-settings.desktop
4966 - exeinto /etc/X11/xinit/xinitrc.d
4967 - doexe "${FILESDIR}"/95-nvidia-settings
4968 - fi
4969 -
4970 - #doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
4971 -
4972 - if has_multilib_profile && use multilib; then
4973 - local OABI=${ABI}
4974 - for ABI in $(get_install_abis); do
4975 - src_install-libs
4976 - done
4977 - ABI=${OABI}
4978 - unset OABI
4979 - else
4980 - src_install-libs
4981 - fi
4982 -
4983 - is_final_abi || die "failed to iterate through all ABIs"
4984 -
4985 - readme.gentoo_create_doc
4986 -}
4987 -
4988 -src_install-libs() {
4989 - local inslibdir=$(get_libdir)
4990 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
4991 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
4992 - local libdir=${NV_OBJ}
4993 -
4994 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
4995 - libdir=${NV_OBJ}/32
4996 - fi
4997 -
4998 - if use X; then
4999 - NV_GLX_LIBRARIES=(
5000 - "libEGL.so 1 ${GL_ROOT}"
5001 - "libEGL_nvidia.so 0 ${GL_ROOT}"
5002 - "libGL.so ${NV_SOVER} ${GL_ROOT}"
5003 - "libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}"
5004 - "libGLdispatch.so 0 ${GL_ROOT}"
5005 - "libOpenCL.so 1.0.0 ${CL_ROOT}"
5006 - "libOpenGL.so 0 ${GL_ROOT}"
5007 - "libcuda.so ${NV_SOVER}"
5008 - "libnvcuvid.so ${NV_SOVER}"
5009 - "libnvidia-compiler.so ${NV_SOVER}"
5010 - "libnvidia-eglcore.so ${NV_SOVER}"
5011 - "libnvidia-encode.so ${NV_SOVER}"
5012 - "libnvidia-fbc.so ${NV_SOVER}"
5013 - "libnvidia-glcore.so ${NV_SOVER}"
5014 - "libnvidia-glsi.so ${NV_SOVER}"
5015 - "libnvidia-ifr.so ${NV_SOVER}"
5016 - "libnvidia-opencl.so ${NV_SOVER}"
5017 - "libvdpau.so ${NV_SOVER} ${GL_ROOT}"
5018 - "libvdpau_nvidia.so ${NV_SOVER}"
5019 - "libvdpau_trace.so ${NV_SOVER} ${GL_ROOT}"
5020 - )
5021 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
5022 - then
5023 - NV_GLX_LIBRARIES+=( "libnvidia-wfb.so ${NV_SOVER}" )
5024 - fi
5025 -
5026 - if use kernel_FreeBSD; then
5027 - NV_GLX_LIBRARIES+=( "libnvidia-tls.so ${NV_SOVER}" )
5028 - fi
5029 -
5030 - if use kernel_linux; then
5031 - NV_GLX_LIBRARIES+=(
5032 - "libnvidia-ml.so ${NV_SOVER}"
5033 - "tls/libnvidia-tls.so ${NV_SOVER}"
5034 - )
5035 - fi
5036 -
5037 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
5038 - donvidia ${libdir}/${NV_LIB}
5039 - done
5040 -
5041 - # GLES v2 library is special
5042 - insinto ${GL_ROOT}
5043 - doexe ${libdir}/libGLESv2.so.${PV}
5044 - dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
5045 - dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
5046 - fi
5047 -}
5048 -
5049 -pkg_preinst() {
5050 - if use kernel_linux; then
5051 - linux-mod_pkg_preinst
5052 -
5053 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
5054 - if [ -z "${videogroup}" ]; then
5055 - eerror "Failed to determine the video group gid"
5056 - die "Failed to determine the video group gid"
5057 - else
5058 - sed -i \
5059 - -e "s:PACKAGE:${PF}:g" \
5060 - -e "s:VIDEOGID:${videogroup}:" \
5061 - "${D}"/etc/modprobe.d/nvidia.conf || die
5062 - fi
5063 - fi
5064 -
5065 - # Clean the dynamic libGL stuff's home to ensure
5066 - # we dont have stale libs floating around
5067 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
5068 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
5069 - fi
5070 - # Make sure we nuke the old nvidia-glx's env.d file
5071 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
5072 - rm -f "${ROOT}"/etc/env.d/09nvidia
5073 - fi
5074 -}
5075 -
5076 -pkg_postinst() {
5077 - use kernel_linux && linux-mod_pkg_postinst
5078 -
5079 - # Switch to the nvidia implementation
5080 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
5081 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
5082 -
5083 - readme.gentoo_print_elog
5084 -
5085 - if ! use X; then
5086 - elog "You have elected to not install the X.org driver. Along with"
5087 - elog "this the OpenGL libraries and VDPAU libraries were not"
5088 - elog "installed. Additionally, once the driver is loaded your card"
5089 - elog "and fan will run at max speed which may not be desirable."
5090 - elog "Use the 'nvidia-smi' init script to have your card and fan"
5091 - elog "speed scale appropriately."
5092 - elog
5093 - fi
5094 - if ! use tools; then
5095 - elog "USE=tools controls whether the nvidia-settings application"
5096 - elog "is installed. If you would like to use it, enable that"
5097 - elog "flag and re-emerge this ebuild. Optionally you can install"
5098 - elog "media-video/nvidia-settings"
5099 - elog
5100 - fi
5101 -}
5102 -
5103 -pkg_prerm() {
5104 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
5105 -}
5106 -
5107 -pkg_postrm() {
5108 - use kernel_linux && linux-mod_pkg_postrm
5109 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
5110 -}
5111
5112 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-358.16-r5.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-358.16-r5.ebuild
5113 deleted file mode 100644
5114 index d01fb426381..00000000000
5115 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-358.16-r5.ebuild
5116 +++ /dev/null
5117 @@ -1,538 +0,0 @@
5118 -# Copyright 1999-2016 Gentoo Foundation
5119 -# Distributed under the terms of the GNU General Public License v2
5120 -
5121 -EAPI=5
5122 -
5123 -inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
5124 - portability toolchain-funcs unpacker user udev
5125 -
5126 -NV_URI="http://us.download.nvidia.com/XFree86/"
5127 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
5128 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
5129 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
5130 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
5131 -
5132 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
5133 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
5134 -SRC_URI="
5135 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
5136 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
5137 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
5138 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
5139 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
5140 -"
5141 -
5142 -LICENSE="GPL-2 NVIDIA-r2"
5143 -SLOT="0/${PV%.*}"
5144 -KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
5145 -RESTRICT="bindist mirror"
5146 -EMULTILIB_PKG="true"
5147 -
5148 -IUSE="acpi multilib kernel_FreeBSD kernel_linux +kms pax_kernel static-libs +tools gtk3 +X uvm"
5149 -REQUIRED_USE="
5150 - tools? ( X )
5151 - static-libs? ( tools )
5152 -"
5153 -
5154 -COMMON="
5155 - app-eselect/eselect-opencl
5156 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
5157 - tools? (
5158 - dev-libs/atk
5159 - dev-libs/glib:2
5160 - dev-libs/jansson
5161 - gtk3? ( x11-libs/gtk+:3 )
5162 - x11-libs/cairo
5163 - x11-libs/gdk-pixbuf[X]
5164 - x11-libs/gtk+:2
5165 - x11-libs/libX11
5166 - x11-libs/libXext
5167 - x11-libs/libXrandr
5168 - x11-libs/libXv
5169 - x11-libs/libXxf86vm
5170 - x11-libs/pango[X]
5171 - )
5172 - X? (
5173 - >=app-eselect/eselect-opengl-1.0.9
5174 - )
5175 -"
5176 -DEPEND="
5177 - ${COMMON}
5178 - kernel_linux? ( virtual/linux-sources )
5179 -"
5180 -RDEPEND="
5181 - ${COMMON}
5182 - acpi? ( sys-power/acpid )
5183 - tools? ( !media-video/nvidia-settings )
5184 - X? (
5185 - <x11-base/xorg-server-1.18.99:=
5186 - >=x11-libs/libvdpau-1.0
5187 - multilib? (
5188 - >=x11-libs/libX11-1.6.2[abi_x86_32]
5189 - >=x11-libs/libXext-1.3.2[abi_x86_32]
5190 - )
5191 - )
5192 -"
5193 -
5194 -QA_PREBUILT="opt/* usr/lib*"
5195 -
5196 -S=${WORKDIR}/
5197 -
5198 -pkg_pretend() {
5199 - if use amd64 && has_multilib_profile && \
5200 - [ "${DEFAULT_ABI}" != "amd64" ]; then
5201 - eerror "This ebuild doesn't currently support changing your default ABI"
5202 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
5203 - fi
5204 -
5205 - if use kernel_linux && kernel_is ge 4 4; then
5206 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
5207 - ewarn "which are limited to the following kernels:"
5208 - ewarn "<sys-kernel/gentoo-sources-4.4"
5209 - ewarn "<sys-kernel/vanilla-sources-4.4"
5210 - ewarn ""
5211 - ewarn "You are free to utilize epatch_user to provide whatever"
5212 - ewarn "support you feel is appropriate, but will not receive"
5213 - ewarn "support as a result of those changes."
5214 - ewarn ""
5215 - ewarn "Do not file a bug report about this."
5216 - ewarn ""
5217 - fi
5218 -
5219 - # Since Nvidia ships many different series of drivers, we need to give the user
5220 - # some kind of guidance as to what version they should install. This tries
5221 - # to point the user in the right direction but can't be perfect. check
5222 - # nvidia-driver.eclass
5223 - nvidia-driver-check-warning
5224 -
5225 - # Kernel features/options to check for
5226 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
5227 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
5228 -
5229 - # Now do the above checks
5230 - use kernel_linux && check_extra_config
5231 -}
5232 -
5233 -pkg_setup() {
5234 - # try to turn off distcc and ccache for people that have a problem with it
5235 - export DISTCC_DISABLE=1
5236 - export CCACHE_DISABLE=1
5237 -
5238 - if use kernel_linux; then
5239 - MODULE_NAMES="nvidia(video:${S}/kernel)"
5240 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
5241 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel)"
5242 -
5243 - # This needs to run after MODULE_NAMES (so that the eclass checks
5244 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
5245 - # is set (so that KV_DIR is populated).
5246 - linux-mod_pkg_setup
5247 -
5248 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
5249 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
5250 -
5251 - # linux-mod_src_compile calls set_arch_to_kernel, which
5252 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
5253 - # expects x86_64 or i386 and then converts it to x86
5254 - # later on in the build process
5255 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
5256 - fi
5257 -
5258 - # set variables to where files are in the package structure
5259 - if use kernel_FreeBSD; then
5260 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
5261 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
5262 - NV_DOC="${S}/doc"
5263 - NV_OBJ="${S}/obj"
5264 - NV_SRC="${S}/src"
5265 - NV_MAN="${S}/x11/man"
5266 - NV_X11="${S}/obj"
5267 - NV_SOVER=1
5268 - elif use kernel_linux; then
5269 - NV_DOC="${S}"
5270 - NV_OBJ="${S}"
5271 - NV_SRC="${S}/kernel"
5272 - NV_MAN="${S}"
5273 - NV_X11="${S}"
5274 - NV_SOVER=${PV}
5275 - else
5276 - die "Could not determine proper NVIDIA package"
5277 - fi
5278 -}
5279 -
5280 -src_prepare() {
5281 - # Please add a brief description for every added patch
5282 -
5283 - if use kernel_linux; then
5284 - if kernel_is lt 2 6 9; then
5285 - eerror "You must build this against 2.6.9 or higher kernels."
5286 - fi
5287 -
5288 - # If greater than 2.6.5 use M= instead of SUBDIR=
5289 -# convert_to_m "${NV_SRC}"/Makefile.kbuild
5290 - fi
5291 -
5292 - if use pax_kernel; then
5293 - ewarn "Using PAX patches is not supported. You will be asked to"
5294 - ewarn "use a standard kernel should you have issues. Should you"
5295 - ewarn "need support with these patches, contact the PaX team."
5296 - epatch "${FILESDIR}"/${PN}-355.06-pax.patch
5297 - fi
5298 -
5299 - # Allow user patches so they can support RC kernels and whatever else
5300 - epatch_user
5301 -}
5302 -
5303 -src_compile() {
5304 - # This is already the default on Linux, as there's no toplevel Makefile, but
5305 - # on FreeBSD there's one and triggers the kernel module build, as we install
5306 - # it by itself, pass this.
5307 -
5308 - cd "${NV_SRC}"
5309 - if use kernel_FreeBSD; then
5310 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
5311 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
5312 - elif use kernel_linux; then
5313 - MAKEOPTS=-j1
5314 - linux-mod_src_compile
5315 - fi
5316 -
5317 - if use tools; then
5318 - emake -C "${S}"/nvidia-settings-${PV}/src \
5319 - AR="$(tc-getAR)" \
5320 - CC="$(tc-getCC)" \
5321 - LIBDIR="$(get_libdir)" \
5322 - RANLIB="$(tc-getRANLIB)" \
5323 - build-xnvctrl
5324 -
5325 - emake -C "${S}"/nvidia-settings-${PV}/src \
5326 - CC="$(tc-getCC)" \
5327 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
5328 - LD="$(tc-getCC)" \
5329 - LIBDIR="$(get_libdir)" \
5330 - NVML_ENABLED=0 \
5331 - NV_USE_BUNDLED_LIBJANSSON=0 \
5332 - NV_VERBOSE=1 \
5333 - STRIP_CMD=true
5334 - fi
5335 -}
5336 -
5337 -# Install nvidia library:
5338 -# the first parameter is the library to install
5339 -# the second parameter is the provided soversion
5340 -# the third parameter is the target directory if it is not /usr/lib
5341 -donvidia() {
5342 - # Full path to library minus SOVER
5343 - MY_LIB="$1"
5344 -
5345 - # SOVER to use
5346 - MY_SOVER="$2"
5347 -
5348 - # Where to install
5349 - MY_DEST="$3"
5350 -
5351 - if [[ -z "${MY_DEST}" ]]; then
5352 - MY_DEST="/usr/$(get_libdir)"
5353 - action="dolib.so"
5354 - else
5355 - exeinto ${MY_DEST}
5356 - action="doexe"
5357 - fi
5358 -
5359 - # Get just the library name
5360 - libname=$(basename $1)
5361 -
5362 - # Install the library with the correct SOVER
5363 - ${action} ${MY_LIB}.${MY_SOVER} || \
5364 - die "failed to install ${libname}"
5365 -
5366 - # If SOVER wasn't 1, then we need to create a .1 symlink
5367 - if [[ "${MY_SOVER}" != "1" ]]; then
5368 - dosym ${libname}.${MY_SOVER} \
5369 - ${MY_DEST}/${libname}.1 || \
5370 - die "failed to create ${libname} symlink"
5371 - fi
5372 -
5373 - # Always create the symlink from the raw lib to the .1
5374 - dosym ${libname}.1 \
5375 - ${MY_DEST}/${libname} || \
5376 - die "failed to create ${libname} symlink"
5377 -}
5378 -
5379 -src_install() {
5380 - if use kernel_linux; then
5381 - linux-mod_src_install
5382 -
5383 - # Add the aliases
5384 - # This file is tweaked with the appropriate video group in
5385 - # pkg_preinst, see bug #491414
5386 - insinto /etc/modprobe.d
5387 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
5388 - doins "${FILESDIR}"/nvidia-rmmod.conf
5389 -
5390 - # Ensures that our device nodes are created when not using X
5391 - exeinto "$(get_udevdir)"
5392 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
5393 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
5394 - elif use kernel_FreeBSD; then
5395 - if use x86-fbsd; then
5396 - insinto /boot/modules
5397 - doins "${S}/src/nvidia.kld"
5398 - fi
5399 -
5400 - exeinto /boot/modules
5401 - doexe "${S}/src/nvidia.ko"
5402 - fi
5403 -
5404 - # NVIDIA kernel <-> userspace driver config lib
5405 - donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
5406 -
5407 - # NVIDIA framebuffer capture library
5408 - donvidia ${NV_OBJ}/libnvidia-fbc.so ${NV_SOVER}
5409 -
5410 - # NVIDIA video encode/decode <-> CUDA
5411 - if use kernel_linux; then
5412 - donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
5413 - donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
5414 - fi
5415 -
5416 - if use X; then
5417 - # Xorg DDX driver
5418 - insinto /usr/$(get_libdir)/xorg/modules/drivers
5419 - doins ${NV_X11}/nvidia_drv.so
5420 -
5421 - # Xorg GLX driver
5422 - donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
5423 - /usr/$(get_libdir)/opengl/nvidia/extensions
5424 -
5425 - # Xorg nvidia.conf
5426 - if has_version '>=x11-base/xorg-server-1.16'; then
5427 - insinto /usr/share/X11/xorg.conf.d
5428 - newins {,50-}nvidia-drm-outputclass.conf
5429 - fi
5430 - fi
5431 -
5432 - # OpenCL ICD for NVIDIA
5433 - if use kernel_linux; then
5434 - insinto /etc/OpenCL/vendors
5435 - doins ${NV_OBJ}/nvidia.icd
5436 - fi
5437 -
5438 - # Documentation
5439 - dohtml ${NV_DOC}/html/*
5440 - if use kernel_FreeBSD; then
5441 - dodoc "${NV_DOC}/README"
5442 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
5443 - use tools && doman "${NV_MAN}/nvidia-settings.1"
5444 - else
5445 - # Docs
5446 - newdoc "${NV_DOC}/README.txt" README
5447 - dodoc "${NV_DOC}/NVIDIA_Changelog"
5448 - doman "${NV_MAN}/nvidia-smi.1.gz"
5449 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
5450 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
5451 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
5452 - fi
5453 -
5454 - # Helper Apps
5455 - exeinto /opt/bin/
5456 -
5457 - if use X; then
5458 - doexe ${NV_OBJ}/nvidia-xconfig
5459 - fi
5460 -
5461 - if use kernel_linux; then
5462 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
5463 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
5464 - doexe ${NV_OBJ}/nvidia-debugdump
5465 - doexe ${NV_OBJ}/nvidia-persistenced
5466 - doexe ${NV_OBJ}/nvidia-smi
5467 -
5468 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
5469 - doexe ${NV_OBJ}/nvidia-modprobe
5470 - fowners root:video /opt/bin/nvidia-modprobe
5471 - fperms 4710 /opt/bin/nvidia-modprobe
5472 - dosym /{opt,usr}/bin/nvidia-modprobe
5473 -
5474 - doman nvidia-cuda-mps-control.1.gz
5475 - doman nvidia-modprobe.1.gz
5476 - doman nvidia-persistenced.1.gz
5477 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
5478 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
5479 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
5480 - fi
5481 -
5482 - if use tools; then
5483 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
5484 - DESTDIR="${D}" \
5485 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
5486 - LIBDIR="${D}/usr/$(get_libdir)" \
5487 - PREFIX=/usr \
5488 - NV_USE_BUNDLED_LIBJANSSON=0 \
5489 - install
5490 -
5491 - if use static-libs; then
5492 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
5493 -
5494 - insinto /usr/include/NVCtrl
5495 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
5496 - fi
5497 -
5498 - insinto /usr/share/nvidia/
5499 - doins nvidia-application-profiles-${PV}-key-documentation
5500 -
5501 - insinto /etc/nvidia
5502 - newins \
5503 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
5504 -
5505 - # There is no icon in the FreeBSD tarball.
5506 - use kernel_FreeBSD || \
5507 - doicon ${NV_OBJ}/nvidia-settings.png
5508 -
5509 - domenu "${FILESDIR}"/nvidia-settings.desktop
5510 -
5511 - exeinto /etc/X11/xinit/xinitrc.d
5512 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
5513 - fi
5514 -
5515 - dobin ${NV_OBJ}/nvidia-bug-report.sh
5516 -
5517 - if has_multilib_profile && use multilib; then
5518 - local OABI=${ABI}
5519 - for ABI in $(get_install_abis); do
5520 - src_install-libs
5521 - done
5522 - ABI=${OABI}
5523 - unset OABI
5524 - else
5525 - src_install-libs
5526 - fi
5527 -
5528 - is_final_abi || die "failed to iterate through all ABIs"
5529 -
5530 - readme.gentoo_create_doc
5531 -}
5532 -
5533 -src_install-libs() {
5534 - local inslibdir=$(get_libdir)
5535 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
5536 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
5537 - local libdir=${NV_OBJ}
5538 -
5539 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
5540 - libdir=${NV_OBJ}/32
5541 - fi
5542 -
5543 - if use X; then
5544 - NV_GLX_LIBRARIES=(
5545 - "libEGL.so 1 ${GL_ROOT}"
5546 - "libEGL_nvidia.so 0 ${GL_ROOT}"
5547 - "libGL.so ${NV_SOVER} ${GL_ROOT}"
5548 - "libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}"
5549 - "libGLdispatch.so 0 ${GL_ROOT}"
5550 - "libOpenCL.so 1.0.0 ${CL_ROOT}"
5551 - "libOpenGL.so 0 ${GL_ROOT}"
5552 - "libcuda.so ${NV_SOVER}"
5553 - "libnvcuvid.so ${NV_SOVER}"
5554 - "libnvidia-compiler.so ${NV_SOVER}"
5555 - "libnvidia-eglcore.so ${NV_SOVER}"
5556 - "libnvidia-encode.so ${NV_SOVER}"
5557 - "libnvidia-fbc.so ${NV_SOVER}"
5558 - "libnvidia-glcore.so ${NV_SOVER}"
5559 - "libnvidia-glsi.so ${NV_SOVER}"
5560 - "libnvidia-ifr.so ${NV_SOVER}"
5561 - "libnvidia-opencl.so ${NV_SOVER}"
5562 - "libvdpau.so ${NV_SOVER} ${GL_ROOT}"
5563 - "libvdpau_nvidia.so ${NV_SOVER}"
5564 - "libvdpau_trace.so ${NV_SOVER} ${GL_ROOT}"
5565 - )
5566 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
5567 - then
5568 - NV_GLX_LIBRARIES+=( "libnvidia-wfb.so ${NV_SOVER}" )
5569 - fi
5570 -
5571 - if use kernel_FreeBSD; then
5572 - NV_GLX_LIBRARIES+=( "libnvidia-tls.so ${NV_SOVER}" )
5573 - fi
5574 -
5575 - if use kernel_linux; then
5576 - NV_GLX_LIBRARIES+=(
5577 - "libnvidia-ml.so ${NV_SOVER}"
5578 - "tls/libnvidia-tls.so ${NV_SOVER}"
5579 - )
5580 - fi
5581 -
5582 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
5583 - donvidia ${libdir}/${NV_LIB}
5584 - done
5585 -
5586 - # GLES v2 library is special
5587 - insinto ${GL_ROOT}
5588 - doexe ${libdir}/libGLESv2.so.${PV}
5589 - dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
5590 - dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
5591 - fi
5592 -}
5593 -
5594 -pkg_preinst() {
5595 - if use kernel_linux; then
5596 - linux-mod_pkg_preinst
5597 -
5598 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
5599 - if [ -z "${videogroup}" ]; then
5600 - eerror "Failed to determine the video group gid"
5601 - die "Failed to determine the video group gid"
5602 - else
5603 - sed -i \
5604 - -e "s:PACKAGE:${PF}:g" \
5605 - -e "s:VIDEOGID:${videogroup}:" \
5606 - "${D}"/etc/modprobe.d/nvidia.conf || die
5607 - fi
5608 - fi
5609 -
5610 - # Clean the dynamic libGL stuff's home to ensure
5611 - # we dont have stale libs floating around
5612 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
5613 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
5614 - fi
5615 - # Make sure we nuke the old nvidia-glx's env.d file
5616 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
5617 - rm -f "${ROOT}"/etc/env.d/09nvidia
5618 - fi
5619 -}
5620 -
5621 -pkg_postinst() {
5622 - use kernel_linux && linux-mod_pkg_postinst
5623 -
5624 - # Switch to the nvidia implementation
5625 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
5626 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
5627 -
5628 - readme.gentoo_print_elog
5629 -
5630 - if ! use X; then
5631 - elog "You have elected to not install the X.org driver. Along with"
5632 - elog "this the OpenGL libraries and VDPAU libraries were not"
5633 - elog "installed. Additionally, once the driver is loaded your card"
5634 - elog "and fan will run at max speed which may not be desirable."
5635 - elog "Use the 'nvidia-smi' init script to have your card and fan"
5636 - elog "speed scale appropriately."
5637 - elog
5638 - fi
5639 - if ! use tools; then
5640 - elog "USE=tools controls whether the nvidia-settings application"
5641 - elog "is installed. If you would like to use it, enable that"
5642 - elog "flag and re-emerge this ebuild. Optionally you can install"
5643 - elog "media-video/nvidia-settings"
5644 - elog
5645 - fi
5646 -}
5647 -
5648 -pkg_prerm() {
5649 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
5650 -}
5651 -
5652 -pkg_postrm() {
5653 - use kernel_linux && linux-mod_pkg_postrm
5654 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
5655 -}
5656
5657 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-358.16-r6.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-358.16-r6.ebuild
5658 deleted file mode 100644
5659 index de83a03dd35..00000000000
5660 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-358.16-r6.ebuild
5661 +++ /dev/null
5662 @@ -1,539 +0,0 @@
5663 -# Copyright 1999-2017 Gentoo Foundation
5664 -# Distributed under the terms of the GNU General Public License v2
5665 -
5666 -EAPI=5
5667 -
5668 -inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
5669 - portability toolchain-funcs unpacker user udev
5670 -
5671 -NV_URI="http://us.download.nvidia.com/XFree86/"
5672 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
5673 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
5674 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
5675 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
5676 -
5677 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
5678 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
5679 -SRC_URI="
5680 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
5681 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
5682 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
5683 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
5684 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
5685 -"
5686 -
5687 -LICENSE="GPL-2 NVIDIA-r2"
5688 -SLOT="0/${PV%.*}"
5689 -KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
5690 -RESTRICT="bindist mirror"
5691 -EMULTILIB_PKG="true"
5692 -
5693 -IUSE="acpi multilib kernel_FreeBSD kernel_linux +kms pax_kernel static-libs +tools gtk3 +X uvm"
5694 -REQUIRED_USE="
5695 - tools? ( X )
5696 - static-libs? ( tools )
5697 -"
5698 -
5699 -COMMON="
5700 - app-eselect/eselect-opencl
5701 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
5702 - tools? (
5703 - dev-libs/atk
5704 - dev-libs/glib:2
5705 - dev-libs/jansson
5706 - gtk3? (
5707 - x11-libs/gtk+:3
5708 - )
5709 - x11-libs/cairo
5710 - x11-libs/gdk-pixbuf[X]
5711 - x11-libs/gtk+:2
5712 - x11-libs/libX11
5713 - x11-libs/libXext
5714 - x11-libs/libXrandr
5715 - x11-libs/libXv
5716 - x11-libs/libXxf86vm
5717 - x11-libs/pango[X]
5718 - )
5719 - X? (
5720 - >=app-eselect/eselect-opengl-1.0.9
5721 - )
5722 -"
5723 -DEPEND="
5724 - ${COMMON}
5725 - kernel_linux? ( virtual/linux-sources )
5726 -"
5727 -RDEPEND="
5728 - ${COMMON}
5729 - acpi? ( sys-power/acpid )
5730 - tools? ( !media-video/nvidia-settings )
5731 - X? (
5732 - <x11-base/xorg-server-1.18.99:=
5733 - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
5734 - sys-libs/zlib[${MULTILIB_USEDEP}]
5735 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
5736 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
5737 - )
5738 -"
5739 -
5740 -QA_PREBUILT="opt/* usr/lib*"
5741 -
5742 -S=${WORKDIR}/
5743 -
5744 -pkg_pretend() {
5745 - if use amd64 && has_multilib_profile && \
5746 - [ "${DEFAULT_ABI}" != "amd64" ]; then
5747 - eerror "This ebuild doesn't currently support changing your default ABI"
5748 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
5749 - fi
5750 -
5751 - if use kernel_linux && kernel_is ge 4 4; then
5752 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
5753 - ewarn "which are limited to the following kernels:"
5754 - ewarn "<sys-kernel/gentoo-sources-4.4"
5755 - ewarn "<sys-kernel/vanilla-sources-4.4"
5756 - ewarn ""
5757 - ewarn "You are free to utilize epatch_user to provide whatever"
5758 - ewarn "support you feel is appropriate, but will not receive"
5759 - ewarn "support as a result of those changes."
5760 - ewarn ""
5761 - ewarn "Do not file a bug report about this."
5762 - ewarn ""
5763 - fi
5764 -
5765 - # Since Nvidia ships many different series of drivers, we need to give the user
5766 - # some kind of guidance as to what version they should install. This tries
5767 - # to point the user in the right direction but can't be perfect. check
5768 - # nvidia-driver.eclass
5769 - nvidia-driver-check-warning
5770 -
5771 - # Kernel features/options to check for
5772 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
5773 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
5774 -
5775 - # Now do the above checks
5776 - use kernel_linux && check_extra_config
5777 -}
5778 -
5779 -pkg_setup() {
5780 - # try to turn off distcc and ccache for people that have a problem with it
5781 - export DISTCC_DISABLE=1
5782 - export CCACHE_DISABLE=1
5783 -
5784 - if use kernel_linux; then
5785 - MODULE_NAMES="nvidia(video:${S}/kernel)"
5786 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
5787 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel)"
5788 -
5789 - # This needs to run after MODULE_NAMES (so that the eclass checks
5790 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
5791 - # is set (so that KV_DIR is populated).
5792 - linux-mod_pkg_setup
5793 -
5794 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
5795 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
5796 -
5797 - # linux-mod_src_compile calls set_arch_to_kernel, which
5798 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
5799 - # expects x86_64 or i386 and then converts it to x86
5800 - # later on in the build process
5801 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
5802 - fi
5803 -
5804 - # set variables to where files are in the package structure
5805 - if use kernel_FreeBSD; then
5806 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
5807 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
5808 - NV_DOC="${S}/doc"
5809 - NV_OBJ="${S}/obj"
5810 - NV_SRC="${S}/src"
5811 - NV_MAN="${S}/x11/man"
5812 - NV_X11="${S}/obj"
5813 - NV_SOVER=1
5814 - elif use kernel_linux; then
5815 - NV_DOC="${S}"
5816 - NV_OBJ="${S}"
5817 - NV_SRC="${S}/kernel"
5818 - NV_MAN="${S}"
5819 - NV_X11="${S}"
5820 - NV_SOVER=${PV}
5821 - else
5822 - die "Could not determine proper NVIDIA package"
5823 - fi
5824 -}
5825 -
5826 -src_prepare() {
5827 - # Please add a brief description for every added patch
5828 -
5829 - if use kernel_linux; then
5830 - if kernel_is lt 2 6 9; then
5831 - eerror "You must build this against 2.6.9 or higher kernels."
5832 - fi
5833 -
5834 - # If greater than 2.6.5 use M= instead of SUBDIR=
5835 -# convert_to_m "${NV_SRC}"/Makefile.kbuild
5836 - fi
5837 -
5838 - if use pax_kernel; then
5839 - ewarn "Using PAX patches is not supported. You will be asked to"
5840 - ewarn "use a standard kernel should you have issues. Should you"
5841 - ewarn "need support with these patches, contact the PaX team."
5842 - epatch "${FILESDIR}"/${PN}-355.06-pax.patch
5843 - fi
5844 -
5845 - # Allow user patches so they can support RC kernels and whatever else
5846 - epatch_user
5847 -}
5848 -
5849 -src_compile() {
5850 - # This is already the default on Linux, as there's no toplevel Makefile, but
5851 - # on FreeBSD there's one and triggers the kernel module build, as we install
5852 - # it by itself, pass this.
5853 -
5854 - cd "${NV_SRC}"
5855 - if use kernel_FreeBSD; then
5856 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
5857 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
5858 - elif use kernel_linux; then
5859 - MAKEOPTS=-j1
5860 - linux-mod_src_compile
5861 - fi
5862 -
5863 - if use tools; then
5864 - emake -C "${S}"/nvidia-settings-${PV}/src \
5865 - AR="$(tc-getAR)" \
5866 - CC="$(tc-getCC)" \
5867 - LIBDIR="$(get_libdir)" \
5868 - RANLIB="$(tc-getRANLIB)" \
5869 - build-xnvctrl
5870 -
5871 - emake -C "${S}"/nvidia-settings-${PV}/src \
5872 - CC="$(tc-getCC)" \
5873 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
5874 - LD="$(tc-getCC)" \
5875 - LIBDIR="$(get_libdir)" \
5876 - NVML_ENABLED=0 \
5877 - NV_USE_BUNDLED_LIBJANSSON=0 \
5878 - NV_VERBOSE=1 \
5879 - STRIP_CMD=true
5880 - fi
5881 -}
5882 -
5883 -# Install nvidia library:
5884 -# the first parameter is the library to install
5885 -# the second parameter is the provided soversion
5886 -# the third parameter is the target directory if it is not /usr/lib
5887 -donvidia() {
5888 - # Full path to library minus SOVER
5889 - MY_LIB="$1"
5890 -
5891 - # SOVER to use
5892 - MY_SOVER="$2"
5893 -
5894 - # Where to install
5895 - MY_DEST="$3"
5896 -
5897 - if [[ -z "${MY_DEST}" ]]; then
5898 - MY_DEST="/usr/$(get_libdir)"
5899 - action="dolib.so"
5900 - else
5901 - exeinto ${MY_DEST}
5902 - action="doexe"
5903 - fi
5904 -
5905 - # Get just the library name
5906 - libname=$(basename $1)
5907 -
5908 - # Install the library with the correct SOVER
5909 - ${action} ${MY_LIB}.${MY_SOVER} || \
5910 - die "failed to install ${libname}"
5911 -
5912 - # If SOVER wasn't 1, then we need to create a .1 symlink
5913 - if [[ "${MY_SOVER}" != "1" ]]; then
5914 - dosym ${libname}.${MY_SOVER} \
5915 - ${MY_DEST}/${libname}.1 || \
5916 - die "failed to create ${libname} symlink"
5917 - fi
5918 -
5919 - # Always create the symlink from the raw lib to the .1
5920 - dosym ${libname}.1 \
5921 - ${MY_DEST}/${libname} || \
5922 - die "failed to create ${libname} symlink"
5923 -}
5924 -
5925 -src_install() {
5926 - if use kernel_linux; then
5927 - linux-mod_src_install
5928 -
5929 - # Add the aliases
5930 - # This file is tweaked with the appropriate video group in
5931 - # pkg_preinst, see bug #491414
5932 - insinto /etc/modprobe.d
5933 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
5934 - doins "${FILESDIR}"/nvidia-rmmod.conf
5935 -
5936 - # Ensures that our device nodes are created when not using X
5937 - exeinto "$(get_udevdir)"
5938 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
5939 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
5940 - elif use kernel_FreeBSD; then
5941 - if use x86-fbsd; then
5942 - insinto /boot/modules
5943 - doins "${S}/src/nvidia.kld"
5944 - fi
5945 -
5946 - exeinto /boot/modules
5947 - doexe "${S}/src/nvidia.ko"
5948 - fi
5949 -
5950 - # NVIDIA kernel <-> userspace driver config lib
5951 - donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
5952 -
5953 - # NVIDIA framebuffer capture library
5954 - donvidia ${NV_OBJ}/libnvidia-fbc.so ${NV_SOVER}
5955 -
5956 - # NVIDIA video encode/decode <-> CUDA
5957 - if use kernel_linux; then
5958 - donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
5959 - donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
5960 - fi
5961 -
5962 - if use X; then
5963 - # Xorg DDX driver
5964 - insinto /usr/$(get_libdir)/xorg/modules/drivers
5965 - doins ${NV_X11}/nvidia_drv.so
5966 -
5967 - # Xorg GLX driver
5968 - donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
5969 - /usr/$(get_libdir)/opengl/nvidia/extensions
5970 -
5971 - # Xorg nvidia.conf
5972 - if has_version '>=x11-base/xorg-server-1.16'; then
5973 - insinto /usr/share/X11/xorg.conf.d
5974 - newins {,50-}nvidia-drm-outputclass.conf
5975 - fi
5976 - fi
5977 -
5978 - # OpenCL ICD for NVIDIA
5979 - if use kernel_linux; then
5980 - insinto /etc/OpenCL/vendors
5981 - doins ${NV_OBJ}/nvidia.icd
5982 - fi
5983 -
5984 - # Documentation
5985 - dohtml ${NV_DOC}/html/*
5986 - if use kernel_FreeBSD; then
5987 - dodoc "${NV_DOC}/README"
5988 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
5989 - use tools && doman "${NV_MAN}/nvidia-settings.1"
5990 - else
5991 - # Docs
5992 - newdoc "${NV_DOC}/README.txt" README
5993 - dodoc "${NV_DOC}/NVIDIA_Changelog"
5994 - doman "${NV_MAN}/nvidia-smi.1.gz"
5995 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
5996 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
5997 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
5998 - fi
5999 -
6000 - # Helper Apps
6001 - exeinto /opt/bin/
6002 -
6003 - if use X; then
6004 - doexe ${NV_OBJ}/nvidia-xconfig
6005 - fi
6006 -
6007 - if use kernel_linux; then
6008 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
6009 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
6010 - doexe ${NV_OBJ}/nvidia-debugdump
6011 - doexe ${NV_OBJ}/nvidia-persistenced
6012 - doexe ${NV_OBJ}/nvidia-smi
6013 -
6014 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
6015 - doexe ${NV_OBJ}/nvidia-modprobe
6016 - fowners root:video /opt/bin/nvidia-modprobe
6017 - fperms 4710 /opt/bin/nvidia-modprobe
6018 - dosym /{opt,usr}/bin/nvidia-modprobe
6019 -
6020 - doman nvidia-cuda-mps-control.1.gz
6021 - doman nvidia-modprobe.1.gz
6022 - doman nvidia-persistenced.1.gz
6023 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
6024 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
6025 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
6026 - fi
6027 -
6028 - if use tools; then
6029 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
6030 - DESTDIR="${D}" \
6031 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
6032 - LIBDIR="${D}/usr/$(get_libdir)" \
6033 - PREFIX=/usr \
6034 - NV_USE_BUNDLED_LIBJANSSON=0 \
6035 - install
6036 -
6037 - if use static-libs; then
6038 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
6039 -
6040 - insinto /usr/include/NVCtrl
6041 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
6042 - fi
6043 -
6044 - insinto /usr/share/nvidia/
6045 - doins nvidia-application-profiles-${PV}-key-documentation
6046 -
6047 - insinto /etc/nvidia
6048 - newins \
6049 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
6050 -
6051 - # There is no icon in the FreeBSD tarball.
6052 - use kernel_FreeBSD || \
6053 - doicon ${NV_OBJ}/nvidia-settings.png
6054 -
6055 - domenu "${FILESDIR}"/nvidia-settings.desktop
6056 -
6057 - exeinto /etc/X11/xinit/xinitrc.d
6058 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
6059 - fi
6060 -
6061 - dobin ${NV_OBJ}/nvidia-bug-report.sh
6062 -
6063 - if has_multilib_profile && use multilib; then
6064 - local OABI=${ABI}
6065 - for ABI in $(get_install_abis); do
6066 - src_install-libs
6067 - done
6068 - ABI=${OABI}
6069 - unset OABI
6070 - else
6071 - src_install-libs
6072 - fi
6073 -
6074 - is_final_abi || die "failed to iterate through all ABIs"
6075 -
6076 - readme.gentoo_create_doc
6077 -}
6078 -
6079 -src_install-libs() {
6080 - local inslibdir=$(get_libdir)
6081 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
6082 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
6083 - local libdir=${NV_OBJ}
6084 -
6085 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
6086 - libdir=${NV_OBJ}/32
6087 - fi
6088 -
6089 - if use X; then
6090 - NV_GLX_LIBRARIES=(
6091 - "libEGL.so 1 ${GL_ROOT}"
6092 - "libEGL_nvidia.so 0 ${GL_ROOT}"
6093 - "libGL.so ${NV_SOVER} ${GL_ROOT}"
6094 - "libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}"
6095 - "libGLdispatch.so 0 ${GL_ROOT}"
6096 - "libOpenCL.so 1.0.0 ${CL_ROOT}"
6097 - "libOpenGL.so 0 ${GL_ROOT}"
6098 - "libcuda.so ${NV_SOVER}"
6099 - "libnvcuvid.so ${NV_SOVER}"
6100 - "libnvidia-compiler.so ${NV_SOVER}"
6101 - "libnvidia-eglcore.so ${NV_SOVER}"
6102 - "libnvidia-encode.so ${NV_SOVER}"
6103 - "libnvidia-fbc.so ${NV_SOVER}"
6104 - "libnvidia-glcore.so ${NV_SOVER}"
6105 - "libnvidia-glsi.so ${NV_SOVER}"
6106 - "libnvidia-ifr.so ${NV_SOVER}"
6107 - "libnvidia-opencl.so ${NV_SOVER}"
6108 - "libvdpau.so ${NV_SOVER} ${GL_ROOT}"
6109 - "libvdpau_nvidia.so ${NV_SOVER}"
6110 - "libvdpau_trace.so ${NV_SOVER} ${GL_ROOT}"
6111 - )
6112 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
6113 - then
6114 - NV_GLX_LIBRARIES+=( "libnvidia-wfb.so ${NV_SOVER}" )
6115 - fi
6116 -
6117 - if use kernel_FreeBSD; then
6118 - NV_GLX_LIBRARIES+=( "libnvidia-tls.so ${NV_SOVER}" )
6119 - fi
6120 -
6121 - if use kernel_linux; then
6122 - NV_GLX_LIBRARIES+=(
6123 - "libnvidia-ml.so ${NV_SOVER}"
6124 - "tls/libnvidia-tls.so ${NV_SOVER}"
6125 - )
6126 - fi
6127 -
6128 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
6129 - donvidia ${libdir}/${NV_LIB}
6130 - done
6131 -
6132 - # GLES v2 library is special
6133 - insinto ${GL_ROOT}
6134 - doexe ${libdir}/libGLESv2.so.${PV}
6135 - dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
6136 - dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
6137 - fi
6138 -}
6139 -
6140 -pkg_preinst() {
6141 - if use kernel_linux; then
6142 - linux-mod_pkg_preinst
6143 -
6144 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
6145 - if [ -z "${videogroup}" ]; then
6146 - eerror "Failed to determine the video group gid"
6147 - die "Failed to determine the video group gid"
6148 - else
6149 - sed -i \
6150 - -e "s:PACKAGE:${PF}:g" \
6151 - -e "s:VIDEOGID:${videogroup}:" \
6152 - "${D}"/etc/modprobe.d/nvidia.conf || die
6153 - fi
6154 - fi
6155 -
6156 - # Clean the dynamic libGL stuff's home to ensure
6157 - # we dont have stale libs floating around
6158 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
6159 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
6160 - fi
6161 - # Make sure we nuke the old nvidia-glx's env.d file
6162 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
6163 - rm -f "${ROOT}"/etc/env.d/09nvidia
6164 - fi
6165 -}
6166 -
6167 -pkg_postinst() {
6168 - use kernel_linux && linux-mod_pkg_postinst
6169 -
6170 - # Switch to the nvidia implementation
6171 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
6172 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
6173 -
6174 - readme.gentoo_print_elog
6175 -
6176 - if ! use X; then
6177 - elog "You have elected to not install the X.org driver. Along with"
6178 - elog "this the OpenGL libraries and VDPAU libraries were not"
6179 - elog "installed. Additionally, once the driver is loaded your card"
6180 - elog "and fan will run at max speed which may not be desirable."
6181 - elog "Use the 'nvidia-smi' init script to have your card and fan"
6182 - elog "speed scale appropriately."
6183 - elog
6184 - fi
6185 - if ! use tools; then
6186 - elog "USE=tools controls whether the nvidia-settings application"
6187 - elog "is installed. If you would like to use it, enable that"
6188 - elog "flag and re-emerge this ebuild. Optionally you can install"
6189 - elog "media-video/nvidia-settings"
6190 - elog
6191 - fi
6192 -}
6193 -
6194 -pkg_prerm() {
6195 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
6196 -}
6197 -
6198 -pkg_postrm() {
6199 - use kernel_linux && linux-mod_pkg_postrm
6200 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
6201 -}
6202
6203 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-361.42-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-361.42-r1.ebuild
6204 deleted file mode 100644
6205 index 0dba6a68af0..00000000000
6206 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-361.42-r1.ebuild
6207 +++ /dev/null
6208 @@ -1,529 +0,0 @@
6209 -# Copyright 1999-2017 Gentoo Foundation
6210 -# Distributed under the terms of the GNU General Public License v2
6211 -
6212 -EAPI=6
6213 -
6214 -inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
6215 - portability toolchain-funcs unpacker user udev
6216 -
6217 -NV_URI="http://us.download.nvidia.com/XFree86/"
6218 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
6219 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
6220 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
6221 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
6222 -
6223 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
6224 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
6225 -SRC_URI="
6226 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
6227 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
6228 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
6229 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
6230 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
6231 -"
6232 -
6233 -LICENSE="GPL-2 NVIDIA-r2"
6234 -SLOT="0/${PV%.*}"
6235 -KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
6236 -RESTRICT="bindist mirror"
6237 -EMULTILIB_PKG="true"
6238 -
6239 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm +X"
6240 -REQUIRED_USE="
6241 - tools? ( X )
6242 - static-libs? ( tools )
6243 -"
6244 -
6245 -COMMON="
6246 - app-eselect/eselect-opencl
6247 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
6248 - tools? (
6249 - dev-libs/atk
6250 - dev-libs/glib:2
6251 - dev-libs/jansson
6252 - gtk3? (
6253 - x11-libs/gtk+:3
6254 - )
6255 - x11-libs/cairo
6256 - x11-libs/gdk-pixbuf[X]
6257 - x11-libs/gtk+:2
6258 - x11-libs/libX11
6259 - x11-libs/libXext
6260 - x11-libs/libXrandr
6261 - x11-libs/libXv
6262 - x11-libs/libXxf86vm
6263 - x11-libs/pango[X]
6264 - )
6265 - X? (
6266 - >=app-eselect/eselect-opengl-1.0.9
6267 - app-misc/pax-utils
6268 - )
6269 -"
6270 -DEPEND="
6271 - ${COMMON}
6272 - kernel_linux? ( virtual/linux-sources )
6273 -"
6274 -RDEPEND="
6275 - ${COMMON}
6276 - acpi? ( sys-power/acpid )
6277 - tools? ( !media-video/nvidia-settings )
6278 - X? (
6279 - <x11-base/xorg-server-1.18.99:=
6280 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
6281 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
6282 - >=x11-libs/libvdpau-1.0
6283 - sys-libs/zlib[${MULTILIB_USEDEP}]
6284 - )
6285 -"
6286 -
6287 -QA_PREBUILT="opt/* usr/lib*"
6288 -
6289 -S=${WORKDIR}/
6290 -
6291 -pkg_pretend() {
6292 - if use amd64 && has_multilib_profile && \
6293 - [ "${DEFAULT_ABI}" != "amd64" ]; then
6294 - eerror "This ebuild doesn't currently support changing your default ABI"
6295 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
6296 - fi
6297 -
6298 - if use kernel_linux && kernel_is ge 4 5; then
6299 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
6300 - ewarn "which are limited to the following kernels:"
6301 - ewarn "<sys-kernel/gentoo-sources-4.5"
6302 - ewarn "<sys-kernel/vanilla-sources-4.5"
6303 - ewarn ""
6304 - ewarn "You are free to utilize eapply_user to provide whatever"
6305 - ewarn "support you feel is appropriate, but will not receive"
6306 - ewarn "support as a result of those changes."
6307 - ewarn ""
6308 - ewarn "Do not file a bug report about this."
6309 - ewarn ""
6310 - fi
6311 -
6312 - # Since Nvidia ships many different series of drivers, we need to give the user
6313 - # some kind of guidance as to what version they should install. This tries
6314 - # to point the user in the right direction but can't be perfect. check
6315 - # nvidia-driver.eclass
6316 - nvidia-driver-check-warning
6317 -
6318 - # Kernel features/options to check for
6319 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
6320 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
6321 -
6322 - # Now do the above checks
6323 - use kernel_linux && check_extra_config
6324 -}
6325 -
6326 -pkg_setup() {
6327 - # try to turn off distcc and ccache for people that have a problem with it
6328 - export DISTCC_DISABLE=1
6329 - export CCACHE_DISABLE=1
6330 -
6331 - if use driver && use kernel_linux; then
6332 - MODULE_NAMES="nvidia(video:${S}/kernel)"
6333 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
6334 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel)"
6335 -
6336 - # This needs to run after MODULE_NAMES (so that the eclass checks
6337 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
6338 - # is set (so that KV_DIR is populated).
6339 - linux-mod_pkg_setup
6340 -
6341 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
6342 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
6343 -
6344 - # linux-mod_src_compile calls set_arch_to_kernel, which
6345 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
6346 - # expects x86_64 or i386 and then converts it to x86
6347 - # later on in the build process
6348 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
6349 - fi
6350 -
6351 - if use kernel_linux && kernel_is lt 2 6 9; then
6352 - eerror "You must build this against 2.6.9 or higher kernels."
6353 - fi
6354 -
6355 - # set variables to where files are in the package structure
6356 - if use kernel_FreeBSD; then
6357 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
6358 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
6359 - NV_DOC="${S}/doc"
6360 - NV_OBJ="${S}/obj"
6361 - NV_SRC="${S}/src"
6362 - NV_MAN="${S}/x11/man"
6363 - NV_X11="${S}/obj"
6364 - NV_SOVER=1
6365 - elif use kernel_linux; then
6366 - NV_DOC="${S}"
6367 - NV_OBJ="${S}"
6368 - NV_SRC="${S}/kernel"
6369 - NV_MAN="${S}"
6370 - NV_X11="${S}"
6371 - NV_SOVER=${PV}
6372 - else
6373 - die "Could not determine proper NVIDIA package"
6374 - fi
6375 -}
6376 -
6377 -src_prepare() {
6378 - if use pax_kernel; then
6379 - ewarn "Using PAX patches is not supported. You will be asked to"
6380 - ewarn "use a standard kernel should you have issues. Should you"
6381 - ewarn "need support with these patches, contact the PaX team."
6382 - eapply "${FILESDIR}"/${PN}-361.28-pax.patch
6383 - fi
6384 -
6385 - # Allow user patches so they can support RC kernels and whatever else
6386 - eapply_user
6387 -}
6388 -
6389 -src_compile() {
6390 - # This is already the default on Linux, as there's no toplevel Makefile, but
6391 - # on FreeBSD there's one and triggers the kernel module build, as we install
6392 - # it by itself, pass this.
6393 -
6394 - cd "${NV_SRC}"
6395 - if use kernel_FreeBSD; then
6396 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
6397 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
6398 - elif use driver && use kernel_linux; then
6399 - MAKEOPTS=-j1 linux-mod_src_compile
6400 - fi
6401 -
6402 - if use tools; then
6403 - emake -C "${S}"/nvidia-settings-${PV}/src \
6404 - AR="$(tc-getAR)" \
6405 - CC="$(tc-getCC)" \
6406 - LIBDIR="$(get_libdir)" \
6407 - RANLIB="$(tc-getRANLIB)" \
6408 - build-xnvctrl
6409 -
6410 - emake -C "${S}"/nvidia-settings-${PV}/src \
6411 - CC="$(tc-getCC)" \
6412 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
6413 - LD="$(tc-getCC)" \
6414 - LIBDIR="$(get_libdir)" \
6415 - NVML_ENABLED=0 \
6416 - NV_USE_BUNDLED_LIBJANSSON=0 \
6417 - NV_VERBOSE=1 \
6418 - STRIP_CMD=true
6419 - fi
6420 -}
6421 -
6422 -# Install nvidia library:
6423 -# the first parameter is the library to install
6424 -# the second parameter is the provided soversion
6425 -# the third parameter is the target directory if it is not /usr/lib
6426 -donvidia() {
6427 - # Full path to library
6428 - nv_LIB="${1}"
6429 -
6430 - # SOVER to use
6431 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
6432 -
6433 - # Where to install
6434 - nv_DEST="${2}"
6435 -
6436 - # Get just the library name
6437 - nv_LIBNAME=$(basename "${nv_LIB}")
6438 -
6439 - if [[ "${nv_DEST}" ]]; then
6440 - exeinto ${nv_DEST}
6441 - action="doexe"
6442 - else
6443 - nv_DEST="/usr/$(get_libdir)"
6444 - action="dolib.so"
6445 - fi
6446 -
6447 - # Install the library
6448 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
6449 -
6450 - # If the library has a SONAME and SONAME does not match the library name,
6451 - # then we need to create a symlink
6452 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
6453 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
6454 - || die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
6455 - fi
6456 -
6457 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
6458 - || die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
6459 -}
6460 -
6461 -src_install() {
6462 - if use driver && use kernel_linux; then
6463 - linux-mod_src_install
6464 -
6465 - # Add the aliases
6466 - # This file is tweaked with the appropriate video group in
6467 - # pkg_preinst, see bug #491414
6468 - insinto /etc/modprobe.d
6469 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
6470 - doins "${FILESDIR}"/nvidia-rmmod.conf
6471 -
6472 - # Ensures that our device nodes are created when not using X
6473 - exeinto "$(get_udevdir)"
6474 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
6475 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
6476 - elif use kernel_FreeBSD; then
6477 - if use x86-fbsd; then
6478 - insinto /boot/modules
6479 - doins "${S}/src/nvidia.kld"
6480 - fi
6481 -
6482 - exeinto /boot/modules
6483 - doexe "${S}/src/nvidia.ko"
6484 - fi
6485 -
6486 - # NVIDIA kernel <-> userspace driver config lib
6487 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
6488 -
6489 - # NVIDIA framebuffer capture library
6490 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
6491 -
6492 - # NVIDIA video encode/decode <-> CUDA
6493 - if use kernel_linux; then
6494 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
6495 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
6496 - fi
6497 -
6498 - if use X; then
6499 - # Xorg DDX driver
6500 - insinto /usr/$(get_libdir)/xorg/modules/drivers
6501 - doins ${NV_X11}/nvidia_drv.so
6502 -
6503 - # Xorg GLX driver
6504 - donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
6505 - /usr/$(get_libdir)/opengl/nvidia/extensions
6506 -
6507 - # Xorg nvidia.conf
6508 - if has_version '>=x11-base/xorg-server-1.16'; then
6509 - insinto /usr/share/X11/xorg.conf.d
6510 - newins {,50-}nvidia-drm-outputclass.conf
6511 - fi
6512 - fi
6513 -
6514 - # OpenCL ICD for NVIDIA
6515 - if use kernel_linux; then
6516 - insinto /etc/OpenCL/vendors
6517 - doins ${NV_OBJ}/nvidia.icd
6518 - fi
6519 -
6520 - # Documentation
6521 - dohtml ${NV_DOC}/html/*
6522 - if use kernel_FreeBSD; then
6523 - dodoc "${NV_DOC}/README"
6524 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
6525 - use tools && doman "${NV_MAN}/nvidia-settings.1"
6526 - else
6527 - # Docs
6528 - newdoc "${NV_DOC}/README.txt" README
6529 - dodoc "${NV_DOC}/NVIDIA_Changelog"
6530 - doman "${NV_MAN}/nvidia-smi.1.gz"
6531 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
6532 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
6533 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
6534 - fi
6535 -
6536 - # Helper Apps
6537 - exeinto /opt/bin/
6538 -
6539 - if use X; then
6540 - doexe ${NV_OBJ}/nvidia-xconfig
6541 - fi
6542 -
6543 - if use kernel_linux; then
6544 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
6545 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
6546 - doexe ${NV_OBJ}/nvidia-debugdump
6547 - doexe ${NV_OBJ}/nvidia-persistenced
6548 - doexe ${NV_OBJ}/nvidia-smi
6549 -
6550 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
6551 - doexe ${NV_OBJ}/nvidia-modprobe
6552 - fowners root:video /opt/bin/nvidia-modprobe
6553 - fperms 4710 /opt/bin/nvidia-modprobe
6554 - dosym /{opt,usr}/bin/nvidia-modprobe
6555 -
6556 - doman nvidia-cuda-mps-control.1.gz
6557 - doman nvidia-modprobe.1.gz
6558 - doman nvidia-persistenced.1.gz
6559 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
6560 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
6561 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
6562 - fi
6563 -
6564 - if use tools; then
6565 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
6566 - DESTDIR="${D}" \
6567 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
6568 - LIBDIR="${D}/usr/$(get_libdir)" \
6569 - PREFIX=/usr \
6570 - NV_USE_BUNDLED_LIBJANSSON=0 \
6571 - install
6572 -
6573 - if use static-libs; then
6574 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
6575 -
6576 - insinto /usr/include/NVCtrl
6577 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
6578 - fi
6579 -
6580 - insinto /usr/share/nvidia/
6581 - doins nvidia-application-profiles-${PV}-key-documentation
6582 -
6583 - insinto /etc/nvidia
6584 - newins \
6585 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
6586 -
6587 - # There is no icon in the FreeBSD tarball.
6588 - use kernel_FreeBSD || \
6589 - doicon ${NV_OBJ}/nvidia-settings.png
6590 -
6591 - domenu "${FILESDIR}"/nvidia-settings.desktop
6592 -
6593 - exeinto /etc/X11/xinit/xinitrc.d
6594 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
6595 - fi
6596 -
6597 - dobin ${NV_OBJ}/nvidia-bug-report.sh
6598 -
6599 - if has_multilib_profile && use multilib; then
6600 - local OABI=${ABI}
6601 - for ABI in $(get_install_abis); do
6602 - src_install-libs
6603 - done
6604 - ABI=${OABI}
6605 - unset OABI
6606 - else
6607 - src_install-libs
6608 - fi
6609 -
6610 - is_final_abi || die "failed to iterate through all ABIs"
6611 -
6612 - readme.gentoo_create_doc
6613 -}
6614 -
6615 -src_install-libs() {
6616 - local inslibdir=$(get_libdir)
6617 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
6618 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
6619 - local libdir=${NV_OBJ}
6620 -
6621 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
6622 - libdir=${NV_OBJ}/32
6623 - fi
6624 -
6625 - if use X; then
6626 - NV_GLX_LIBRARIES=(
6627 - "libEGL.so.1 ${GL_ROOT}"
6628 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
6629 - "libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
6630 - "libGLESv1_CM.so.1 ${GL_ROOT}"
6631 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
6632 - "libGLESv2.so.2 ${GL_ROOT}"
6633 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
6634 - "libGLX.so.0 ${GL_ROOT}"
6635 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
6636 - "libGLdispatch.so.0 ${GL_ROOT}"
6637 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
6638 - "libOpenGL.so.0 ${GL_ROOT}"
6639 - "libcuda.so.${NV_SOVER}"
6640 - "libnvcuvid.so.${NV_SOVER}"
6641 - "libnvidia-compiler.so.${NV_SOVER}"
6642 - "libnvidia-eglcore.so.${NV_SOVER}"
6643 - "libnvidia-encode.so.${NV_SOVER}"
6644 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
6645 - "libnvidia-fbc.so.${NV_SOVER}"
6646 - "libnvidia-glcore.so.${NV_SOVER}"
6647 - "libnvidia-glsi.so.${NV_SOVER}"
6648 - "libnvidia-ifr.so.${NV_SOVER}"
6649 - "libnvidia-opencl.so.${NV_SOVER}"
6650 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
6651 - "libvdpau_nvidia.so.${NV_SOVER}"
6652 - )
6653 -
6654 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
6655 - then
6656 - NV_GLX_LIBRARIES+=( "libnvidia-wfb.so.${NV_SOVER}" )
6657 - fi
6658 -
6659 - if use kernel_FreeBSD; then
6660 - NV_GLX_LIBRARIES+=( "libnvidia-tls.so.${NV_SOVER}" )
6661 - fi
6662 -
6663 - if use kernel_linux; then
6664 - NV_GLX_LIBRARIES+=(
6665 - "libnvidia-ml.so.${NV_SOVER}"
6666 - "tls/libnvidia-tls.so.${NV_SOVER}"
6667 - )
6668 - fi
6669 -
6670 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
6671 - donvidia ${libdir}/${NV_LIB}
6672 - done
6673 - fi
6674 -}
6675 -
6676 -pkg_preinst() {
6677 - if use driver && use kernel_linux; then
6678 - linux-mod_pkg_preinst
6679 -
6680 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
6681 - if [ -z "${videogroup}" ]; then
6682 - eerror "Failed to determine the video group gid"
6683 - die "Failed to determine the video group gid"
6684 - else
6685 - sed -i \
6686 - -e "s:PACKAGE:${PF}:g" \
6687 - -e "s:VIDEOGID:${videogroup}:" \
6688 - "${D}"/etc/modprobe.d/nvidia.conf || die
6689 - fi
6690 - fi
6691 -
6692 - # Clean the dynamic libGL stuff's home to ensure
6693 - # we dont have stale libs floating around
6694 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
6695 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
6696 - fi
6697 - # Make sure we nuke the old nvidia-glx's env.d file
6698 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
6699 - rm -f "${ROOT}"/etc/env.d/09nvidia
6700 - fi
6701 -}
6702 -
6703 -pkg_postinst() {
6704 - use driver && use kernel_linux && linux-mod_pkg_postinst
6705 -
6706 - # Switch to the nvidia implementation
6707 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
6708 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
6709 -
6710 - readme.gentoo_print_elog
6711 -
6712 - if ! use X; then
6713 - elog "You have elected to not install the X.org driver. Along with"
6714 - elog "this the OpenGL libraries and VDPAU libraries were not"
6715 - elog "installed. Additionally, once the driver is loaded your card"
6716 - elog "and fan will run at max speed which may not be desirable."
6717 - elog "Use the 'nvidia-smi' init script to have your card and fan"
6718 - elog "speed scale appropriately."
6719 - elog
6720 - fi
6721 - if ! use tools; then
6722 - elog "USE=tools controls whether the nvidia-settings application"
6723 - elog "is installed. If you would like to use it, enable that"
6724 - elog "flag and re-emerge this ebuild. Optionally you can install"
6725 - elog "media-video/nvidia-settings"
6726 - elog
6727 - fi
6728 -}
6729 -
6730 -pkg_prerm() {
6731 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
6732 -}
6733 -
6734 -pkg_postrm() {
6735 - use driver && use kernel_linux && linux-mod_pkg_postrm
6736 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
6737 -}
6738
6739 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-361.42.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-361.42.ebuild
6740 deleted file mode 100644
6741 index c1de4d2fe82..00000000000
6742 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-361.42.ebuild
6743 +++ /dev/null
6744 @@ -1,528 +0,0 @@
6745 -# Copyright 1999-2016 Gentoo Foundation
6746 -# Distributed under the terms of the GNU General Public License v2
6747 -
6748 -EAPI=5
6749 -
6750 -inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
6751 - portability toolchain-funcs unpacker user udev
6752 -
6753 -NV_URI="http://us.download.nvidia.com/XFree86/"
6754 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
6755 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
6756 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
6757 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
6758 -
6759 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
6760 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
6761 -SRC_URI="
6762 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
6763 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
6764 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
6765 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
6766 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
6767 -"
6768 -
6769 -LICENSE="GPL-2 NVIDIA-r2"
6770 -SLOT="0/${PV%.*}"
6771 -KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
6772 -RESTRICT="bindist mirror"
6773 -EMULTILIB_PKG="true"
6774 -
6775 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm +X"
6776 -REQUIRED_USE="
6777 - tools? ( X )
6778 - static-libs? ( tools )
6779 -"
6780 -
6781 -COMMON="
6782 - app-eselect/eselect-opencl
6783 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
6784 - tools? (
6785 - dev-libs/atk
6786 - dev-libs/glib:2
6787 - dev-libs/jansson
6788 - gtk3? ( x11-libs/gtk+:3 )
6789 - x11-libs/cairo
6790 - x11-libs/gdk-pixbuf[X]
6791 - x11-libs/gtk+:2
6792 - x11-libs/libX11
6793 - x11-libs/libXext
6794 - x11-libs/libXrandr
6795 - x11-libs/libXv
6796 - x11-libs/libXxf86vm
6797 - x11-libs/pango[X]
6798 - )
6799 - X? (
6800 - >=app-eselect/eselect-opengl-1.0.9
6801 - app-misc/pax-utils
6802 - )
6803 -"
6804 -DEPEND="
6805 - ${COMMON}
6806 - kernel_linux? ( virtual/linux-sources )
6807 -"
6808 -RDEPEND="
6809 - ${COMMON}
6810 - acpi? ( sys-power/acpid )
6811 - tools? ( !media-video/nvidia-settings )
6812 - X? (
6813 - <x11-base/xorg-server-1.18.99:=
6814 - >=x11-libs/libvdpau-1.0
6815 - multilib? (
6816 - >=x11-libs/libX11-1.6.2[abi_x86_32]
6817 - >=x11-libs/libXext-1.3.2[abi_x86_32]
6818 - )
6819 - )
6820 -"
6821 -
6822 -QA_PREBUILT="opt/* usr/lib*"
6823 -
6824 -S=${WORKDIR}/
6825 -
6826 -pkg_pretend() {
6827 - if use amd64 && has_multilib_profile && \
6828 - [ "${DEFAULT_ABI}" != "amd64" ]; then
6829 - eerror "This ebuild doesn't currently support changing your default ABI"
6830 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
6831 - fi
6832 -
6833 - if use kernel_linux && kernel_is ge 4 5; then
6834 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
6835 - ewarn "which are limited to the following kernels:"
6836 - ewarn "<sys-kernel/gentoo-sources-4.5"
6837 - ewarn "<sys-kernel/vanilla-sources-4.5"
6838 - ewarn ""
6839 - ewarn "You are free to utilize epatch_user to provide whatever"
6840 - ewarn "support you feel is appropriate, but will not receive"
6841 - ewarn "support as a result of those changes."
6842 - ewarn ""
6843 - ewarn "Do not file a bug report about this."
6844 - ewarn ""
6845 - fi
6846 -
6847 - # Since Nvidia ships many different series of drivers, we need to give the user
6848 - # some kind of guidance as to what version they should install. This tries
6849 - # to point the user in the right direction but can't be perfect. check
6850 - # nvidia-driver.eclass
6851 - nvidia-driver-check-warning
6852 -
6853 - # Kernel features/options to check for
6854 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
6855 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
6856 -
6857 - # Now do the above checks
6858 - use kernel_linux && check_extra_config
6859 -}
6860 -
6861 -pkg_setup() {
6862 - # try to turn off distcc and ccache for people that have a problem with it
6863 - export DISTCC_DISABLE=1
6864 - export CCACHE_DISABLE=1
6865 -
6866 - if use driver && use kernel_linux; then
6867 - MODULE_NAMES="nvidia(video:${S}/kernel)"
6868 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
6869 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel)"
6870 -
6871 - # This needs to run after MODULE_NAMES (so that the eclass checks
6872 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
6873 - # is set (so that KV_DIR is populated).
6874 - linux-mod_pkg_setup
6875 -
6876 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
6877 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
6878 -
6879 - # linux-mod_src_compile calls set_arch_to_kernel, which
6880 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
6881 - # expects x86_64 or i386 and then converts it to x86
6882 - # later on in the build process
6883 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
6884 - fi
6885 -
6886 - if use kernel_linux && kernel_is lt 2 6 9; then
6887 - eerror "You must build this against 2.6.9 or higher kernels."
6888 - fi
6889 -
6890 - # set variables to where files are in the package structure
6891 - if use kernel_FreeBSD; then
6892 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
6893 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
6894 - NV_DOC="${S}/doc"
6895 - NV_OBJ="${S}/obj"
6896 - NV_SRC="${S}/src"
6897 - NV_MAN="${S}/x11/man"
6898 - NV_X11="${S}/obj"
6899 - NV_SOVER=1
6900 - elif use kernel_linux; then
6901 - NV_DOC="${S}"
6902 - NV_OBJ="${S}"
6903 - NV_SRC="${S}/kernel"
6904 - NV_MAN="${S}"
6905 - NV_X11="${S}"
6906 - NV_SOVER=${PV}
6907 - else
6908 - die "Could not determine proper NVIDIA package"
6909 - fi
6910 -}
6911 -
6912 -src_prepare() {
6913 - if use pax_kernel; then
6914 - ewarn "Using PAX patches is not supported. You will be asked to"
6915 - ewarn "use a standard kernel should you have issues. Should you"
6916 - ewarn "need support with these patches, contact the PaX team."
6917 - epatch "${FILESDIR}"/${PN}-361.28-pax.patch
6918 - fi
6919 -
6920 - # Allow user patches so they can support RC kernels and whatever else
6921 - epatch_user
6922 -}
6923 -
6924 -src_compile() {
6925 - # This is already the default on Linux, as there's no toplevel Makefile, but
6926 - # on FreeBSD there's one and triggers the kernel module build, as we install
6927 - # it by itself, pass this.
6928 -
6929 - cd "${NV_SRC}"
6930 - if use kernel_FreeBSD; then
6931 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
6932 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
6933 - elif use driver && use kernel_linux; then
6934 - MAKEOPTS=-j1 linux-mod_src_compile
6935 - fi
6936 -
6937 - if use tools; then
6938 - emake -C "${S}"/nvidia-settings-${PV}/src \
6939 - AR="$(tc-getAR)" \
6940 - CC="$(tc-getCC)" \
6941 - LIBDIR="$(get_libdir)" \
6942 - RANLIB="$(tc-getRANLIB)" \
6943 - build-xnvctrl
6944 -
6945 - emake -C "${S}"/nvidia-settings-${PV}/src \
6946 - CC="$(tc-getCC)" \
6947 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
6948 - LD="$(tc-getCC)" \
6949 - LIBDIR="$(get_libdir)" \
6950 - NVML_ENABLED=0 \
6951 - NV_USE_BUNDLED_LIBJANSSON=0 \
6952 - NV_VERBOSE=1 \
6953 - STRIP_CMD=true
6954 - fi
6955 -}
6956 -
6957 -# Install nvidia library:
6958 -# the first parameter is the library to install
6959 -# the second parameter is the provided soversion
6960 -# the third parameter is the target directory if it is not /usr/lib
6961 -donvidia() {
6962 - # Full path to library
6963 - nv_LIB="${1}"
6964 -
6965 - # SOVER to use
6966 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
6967 -
6968 - # Where to install
6969 - nv_DEST="${2}"
6970 -
6971 - # Get just the library name
6972 - nv_LIBNAME=$(basename "${nv_LIB}")
6973 -
6974 - if [[ "${nv_DEST}" ]]; then
6975 - exeinto ${nv_DEST}
6976 - action="doexe"
6977 - else
6978 - nv_DEST="/usr/$(get_libdir)"
6979 - action="dolib.so"
6980 - fi
6981 -
6982 - # Install the library
6983 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
6984 -
6985 - # If the library has a SONAME and SONAME does not match the library name,
6986 - # then we need to create a symlink
6987 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
6988 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
6989 - || die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
6990 - fi
6991 -
6992 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
6993 - || die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
6994 -}
6995 -
6996 -src_install() {
6997 - if use driver && use kernel_linux; then
6998 - linux-mod_src_install
6999 -
7000 - # Add the aliases
7001 - # This file is tweaked with the appropriate video group in
7002 - # pkg_preinst, see bug #491414
7003 - insinto /etc/modprobe.d
7004 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
7005 - doins "${FILESDIR}"/nvidia-rmmod.conf
7006 -
7007 - # Ensures that our device nodes are created when not using X
7008 - exeinto "$(get_udevdir)"
7009 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
7010 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
7011 - elif use kernel_FreeBSD; then
7012 - if use x86-fbsd; then
7013 - insinto /boot/modules
7014 - doins "${S}/src/nvidia.kld"
7015 - fi
7016 -
7017 - exeinto /boot/modules
7018 - doexe "${S}/src/nvidia.ko"
7019 - fi
7020 -
7021 - # NVIDIA kernel <-> userspace driver config lib
7022 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
7023 -
7024 - # NVIDIA framebuffer capture library
7025 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
7026 -
7027 - # NVIDIA video encode/decode <-> CUDA
7028 - if use kernel_linux; then
7029 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
7030 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
7031 - fi
7032 -
7033 - if use X; then
7034 - # Xorg DDX driver
7035 - insinto /usr/$(get_libdir)/xorg/modules/drivers
7036 - doins ${NV_X11}/nvidia_drv.so
7037 -
7038 - # Xorg GLX driver
7039 - donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
7040 - /usr/$(get_libdir)/opengl/nvidia/extensions
7041 -
7042 - # Xorg nvidia.conf
7043 - if has_version '>=x11-base/xorg-server-1.16'; then
7044 - insinto /usr/share/X11/xorg.conf.d
7045 - newins {,50-}nvidia-drm-outputclass.conf
7046 - fi
7047 - fi
7048 -
7049 - # OpenCL ICD for NVIDIA
7050 - if use kernel_linux; then
7051 - insinto /etc/OpenCL/vendors
7052 - doins ${NV_OBJ}/nvidia.icd
7053 - fi
7054 -
7055 - # Documentation
7056 - dohtml ${NV_DOC}/html/*
7057 - if use kernel_FreeBSD; then
7058 - dodoc "${NV_DOC}/README"
7059 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
7060 - use tools && doman "${NV_MAN}/nvidia-settings.1"
7061 - else
7062 - # Docs
7063 - newdoc "${NV_DOC}/README.txt" README
7064 - dodoc "${NV_DOC}/NVIDIA_Changelog"
7065 - doman "${NV_MAN}/nvidia-smi.1.gz"
7066 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
7067 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
7068 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
7069 - fi
7070 -
7071 - # Helper Apps
7072 - exeinto /opt/bin/
7073 -
7074 - if use X; then
7075 - doexe ${NV_OBJ}/nvidia-xconfig
7076 - fi
7077 -
7078 - if use kernel_linux; then
7079 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
7080 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
7081 - doexe ${NV_OBJ}/nvidia-debugdump
7082 - doexe ${NV_OBJ}/nvidia-persistenced
7083 - doexe ${NV_OBJ}/nvidia-smi
7084 -
7085 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
7086 - doexe ${NV_OBJ}/nvidia-modprobe
7087 - fowners root:video /opt/bin/nvidia-modprobe
7088 - fperms 4710 /opt/bin/nvidia-modprobe
7089 - dosym /{opt,usr}/bin/nvidia-modprobe
7090 -
7091 - doman nvidia-cuda-mps-control.1.gz
7092 - doman nvidia-modprobe.1.gz
7093 - doman nvidia-persistenced.1.gz
7094 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
7095 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
7096 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
7097 - fi
7098 -
7099 - if use tools; then
7100 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
7101 - DESTDIR="${D}" \
7102 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
7103 - LIBDIR="${D}/usr/$(get_libdir)" \
7104 - PREFIX=/usr \
7105 - NV_USE_BUNDLED_LIBJANSSON=0 \
7106 - install
7107 -
7108 - if use static-libs; then
7109 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
7110 -
7111 - insinto /usr/include/NVCtrl
7112 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
7113 - fi
7114 -
7115 - insinto /usr/share/nvidia/
7116 - doins nvidia-application-profiles-${PV}-key-documentation
7117 -
7118 - insinto /etc/nvidia
7119 - newins \
7120 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
7121 -
7122 - # There is no icon in the FreeBSD tarball.
7123 - use kernel_FreeBSD || \
7124 - doicon ${NV_OBJ}/nvidia-settings.png
7125 -
7126 - domenu "${FILESDIR}"/nvidia-settings.desktop
7127 -
7128 - exeinto /etc/X11/xinit/xinitrc.d
7129 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
7130 - fi
7131 -
7132 - dobin ${NV_OBJ}/nvidia-bug-report.sh
7133 -
7134 - if has_multilib_profile && use multilib; then
7135 - local OABI=${ABI}
7136 - for ABI in $(get_install_abis); do
7137 - src_install-libs
7138 - done
7139 - ABI=${OABI}
7140 - unset OABI
7141 - else
7142 - src_install-libs
7143 - fi
7144 -
7145 - is_final_abi || die "failed to iterate through all ABIs"
7146 -
7147 - readme.gentoo_create_doc
7148 -}
7149 -
7150 -src_install-libs() {
7151 - local inslibdir=$(get_libdir)
7152 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
7153 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
7154 - local libdir=${NV_OBJ}
7155 -
7156 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
7157 - libdir=${NV_OBJ}/32
7158 - fi
7159 -
7160 - if use X; then
7161 - NV_GLX_LIBRARIES=(
7162 - "libEGL.so.1 ${GL_ROOT}"
7163 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
7164 - "libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
7165 - "libGLESv1_CM.so.1 ${GL_ROOT}"
7166 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
7167 - "libGLESv2.so.2 ${GL_ROOT}"
7168 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
7169 - "libGLX.so.0 ${GL_ROOT}"
7170 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
7171 - "libGLdispatch.so.0 ${GL_ROOT}"
7172 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
7173 - "libOpenGL.so.0 ${GL_ROOT}"
7174 - "libcuda.so.${NV_SOVER}"
7175 - "libnvcuvid.so.${NV_SOVER}"
7176 - "libnvidia-compiler.so.${NV_SOVER}"
7177 - "libnvidia-eglcore.so.${NV_SOVER}"
7178 - "libnvidia-encode.so.${NV_SOVER}"
7179 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
7180 - "libnvidia-fbc.so.${NV_SOVER}"
7181 - "libnvidia-glcore.so.${NV_SOVER}"
7182 - "libnvidia-glsi.so.${NV_SOVER}"
7183 - "libnvidia-ifr.so.${NV_SOVER}"
7184 - "libnvidia-opencl.so.${NV_SOVER}"
7185 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
7186 - "libvdpau_nvidia.so.${NV_SOVER}"
7187 - )
7188 -
7189 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
7190 - then
7191 - NV_GLX_LIBRARIES+=( "libnvidia-wfb.so.${NV_SOVER}" )
7192 - fi
7193 -
7194 - if use kernel_FreeBSD; then
7195 - NV_GLX_LIBRARIES+=( "libnvidia-tls.so.${NV_SOVER}" )
7196 - fi
7197 -
7198 - if use kernel_linux; then
7199 - NV_GLX_LIBRARIES+=(
7200 - "libnvidia-ml.so.${NV_SOVER}"
7201 - "tls/libnvidia-tls.so.${NV_SOVER}"
7202 - )
7203 - fi
7204 -
7205 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
7206 - donvidia ${libdir}/${NV_LIB}
7207 - done
7208 - fi
7209 -}
7210 -
7211 -pkg_preinst() {
7212 - if use driver && use kernel_linux; then
7213 - linux-mod_pkg_preinst
7214 -
7215 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
7216 - if [ -z "${videogroup}" ]; then
7217 - eerror "Failed to determine the video group gid"
7218 - die "Failed to determine the video group gid"
7219 - else
7220 - sed -i \
7221 - -e "s:PACKAGE:${PF}:g" \
7222 - -e "s:VIDEOGID:${videogroup}:" \
7223 - "${D}"/etc/modprobe.d/nvidia.conf || die
7224 - fi
7225 - fi
7226 -
7227 - # Clean the dynamic libGL stuff's home to ensure
7228 - # we dont have stale libs floating around
7229 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
7230 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
7231 - fi
7232 - # Make sure we nuke the old nvidia-glx's env.d file
7233 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
7234 - rm -f "${ROOT}"/etc/env.d/09nvidia
7235 - fi
7236 -}
7237 -
7238 -pkg_postinst() {
7239 - use driver && use kernel_linux && linux-mod_pkg_postinst
7240 -
7241 - # Switch to the nvidia implementation
7242 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
7243 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
7244 -
7245 - readme.gentoo_print_elog
7246 -
7247 - if ! use X; then
7248 - elog "You have elected to not install the X.org driver. Along with"
7249 - elog "this the OpenGL libraries and VDPAU libraries were not"
7250 - elog "installed. Additionally, once the driver is loaded your card"
7251 - elog "and fan will run at max speed which may not be desirable."
7252 - elog "Use the 'nvidia-smi' init script to have your card and fan"
7253 - elog "speed scale appropriately."
7254 - elog
7255 - fi
7256 - if ! use tools; then
7257 - elog "USE=tools controls whether the nvidia-settings application"
7258 - elog "is installed. If you would like to use it, enable that"
7259 - elog "flag and re-emerge this ebuild. Optionally you can install"
7260 - elog "media-video/nvidia-settings"
7261 - elog
7262 - fi
7263 -}
7264 -
7265 -pkg_prerm() {
7266 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
7267 -}
7268 -
7269 -pkg_postrm() {
7270 - use driver && use kernel_linux && linux-mod_pkg_postrm
7271 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
7272 -}
7273
7274 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-361.45.18-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-361.45.18-r1.ebuild
7275 deleted file mode 100644
7276 index bf8d4b7c236..00000000000
7277 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-361.45.18-r1.ebuild
7278 +++ /dev/null
7279 @@ -1,529 +0,0 @@
7280 -# Copyright 1999-2017 Gentoo Foundation
7281 -# Distributed under the terms of the GNU General Public License v2
7282 -
7283 -EAPI=5
7284 -
7285 -inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
7286 - portability toolchain-funcs unpacker user udev
7287 -
7288 -NV_URI="http://us.download.nvidia.com/XFree86/"
7289 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
7290 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
7291 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
7292 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
7293 -
7294 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
7295 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
7296 -SRC_URI="
7297 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
7298 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
7299 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
7300 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
7301 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
7302 -"
7303 -
7304 -LICENSE="GPL-2 NVIDIA-r2"
7305 -SLOT="0/${PV%.*}"
7306 -KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
7307 -RESTRICT="bindist mirror"
7308 -EMULTILIB_PKG="true"
7309 -
7310 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm +X"
7311 -REQUIRED_USE="
7312 - tools? ( X )
7313 - static-libs? ( tools )
7314 -"
7315 -
7316 -COMMON="
7317 - app-eselect/eselect-opencl
7318 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
7319 - tools? (
7320 - dev-libs/atk
7321 - dev-libs/glib:2
7322 - dev-libs/jansson
7323 - gtk3? (
7324 - x11-libs/gtk+:3
7325 - )
7326 - x11-libs/cairo
7327 - x11-libs/gdk-pixbuf[X]
7328 - x11-libs/gtk+:2
7329 - x11-libs/libX11
7330 - x11-libs/libXext
7331 - x11-libs/libXrandr
7332 - x11-libs/libXv
7333 - x11-libs/libXxf86vm
7334 - x11-libs/pango[X]
7335 - )
7336 - X? (
7337 - >=app-eselect/eselect-opengl-1.0.9
7338 - app-misc/pax-utils
7339 - )
7340 -"
7341 -DEPEND="
7342 - ${COMMON}
7343 - kernel_linux? ( virtual/linux-sources )
7344 -"
7345 -RDEPEND="
7346 - ${COMMON}
7347 - acpi? ( sys-power/acpid )
7348 - tools? ( !media-video/nvidia-settings )
7349 - X? (
7350 - <x11-base/xorg-server-1.18.99:=
7351 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
7352 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
7353 - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
7354 - sys-libs/zlib[${MULTILIB_USEDEP}]
7355 - )
7356 -"
7357 -
7358 -QA_PREBUILT="opt/* usr/lib*"
7359 -
7360 -S=${WORKDIR}/
7361 -
7362 -pkg_pretend() {
7363 - if use amd64 && has_multilib_profile && \
7364 - [ "${DEFAULT_ABI}" != "amd64" ]; then
7365 - eerror "This ebuild doesn't currently support changing your default ABI"
7366 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
7367 - fi
7368 -
7369 - if use kernel_linux && kernel_is ge 4 5; then
7370 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
7371 - ewarn "which are limited to the following kernels:"
7372 - ewarn "<sys-kernel/gentoo-sources-4.5"
7373 - ewarn "<sys-kernel/vanilla-sources-4.5"
7374 - ewarn ""
7375 - ewarn "You are free to utilize epatch_user to provide whatever"
7376 - ewarn "support you feel is appropriate, but will not receive"
7377 - ewarn "support as a result of those changes."
7378 - ewarn ""
7379 - ewarn "Do not file a bug report about this."
7380 - ewarn ""
7381 - fi
7382 -
7383 - # Since Nvidia ships many different series of drivers, we need to give the user
7384 - # some kind of guidance as to what version they should install. This tries
7385 - # to point the user in the right direction but can't be perfect. check
7386 - # nvidia-driver.eclass
7387 - nvidia-driver-check-warning
7388 -
7389 - # Kernel features/options to check for
7390 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
7391 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
7392 -
7393 - # Now do the above checks
7394 - use kernel_linux && check_extra_config
7395 -}
7396 -
7397 -pkg_setup() {
7398 - # try to turn off distcc and ccache for people that have a problem with it
7399 - export DISTCC_DISABLE=1
7400 - export CCACHE_DISABLE=1
7401 -
7402 - if use driver && use kernel_linux; then
7403 - MODULE_NAMES="nvidia(video:${S}/kernel)"
7404 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
7405 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel)"
7406 -
7407 - # This needs to run after MODULE_NAMES (so that the eclass checks
7408 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
7409 - # is set (so that KV_DIR is populated).
7410 - linux-mod_pkg_setup
7411 -
7412 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
7413 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
7414 -
7415 - # linux-mod_src_compile calls set_arch_to_kernel, which
7416 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
7417 - # expects x86_64 or i386 and then converts it to x86
7418 - # later on in the build process
7419 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
7420 - fi
7421 -
7422 - if use kernel_linux && kernel_is lt 2 6 9; then
7423 - eerror "You must build this against 2.6.9 or higher kernels."
7424 - fi
7425 -
7426 - # set variables to where files are in the package structure
7427 - if use kernel_FreeBSD; then
7428 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
7429 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
7430 - NV_DOC="${S}/doc"
7431 - NV_OBJ="${S}/obj"
7432 - NV_SRC="${S}/src"
7433 - NV_MAN="${S}/x11/man"
7434 - NV_X11="${S}/obj"
7435 - NV_SOVER=1
7436 - elif use kernel_linux; then
7437 - NV_DOC="${S}"
7438 - NV_OBJ="${S}"
7439 - NV_SRC="${S}/kernel"
7440 - NV_MAN="${S}"
7441 - NV_X11="${S}"
7442 - NV_SOVER=${PV}
7443 - else
7444 - die "Could not determine proper NVIDIA package"
7445 - fi
7446 -}
7447 -
7448 -src_prepare() {
7449 - if use pax_kernel; then
7450 - ewarn "Using PAX patches is not supported. You will be asked to"
7451 - ewarn "use a standard kernel should you have issues. Should you"
7452 - ewarn "need support with these patches, contact the PaX team."
7453 - epatch "${FILESDIR}"/${PN}-361.28-pax.patch
7454 - fi
7455 -
7456 - # Allow user patches so they can support RC kernels and whatever else
7457 - epatch_user
7458 -}
7459 -
7460 -src_compile() {
7461 - # This is already the default on Linux, as there's no toplevel Makefile, but
7462 - # on FreeBSD there's one and triggers the kernel module build, as we install
7463 - # it by itself, pass this.
7464 -
7465 - cd "${NV_SRC}"
7466 - if use kernel_FreeBSD; then
7467 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
7468 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
7469 - elif use driver && use kernel_linux; then
7470 - MAKEOPTS=-j1 linux-mod_src_compile
7471 - fi
7472 -
7473 - if use tools; then
7474 - emake -C "${S}"/nvidia-settings-${PV}/src \
7475 - AR="$(tc-getAR)" \
7476 - CC="$(tc-getCC)" \
7477 - LIBDIR="$(get_libdir)" \
7478 - RANLIB="$(tc-getRANLIB)" \
7479 - build-xnvctrl
7480 -
7481 - emake -C "${S}"/nvidia-settings-${PV}/src \
7482 - CC="$(tc-getCC)" \
7483 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
7484 - LD="$(tc-getCC)" \
7485 - LIBDIR="$(get_libdir)" \
7486 - NVML_ENABLED=0 \
7487 - NV_USE_BUNDLED_LIBJANSSON=0 \
7488 - NV_VERBOSE=1 \
7489 - STRIP_CMD=true
7490 - fi
7491 -}
7492 -
7493 -# Install nvidia library:
7494 -# the first parameter is the library to install
7495 -# the second parameter is the provided soversion
7496 -# the third parameter is the target directory if it is not /usr/lib
7497 -donvidia() {
7498 - # Full path to library
7499 - nv_LIB="${1}"
7500 -
7501 - # SOVER to use
7502 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
7503 -
7504 - # Where to install
7505 - nv_DEST="${2}"
7506 -
7507 - # Get just the library name
7508 - nv_LIBNAME=$(basename "${nv_LIB}")
7509 -
7510 - if [[ "${nv_DEST}" ]]; then
7511 - exeinto ${nv_DEST}
7512 - action="doexe"
7513 - else
7514 - nv_DEST="/usr/$(get_libdir)"
7515 - action="dolib.so"
7516 - fi
7517 -
7518 - # Install the library
7519 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
7520 -
7521 - # If the library has a SONAME and SONAME does not match the library name,
7522 - # then we need to create a symlink
7523 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
7524 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
7525 - || die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
7526 - fi
7527 -
7528 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
7529 - || die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
7530 -}
7531 -
7532 -src_install() {
7533 - if use driver && use kernel_linux; then
7534 - linux-mod_src_install
7535 -
7536 - # Add the aliases
7537 - # This file is tweaked with the appropriate video group in
7538 - # pkg_preinst, see bug #491414
7539 - insinto /etc/modprobe.d
7540 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
7541 - doins "${FILESDIR}"/nvidia-rmmod.conf
7542 -
7543 - # Ensures that our device nodes are created when not using X
7544 - exeinto "$(get_udevdir)"
7545 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
7546 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
7547 - elif use kernel_FreeBSD; then
7548 - if use x86-fbsd; then
7549 - insinto /boot/modules
7550 - doins "${S}/src/nvidia.kld"
7551 - fi
7552 -
7553 - exeinto /boot/modules
7554 - doexe "${S}/src/nvidia.ko"
7555 - fi
7556 -
7557 - # NVIDIA kernel <-> userspace driver config lib
7558 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
7559 -
7560 - # NVIDIA framebuffer capture library
7561 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
7562 -
7563 - # NVIDIA video encode/decode <-> CUDA
7564 - if use kernel_linux; then
7565 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
7566 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
7567 - fi
7568 -
7569 - if use X; then
7570 - # Xorg DDX driver
7571 - insinto /usr/$(get_libdir)/xorg/modules/drivers
7572 - doins ${NV_X11}/nvidia_drv.so
7573 -
7574 - # Xorg GLX driver
7575 - donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
7576 - /usr/$(get_libdir)/opengl/nvidia/extensions
7577 -
7578 - # Xorg nvidia.conf
7579 - if has_version '>=x11-base/xorg-server-1.16'; then
7580 - insinto /usr/share/X11/xorg.conf.d
7581 - newins {,50-}nvidia-drm-outputclass.conf
7582 - fi
7583 - fi
7584 -
7585 - # OpenCL ICD for NVIDIA
7586 - if use kernel_linux; then
7587 - insinto /etc/OpenCL/vendors
7588 - doins ${NV_OBJ}/nvidia.icd
7589 - fi
7590 -
7591 - # Documentation
7592 - dohtml ${NV_DOC}/html/*
7593 - if use kernel_FreeBSD; then
7594 - dodoc "${NV_DOC}/README"
7595 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
7596 - use tools && doman "${NV_MAN}/nvidia-settings.1"
7597 - else
7598 - # Docs
7599 - newdoc "${NV_DOC}/README.txt" README
7600 - dodoc "${NV_DOC}/NVIDIA_Changelog"
7601 - doman "${NV_MAN}/nvidia-smi.1.gz"
7602 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
7603 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
7604 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
7605 - fi
7606 -
7607 - # Helper Apps
7608 - exeinto /opt/bin/
7609 -
7610 - if use X; then
7611 - doexe ${NV_OBJ}/nvidia-xconfig
7612 - fi
7613 -
7614 - if use kernel_linux; then
7615 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
7616 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
7617 - doexe ${NV_OBJ}/nvidia-debugdump
7618 - doexe ${NV_OBJ}/nvidia-persistenced
7619 - doexe ${NV_OBJ}/nvidia-smi
7620 -
7621 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
7622 - doexe ${NV_OBJ}/nvidia-modprobe
7623 - fowners root:video /opt/bin/nvidia-modprobe
7624 - fperms 4710 /opt/bin/nvidia-modprobe
7625 - dosym /{opt,usr}/bin/nvidia-modprobe
7626 -
7627 - doman nvidia-cuda-mps-control.1.gz
7628 - doman nvidia-modprobe.1.gz
7629 - doman nvidia-persistenced.1.gz
7630 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
7631 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
7632 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
7633 - fi
7634 -
7635 - if use tools; then
7636 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
7637 - DESTDIR="${D}" \
7638 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
7639 - LIBDIR="${D}/usr/$(get_libdir)" \
7640 - PREFIX=/usr \
7641 - NV_USE_BUNDLED_LIBJANSSON=0 \
7642 - install
7643 -
7644 - if use static-libs; then
7645 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
7646 -
7647 - insinto /usr/include/NVCtrl
7648 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
7649 - fi
7650 -
7651 - insinto /usr/share/nvidia/
7652 - doins nvidia-application-profiles-${PV}-key-documentation
7653 -
7654 - insinto /etc/nvidia
7655 - newins \
7656 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
7657 -
7658 - # There is no icon in the FreeBSD tarball.
7659 - use kernel_FreeBSD || \
7660 - doicon ${NV_OBJ}/nvidia-settings.png
7661 -
7662 - domenu "${FILESDIR}"/nvidia-settings.desktop
7663 -
7664 - exeinto /etc/X11/xinit/xinitrc.d
7665 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
7666 - fi
7667 -
7668 - dobin ${NV_OBJ}/nvidia-bug-report.sh
7669 -
7670 - if has_multilib_profile && use multilib; then
7671 - local OABI=${ABI}
7672 - for ABI in $(get_install_abis); do
7673 - src_install-libs
7674 - done
7675 - ABI=${OABI}
7676 - unset OABI
7677 - else
7678 - src_install-libs
7679 - fi
7680 -
7681 - is_final_abi || die "failed to iterate through all ABIs"
7682 -
7683 - readme.gentoo_create_doc
7684 -}
7685 -
7686 -src_install-libs() {
7687 - local inslibdir=$(get_libdir)
7688 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
7689 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
7690 - local libdir=${NV_OBJ}
7691 -
7692 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
7693 - libdir=${NV_OBJ}/32
7694 - fi
7695 -
7696 - if use X; then
7697 - NV_GLX_LIBRARIES=(
7698 - "libEGL.so.1 ${GL_ROOT}"
7699 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
7700 - "libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
7701 - "libGLESv1_CM.so.1 ${GL_ROOT}"
7702 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
7703 - "libGLESv2.so.2 ${GL_ROOT}"
7704 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
7705 - "libGLX.so.0 ${GL_ROOT}"
7706 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
7707 - "libGLdispatch.so.0 ${GL_ROOT}"
7708 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
7709 - "libOpenGL.so.0 ${GL_ROOT}"
7710 - "libcuda.so.${NV_SOVER}"
7711 - "libnvcuvid.so.${NV_SOVER}"
7712 - "libnvidia-compiler.so.${NV_SOVER}"
7713 - "libnvidia-eglcore.so.${NV_SOVER}"
7714 - "libnvidia-encode.so.${NV_SOVER}"
7715 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
7716 - "libnvidia-fbc.so.${NV_SOVER}"
7717 - "libnvidia-glcore.so.${NV_SOVER}"
7718 - "libnvidia-glsi.so.${NV_SOVER}"
7719 - "libnvidia-ifr.so.${NV_SOVER}"
7720 - "libnvidia-opencl.so.${NV_SOVER}"
7721 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
7722 - "libvdpau_nvidia.so.${NV_SOVER}"
7723 - )
7724 -
7725 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
7726 - then
7727 - NV_GLX_LIBRARIES+=( "libnvidia-wfb.so.${NV_SOVER}" )
7728 - fi
7729 -
7730 - if use kernel_FreeBSD; then
7731 - NV_GLX_LIBRARIES+=( "libnvidia-tls.so.${NV_SOVER}" )
7732 - fi
7733 -
7734 - if use kernel_linux; then
7735 - NV_GLX_LIBRARIES+=(
7736 - "libnvidia-ml.so.${NV_SOVER}"
7737 - "tls/libnvidia-tls.so.${NV_SOVER}"
7738 - )
7739 - fi
7740 -
7741 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
7742 - donvidia ${libdir}/${NV_LIB}
7743 - done
7744 - fi
7745 -}
7746 -
7747 -pkg_preinst() {
7748 - if use driver && use kernel_linux; then
7749 - linux-mod_pkg_preinst
7750 -
7751 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
7752 - if [ -z "${videogroup}" ]; then
7753 - eerror "Failed to determine the video group gid"
7754 - die "Failed to determine the video group gid"
7755 - else
7756 - sed -i \
7757 - -e "s:PACKAGE:${PF}:g" \
7758 - -e "s:VIDEOGID:${videogroup}:" \
7759 - "${D}"/etc/modprobe.d/nvidia.conf || die
7760 - fi
7761 - fi
7762 -
7763 - # Clean the dynamic libGL stuff's home to ensure
7764 - # we dont have stale libs floating around
7765 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
7766 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
7767 - fi
7768 - # Make sure we nuke the old nvidia-glx's env.d file
7769 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
7770 - rm -f "${ROOT}"/etc/env.d/09nvidia
7771 - fi
7772 -}
7773 -
7774 -pkg_postinst() {
7775 - use driver && use kernel_linux && linux-mod_pkg_postinst
7776 -
7777 - # Switch to the nvidia implementation
7778 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
7779 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
7780 -
7781 - readme.gentoo_print_elog
7782 -
7783 - if ! use X; then
7784 - elog "You have elected to not install the X.org driver. Along with"
7785 - elog "this the OpenGL libraries and VDPAU libraries were not"
7786 - elog "installed. Additionally, once the driver is loaded your card"
7787 - elog "and fan will run at max speed which may not be desirable."
7788 - elog "Use the 'nvidia-smi' init script to have your card and fan"
7789 - elog "speed scale appropriately."
7790 - elog
7791 - fi
7792 - if ! use tools; then
7793 - elog "USE=tools controls whether the nvidia-settings application"
7794 - elog "is installed. If you would like to use it, enable that"
7795 - elog "flag and re-emerge this ebuild. Optionally you can install"
7796 - elog "media-video/nvidia-settings"
7797 - elog
7798 - fi
7799 -}
7800 -
7801 -pkg_prerm() {
7802 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
7803 -}
7804 -
7805 -pkg_postrm() {
7806 - use driver && use kernel_linux && linux-mod_pkg_postrm
7807 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
7808 -}
7809
7810 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-361.45.18.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-361.45.18.ebuild
7811 deleted file mode 100644
7812 index e8e413de669..00000000000
7813 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-361.45.18.ebuild
7814 +++ /dev/null
7815 @@ -1,528 +0,0 @@
7816 -# Copyright 1999-2016 Gentoo Foundation
7817 -# Distributed under the terms of the GNU General Public License v2
7818 -
7819 -EAPI=5
7820 -
7821 -inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
7822 - portability toolchain-funcs unpacker user udev
7823 -
7824 -NV_URI="http://us.download.nvidia.com/XFree86/"
7825 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
7826 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
7827 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
7828 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
7829 -
7830 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
7831 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
7832 -SRC_URI="
7833 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
7834 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
7835 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
7836 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
7837 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
7838 -"
7839 -
7840 -LICENSE="GPL-2 NVIDIA-r2"
7841 -SLOT="0/${PV%.*}"
7842 -KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
7843 -RESTRICT="bindist mirror"
7844 -EMULTILIB_PKG="true"
7845 -
7846 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm +X"
7847 -REQUIRED_USE="
7848 - tools? ( X )
7849 - static-libs? ( tools )
7850 -"
7851 -
7852 -COMMON="
7853 - app-eselect/eselect-opencl
7854 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
7855 - tools? (
7856 - dev-libs/atk
7857 - dev-libs/glib:2
7858 - dev-libs/jansson
7859 - gtk3? ( x11-libs/gtk+:3 )
7860 - x11-libs/cairo
7861 - x11-libs/gdk-pixbuf[X]
7862 - x11-libs/gtk+:2
7863 - x11-libs/libX11
7864 - x11-libs/libXext
7865 - x11-libs/libXrandr
7866 - x11-libs/libXv
7867 - x11-libs/libXxf86vm
7868 - x11-libs/pango[X]
7869 - )
7870 - X? (
7871 - >=app-eselect/eselect-opengl-1.0.9
7872 - app-misc/pax-utils
7873 - )
7874 -"
7875 -DEPEND="
7876 - ${COMMON}
7877 - kernel_linux? ( virtual/linux-sources )
7878 -"
7879 -RDEPEND="
7880 - ${COMMON}
7881 - acpi? ( sys-power/acpid )
7882 - tools? ( !media-video/nvidia-settings )
7883 - X? (
7884 - <x11-base/xorg-server-1.18.99:=
7885 - >=x11-libs/libvdpau-1.0
7886 - multilib? (
7887 - >=x11-libs/libX11-1.6.2[abi_x86_32]
7888 - >=x11-libs/libXext-1.3.2[abi_x86_32]
7889 - )
7890 - )
7891 -"
7892 -
7893 -QA_PREBUILT="opt/* usr/lib*"
7894 -
7895 -S=${WORKDIR}/
7896 -
7897 -pkg_pretend() {
7898 - if use amd64 && has_multilib_profile && \
7899 - [ "${DEFAULT_ABI}" != "amd64" ]; then
7900 - eerror "This ebuild doesn't currently support changing your default ABI"
7901 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
7902 - fi
7903 -
7904 - if use kernel_linux && kernel_is ge 4 5; then
7905 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
7906 - ewarn "which are limited to the following kernels:"
7907 - ewarn "<sys-kernel/gentoo-sources-4.5"
7908 - ewarn "<sys-kernel/vanilla-sources-4.5"
7909 - ewarn ""
7910 - ewarn "You are free to utilize epatch_user to provide whatever"
7911 - ewarn "support you feel is appropriate, but will not receive"
7912 - ewarn "support as a result of those changes."
7913 - ewarn ""
7914 - ewarn "Do not file a bug report about this."
7915 - ewarn ""
7916 - fi
7917 -
7918 - # Since Nvidia ships many different series of drivers, we need to give the user
7919 - # some kind of guidance as to what version they should install. This tries
7920 - # to point the user in the right direction but can't be perfect. check
7921 - # nvidia-driver.eclass
7922 - nvidia-driver-check-warning
7923 -
7924 - # Kernel features/options to check for
7925 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
7926 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
7927 -
7928 - # Now do the above checks
7929 - use kernel_linux && check_extra_config
7930 -}
7931 -
7932 -pkg_setup() {
7933 - # try to turn off distcc and ccache for people that have a problem with it
7934 - export DISTCC_DISABLE=1
7935 - export CCACHE_DISABLE=1
7936 -
7937 - if use driver && use kernel_linux; then
7938 - MODULE_NAMES="nvidia(video:${S}/kernel)"
7939 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
7940 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel)"
7941 -
7942 - # This needs to run after MODULE_NAMES (so that the eclass checks
7943 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
7944 - # is set (so that KV_DIR is populated).
7945 - linux-mod_pkg_setup
7946 -
7947 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
7948 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
7949 -
7950 - # linux-mod_src_compile calls set_arch_to_kernel, which
7951 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
7952 - # expects x86_64 or i386 and then converts it to x86
7953 - # later on in the build process
7954 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
7955 - fi
7956 -
7957 - if use kernel_linux && kernel_is lt 2 6 9; then
7958 - eerror "You must build this against 2.6.9 or higher kernels."
7959 - fi
7960 -
7961 - # set variables to where files are in the package structure
7962 - if use kernel_FreeBSD; then
7963 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
7964 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
7965 - NV_DOC="${S}/doc"
7966 - NV_OBJ="${S}/obj"
7967 - NV_SRC="${S}/src"
7968 - NV_MAN="${S}/x11/man"
7969 - NV_X11="${S}/obj"
7970 - NV_SOVER=1
7971 - elif use kernel_linux; then
7972 - NV_DOC="${S}"
7973 - NV_OBJ="${S}"
7974 - NV_SRC="${S}/kernel"
7975 - NV_MAN="${S}"
7976 - NV_X11="${S}"
7977 - NV_SOVER=${PV}
7978 - else
7979 - die "Could not determine proper NVIDIA package"
7980 - fi
7981 -}
7982 -
7983 -src_prepare() {
7984 - if use pax_kernel; then
7985 - ewarn "Using PAX patches is not supported. You will be asked to"
7986 - ewarn "use a standard kernel should you have issues. Should you"
7987 - ewarn "need support with these patches, contact the PaX team."
7988 - epatch "${FILESDIR}"/${PN}-361.28-pax.patch
7989 - fi
7990 -
7991 - # Allow user patches so they can support RC kernels and whatever else
7992 - epatch_user
7993 -}
7994 -
7995 -src_compile() {
7996 - # This is already the default on Linux, as there's no toplevel Makefile, but
7997 - # on FreeBSD there's one and triggers the kernel module build, as we install
7998 - # it by itself, pass this.
7999 -
8000 - cd "${NV_SRC}"
8001 - if use kernel_FreeBSD; then
8002 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
8003 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
8004 - elif use driver && use kernel_linux; then
8005 - MAKEOPTS=-j1 linux-mod_src_compile
8006 - fi
8007 -
8008 - if use tools; then
8009 - emake -C "${S}"/nvidia-settings-${PV}/src \
8010 - AR="$(tc-getAR)" \
8011 - CC="$(tc-getCC)" \
8012 - LIBDIR="$(get_libdir)" \
8013 - RANLIB="$(tc-getRANLIB)" \
8014 - build-xnvctrl
8015 -
8016 - emake -C "${S}"/nvidia-settings-${PV}/src \
8017 - CC="$(tc-getCC)" \
8018 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
8019 - LD="$(tc-getCC)" \
8020 - LIBDIR="$(get_libdir)" \
8021 - NVML_ENABLED=0 \
8022 - NV_USE_BUNDLED_LIBJANSSON=0 \
8023 - NV_VERBOSE=1 \
8024 - STRIP_CMD=true
8025 - fi
8026 -}
8027 -
8028 -# Install nvidia library:
8029 -# the first parameter is the library to install
8030 -# the second parameter is the provided soversion
8031 -# the third parameter is the target directory if it is not /usr/lib
8032 -donvidia() {
8033 - # Full path to library
8034 - nv_LIB="${1}"
8035 -
8036 - # SOVER to use
8037 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
8038 -
8039 - # Where to install
8040 - nv_DEST="${2}"
8041 -
8042 - # Get just the library name
8043 - nv_LIBNAME=$(basename "${nv_LIB}")
8044 -
8045 - if [[ "${nv_DEST}" ]]; then
8046 - exeinto ${nv_DEST}
8047 - action="doexe"
8048 - else
8049 - nv_DEST="/usr/$(get_libdir)"
8050 - action="dolib.so"
8051 - fi
8052 -
8053 - # Install the library
8054 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
8055 -
8056 - # If the library has a SONAME and SONAME does not match the library name,
8057 - # then we need to create a symlink
8058 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
8059 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
8060 - || die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
8061 - fi
8062 -
8063 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
8064 - || die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
8065 -}
8066 -
8067 -src_install() {
8068 - if use driver && use kernel_linux; then
8069 - linux-mod_src_install
8070 -
8071 - # Add the aliases
8072 - # This file is tweaked with the appropriate video group in
8073 - # pkg_preinst, see bug #491414
8074 - insinto /etc/modprobe.d
8075 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
8076 - doins "${FILESDIR}"/nvidia-rmmod.conf
8077 -
8078 - # Ensures that our device nodes are created when not using X
8079 - exeinto "$(get_udevdir)"
8080 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
8081 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
8082 - elif use kernel_FreeBSD; then
8083 - if use x86-fbsd; then
8084 - insinto /boot/modules
8085 - doins "${S}/src/nvidia.kld"
8086 - fi
8087 -
8088 - exeinto /boot/modules
8089 - doexe "${S}/src/nvidia.ko"
8090 - fi
8091 -
8092 - # NVIDIA kernel <-> userspace driver config lib
8093 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
8094 -
8095 - # NVIDIA framebuffer capture library
8096 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
8097 -
8098 - # NVIDIA video encode/decode <-> CUDA
8099 - if use kernel_linux; then
8100 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
8101 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
8102 - fi
8103 -
8104 - if use X; then
8105 - # Xorg DDX driver
8106 - insinto /usr/$(get_libdir)/xorg/modules/drivers
8107 - doins ${NV_X11}/nvidia_drv.so
8108 -
8109 - # Xorg GLX driver
8110 - donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
8111 - /usr/$(get_libdir)/opengl/nvidia/extensions
8112 -
8113 - # Xorg nvidia.conf
8114 - if has_version '>=x11-base/xorg-server-1.16'; then
8115 - insinto /usr/share/X11/xorg.conf.d
8116 - newins {,50-}nvidia-drm-outputclass.conf
8117 - fi
8118 - fi
8119 -
8120 - # OpenCL ICD for NVIDIA
8121 - if use kernel_linux; then
8122 - insinto /etc/OpenCL/vendors
8123 - doins ${NV_OBJ}/nvidia.icd
8124 - fi
8125 -
8126 - # Documentation
8127 - dohtml ${NV_DOC}/html/*
8128 - if use kernel_FreeBSD; then
8129 - dodoc "${NV_DOC}/README"
8130 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
8131 - use tools && doman "${NV_MAN}/nvidia-settings.1"
8132 - else
8133 - # Docs
8134 - newdoc "${NV_DOC}/README.txt" README
8135 - dodoc "${NV_DOC}/NVIDIA_Changelog"
8136 - doman "${NV_MAN}/nvidia-smi.1.gz"
8137 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
8138 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
8139 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
8140 - fi
8141 -
8142 - # Helper Apps
8143 - exeinto /opt/bin/
8144 -
8145 - if use X; then
8146 - doexe ${NV_OBJ}/nvidia-xconfig
8147 - fi
8148 -
8149 - if use kernel_linux; then
8150 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
8151 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
8152 - doexe ${NV_OBJ}/nvidia-debugdump
8153 - doexe ${NV_OBJ}/nvidia-persistenced
8154 - doexe ${NV_OBJ}/nvidia-smi
8155 -
8156 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
8157 - doexe ${NV_OBJ}/nvidia-modprobe
8158 - fowners root:video /opt/bin/nvidia-modprobe
8159 - fperms 4710 /opt/bin/nvidia-modprobe
8160 - dosym /{opt,usr}/bin/nvidia-modprobe
8161 -
8162 - doman nvidia-cuda-mps-control.1.gz
8163 - doman nvidia-modprobe.1.gz
8164 - doman nvidia-persistenced.1.gz
8165 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
8166 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
8167 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
8168 - fi
8169 -
8170 - if use tools; then
8171 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
8172 - DESTDIR="${D}" \
8173 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
8174 - LIBDIR="${D}/usr/$(get_libdir)" \
8175 - PREFIX=/usr \
8176 - NV_USE_BUNDLED_LIBJANSSON=0 \
8177 - install
8178 -
8179 - if use static-libs; then
8180 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
8181 -
8182 - insinto /usr/include/NVCtrl
8183 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
8184 - fi
8185 -
8186 - insinto /usr/share/nvidia/
8187 - doins nvidia-application-profiles-${PV}-key-documentation
8188 -
8189 - insinto /etc/nvidia
8190 - newins \
8191 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
8192 -
8193 - # There is no icon in the FreeBSD tarball.
8194 - use kernel_FreeBSD || \
8195 - doicon ${NV_OBJ}/nvidia-settings.png
8196 -
8197 - domenu "${FILESDIR}"/nvidia-settings.desktop
8198 -
8199 - exeinto /etc/X11/xinit/xinitrc.d
8200 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
8201 - fi
8202 -
8203 - dobin ${NV_OBJ}/nvidia-bug-report.sh
8204 -
8205 - if has_multilib_profile && use multilib; then
8206 - local OABI=${ABI}
8207 - for ABI in $(get_install_abis); do
8208 - src_install-libs
8209 - done
8210 - ABI=${OABI}
8211 - unset OABI
8212 - else
8213 - src_install-libs
8214 - fi
8215 -
8216 - is_final_abi || die "failed to iterate through all ABIs"
8217 -
8218 - readme.gentoo_create_doc
8219 -}
8220 -
8221 -src_install-libs() {
8222 - local inslibdir=$(get_libdir)
8223 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
8224 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
8225 - local libdir=${NV_OBJ}
8226 -
8227 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
8228 - libdir=${NV_OBJ}/32
8229 - fi
8230 -
8231 - if use X; then
8232 - NV_GLX_LIBRARIES=(
8233 - "libEGL.so.1 ${GL_ROOT}"
8234 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
8235 - "libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
8236 - "libGLESv1_CM.so.1 ${GL_ROOT}"
8237 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
8238 - "libGLESv2.so.2 ${GL_ROOT}"
8239 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
8240 - "libGLX.so.0 ${GL_ROOT}"
8241 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
8242 - "libGLdispatch.so.0 ${GL_ROOT}"
8243 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
8244 - "libOpenGL.so.0 ${GL_ROOT}"
8245 - "libcuda.so.${NV_SOVER}"
8246 - "libnvcuvid.so.${NV_SOVER}"
8247 - "libnvidia-compiler.so.${NV_SOVER}"
8248 - "libnvidia-eglcore.so.${NV_SOVER}"
8249 - "libnvidia-encode.so.${NV_SOVER}"
8250 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
8251 - "libnvidia-fbc.so.${NV_SOVER}"
8252 - "libnvidia-glcore.so.${NV_SOVER}"
8253 - "libnvidia-glsi.so.${NV_SOVER}"
8254 - "libnvidia-ifr.so.${NV_SOVER}"
8255 - "libnvidia-opencl.so.${NV_SOVER}"
8256 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
8257 - "libvdpau_nvidia.so.${NV_SOVER}"
8258 - )
8259 -
8260 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
8261 - then
8262 - NV_GLX_LIBRARIES+=( "libnvidia-wfb.so.${NV_SOVER}" )
8263 - fi
8264 -
8265 - if use kernel_FreeBSD; then
8266 - NV_GLX_LIBRARIES+=( "libnvidia-tls.so.${NV_SOVER}" )
8267 - fi
8268 -
8269 - if use kernel_linux; then
8270 - NV_GLX_LIBRARIES+=(
8271 - "libnvidia-ml.so.${NV_SOVER}"
8272 - "tls/libnvidia-tls.so.${NV_SOVER}"
8273 - )
8274 - fi
8275 -
8276 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
8277 - donvidia ${libdir}/${NV_LIB}
8278 - done
8279 - fi
8280 -}
8281 -
8282 -pkg_preinst() {
8283 - if use driver && use kernel_linux; then
8284 - linux-mod_pkg_preinst
8285 -
8286 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
8287 - if [ -z "${videogroup}" ]; then
8288 - eerror "Failed to determine the video group gid"
8289 - die "Failed to determine the video group gid"
8290 - else
8291 - sed -i \
8292 - -e "s:PACKAGE:${PF}:g" \
8293 - -e "s:VIDEOGID:${videogroup}:" \
8294 - "${D}"/etc/modprobe.d/nvidia.conf || die
8295 - fi
8296 - fi
8297 -
8298 - # Clean the dynamic libGL stuff's home to ensure
8299 - # we dont have stale libs floating around
8300 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
8301 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
8302 - fi
8303 - # Make sure we nuke the old nvidia-glx's env.d file
8304 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
8305 - rm -f "${ROOT}"/etc/env.d/09nvidia
8306 - fi
8307 -}
8308 -
8309 -pkg_postinst() {
8310 - use driver && use kernel_linux && linux-mod_pkg_postinst
8311 -
8312 - # Switch to the nvidia implementation
8313 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
8314 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
8315 -
8316 - readme.gentoo_print_elog
8317 -
8318 - if ! use X; then
8319 - elog "You have elected to not install the X.org driver. Along with"
8320 - elog "this the OpenGL libraries and VDPAU libraries were not"
8321 - elog "installed. Additionally, once the driver is loaded your card"
8322 - elog "and fan will run at max speed which may not be desirable."
8323 - elog "Use the 'nvidia-smi' init script to have your card and fan"
8324 - elog "speed scale appropriately."
8325 - elog
8326 - fi
8327 - if ! use tools; then
8328 - elog "USE=tools controls whether the nvidia-settings application"
8329 - elog "is installed. If you would like to use it, enable that"
8330 - elog "flag and re-emerge this ebuild. Optionally you can install"
8331 - elog "media-video/nvidia-settings"
8332 - elog
8333 - fi
8334 -}
8335 -
8336 -pkg_prerm() {
8337 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
8338 -}
8339 -
8340 -pkg_postrm() {
8341 - use driver && use kernel_linux && linux-mod_pkg_postrm
8342 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
8343 -}
8344
8345 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-364.19-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-364.19-r1.ebuild
8346 deleted file mode 100644
8347 index 5ce6ae9fa3f..00000000000
8348 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-364.19-r1.ebuild
8349 +++ /dev/null
8350 @@ -1,547 +0,0 @@
8351 -# Copyright 1999-2016 Gentoo Foundation
8352 -# Distributed under the terms of the GNU General Public License v2
8353 -
8354 -EAPI=5
8355 -
8356 -inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
8357 - portability toolchain-funcs unpacker user udev
8358 -
8359 -NV_URI="http://us.download.nvidia.com/XFree86/"
8360 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
8361 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
8362 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
8363 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
8364 -
8365 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
8366 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
8367 -SRC_URI="
8368 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
8369 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
8370 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
8371 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
8372 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
8373 -"
8374 -
8375 -LICENSE="GPL-2 NVIDIA-r2"
8376 -SLOT="0/${PV%.*}"
8377 -KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
8378 -RESTRICT="bindist mirror"
8379 -EMULTILIB_PKG="true"
8380 -
8381 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
8382 -REQUIRED_USE="
8383 - tools? ( X )
8384 - static-libs? ( tools )
8385 -"
8386 -
8387 -COMMON="
8388 - app-eselect/eselect-opencl
8389 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
8390 - tools? (
8391 - dev-libs/atk
8392 - dev-libs/glib:2
8393 - dev-libs/jansson
8394 - gtk3? ( x11-libs/gtk+:3 )
8395 - x11-libs/cairo
8396 - x11-libs/gdk-pixbuf[X]
8397 - x11-libs/gtk+:2
8398 - x11-libs/libX11
8399 - x11-libs/libXext
8400 - x11-libs/libXrandr
8401 - x11-libs/libXv
8402 - x11-libs/libXxf86vm
8403 - x11-libs/pango[X]
8404 - )
8405 - X? (
8406 - >=app-eselect/eselect-opengl-1.0.9
8407 - app-misc/pax-utils
8408 - )
8409 -"
8410 -DEPEND="
8411 - ${COMMON}
8412 - kernel_linux? ( virtual/linux-sources )
8413 -"
8414 -RDEPEND="
8415 - ${COMMON}
8416 - acpi? ( sys-power/acpid )
8417 - tools? ( !media-video/nvidia-settings )
8418 - wayland? ( dev-libs/wayland )
8419 - X? (
8420 - <x11-base/xorg-server-1.18.99:=
8421 - >=x11-libs/libvdpau-1.0
8422 - multilib? (
8423 - >=x11-libs/libX11-1.6.2[abi_x86_32]
8424 - >=x11-libs/libXext-1.3.2[abi_x86_32]
8425 - )
8426 - )
8427 -"
8428 -
8429 -QA_PREBUILT="opt/* usr/lib*"
8430 -
8431 -S=${WORKDIR}/
8432 -
8433 -pkg_pretend() {
8434 - if use amd64 && has_multilib_profile && \
8435 - [ "${DEFAULT_ABI}" != "amd64" ]; then
8436 - eerror "This ebuild doesn't currently support changing your default ABI"
8437 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
8438 - fi
8439 -
8440 - if use kernel_linux && kernel_is ge 4 6; then
8441 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
8442 - ewarn "which are limited to the following kernels:"
8443 - ewarn "<sys-kernel/gentoo-sources-4.6"
8444 - ewarn "<sys-kernel/vanilla-sources-4.6"
8445 - ewarn ""
8446 - ewarn "You are free to utilize epatch_user to provide whatever"
8447 - ewarn "support you feel is appropriate, but will not receive"
8448 - ewarn "support as a result of those changes."
8449 - ewarn ""
8450 - ewarn "Do not file a bug report about this."
8451 - ewarn ""
8452 - fi
8453 -
8454 - # Since Nvidia ships many different series of drivers, we need to give the user
8455 - # some kind of guidance as to what version they should install. This tries
8456 - # to point the user in the right direction but can't be perfect. check
8457 - # nvidia-driver.eclass
8458 - nvidia-driver-check-warning
8459 -
8460 - # Kernel features/options to check for
8461 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
8462 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
8463 -
8464 - # Now do the above checks
8465 - use kernel_linux && check_extra_config
8466 -}
8467 -
8468 -pkg_setup() {
8469 - # try to turn off distcc and ccache for people that have a problem with it
8470 - export DISTCC_DISABLE=1
8471 - export CCACHE_DISABLE=1
8472 -
8473 - if use driver && use kernel_linux; then
8474 - MODULE_NAMES="nvidia(video:${S}/kernel)"
8475 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
8476 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
8477 -
8478 - # This needs to run after MODULE_NAMES (so that the eclass checks
8479 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
8480 - # is set (so that KV_DIR is populated).
8481 - linux-mod_pkg_setup
8482 -
8483 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
8484 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
8485 -
8486 - # linux-mod_src_compile calls set_arch_to_kernel, which
8487 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
8488 - # expects x86_64 or i386 and then converts it to x86
8489 - # later on in the build process
8490 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
8491 - fi
8492 -
8493 - if use kernel_linux && kernel_is lt 2 6 9; then
8494 - eerror "You must build this against 2.6.9 or higher kernels."
8495 - fi
8496 -
8497 - # set variables to where files are in the package structure
8498 - if use kernel_FreeBSD; then
8499 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
8500 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
8501 - NV_DOC="${S}/doc"
8502 - NV_OBJ="${S}/obj"
8503 - NV_SRC="${S}/src"
8504 - NV_MAN="${S}/x11/man"
8505 - NV_X11="${S}/obj"
8506 - NV_SOVER=1
8507 - elif use kernel_linux; then
8508 - NV_DOC="${S}"
8509 - NV_OBJ="${S}"
8510 - NV_SRC="${S}/kernel"
8511 - NV_MAN="${S}"
8512 - NV_X11="${S}"
8513 - NV_SOVER=${PV}
8514 - else
8515 - die "Could not determine proper NVIDIA package"
8516 - fi
8517 -}
8518 -
8519 -src_prepare() {
8520 - if use pax_kernel; then
8521 - ewarn "Using PAX patches is not supported. You will be asked to"
8522 - ewarn "use a standard kernel should you have issues. Should you"
8523 - ewarn "need support with these patches, contact the PaX team."
8524 - epatch "${FILESDIR}"/${PN}-364.12-pax.patch
8525 - fi
8526 -
8527 - # Allow user patches so they can support RC kernels and whatever else
8528 - epatch_user
8529 -}
8530 -
8531 -src_compile() {
8532 - # This is already the default on Linux, as there's no toplevel Makefile, but
8533 - # on FreeBSD there's one and triggers the kernel module build, as we install
8534 - # it by itself, pass this.
8535 -
8536 - cd "${NV_SRC}"
8537 - if use kernel_FreeBSD; then
8538 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
8539 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
8540 - elif use driver && use kernel_linux; then
8541 - MAKEOPTS=-j1 linux-mod_src_compile
8542 - fi
8543 -
8544 - if use tools; then
8545 - emake -C "${S}"/nvidia-settings-${PV}/src \
8546 - AR="$(tc-getAR)" \
8547 - CC="$(tc-getCC)" \
8548 - LIBDIR="$(get_libdir)" \
8549 - NV_VERBOSE=1 \
8550 - RANLIB="$(tc-getRANLIB)" \
8551 - DO_STRIP= \
8552 - build-xnvctrl
8553 -
8554 - emake -C "${S}"/nvidia-settings-${PV}/src \
8555 - CC="$(tc-getCC)" \
8556 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
8557 - LD="$(tc-getCC)" \
8558 - LIBDIR="$(get_libdir)" \
8559 - NVML_ENABLED=0 \
8560 - NV_USE_BUNDLED_LIBJANSSON=0 \
8561 - NV_VERBOSE=1 \
8562 - DO_STRIP=
8563 - fi
8564 -}
8565 -
8566 -# Install nvidia library:
8567 -# the first parameter is the library to install
8568 -# the second parameter is the provided soversion
8569 -# the third parameter is the target directory if it is not /usr/lib
8570 -donvidia() {
8571 - # Full path to library
8572 - nv_LIB="${1}"
8573 -
8574 - # SOVER to use
8575 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
8576 -
8577 - # Where to install
8578 - nv_DEST="${2}"
8579 -
8580 - # Get just the library name
8581 - nv_LIBNAME=$(basename "${nv_LIB}")
8582 -
8583 - if [[ "${nv_DEST}" ]]; then
8584 - exeinto ${nv_DEST}
8585 - action="doexe"
8586 - else
8587 - nv_DEST="/usr/$(get_libdir)"
8588 - action="dolib.so"
8589 - fi
8590 -
8591 - # Install the library
8592 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
8593 -
8594 - # If the library has a SONAME and SONAME does not match the library name,
8595 - # then we need to create a symlink
8596 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
8597 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
8598 - || die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
8599 - fi
8600 -
8601 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
8602 - || die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
8603 -}
8604 -
8605 -src_install() {
8606 - if use driver && use kernel_linux; then
8607 - linux-mod_src_install
8608 -
8609 - # Add the aliases
8610 - # This file is tweaked with the appropriate video group in
8611 - # pkg_preinst, see bug #491414
8612 - insinto /etc/modprobe.d
8613 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
8614 - doins "${FILESDIR}"/nvidia-rmmod.conf
8615 -
8616 - # Ensures that our device nodes are created when not using X
8617 - exeinto "$(get_udevdir)"
8618 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
8619 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
8620 - elif use kernel_FreeBSD; then
8621 - if use x86-fbsd; then
8622 - insinto /boot/modules
8623 - doins "${S}/src/nvidia.kld"
8624 - fi
8625 -
8626 - exeinto /boot/modules
8627 - doexe "${S}/src/nvidia.ko"
8628 - fi
8629 -
8630 - # NVIDIA kernel <-> userspace driver config lib
8631 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
8632 -
8633 - # NVIDIA framebuffer capture library
8634 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
8635 -
8636 - # NVIDIA video encode/decode <-> CUDA
8637 - if use kernel_linux; then
8638 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
8639 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
8640 - fi
8641 -
8642 - if use X; then
8643 - # Xorg DDX driver
8644 - insinto /usr/$(get_libdir)/xorg/modules/drivers
8645 - doins ${NV_X11}/nvidia_drv.so
8646 -
8647 - # Xorg GLX driver
8648 - donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
8649 - /usr/$(get_libdir)/opengl/nvidia/extensions
8650 -
8651 - # Xorg nvidia.conf
8652 - if has_version '>=x11-base/xorg-server-1.16'; then
8653 - insinto /usr/share/X11/xorg.conf.d
8654 - newins {,50-}nvidia-drm-outputclass.conf
8655 - fi
8656 - fi
8657 -
8658 - # OpenCL ICD for NVIDIA
8659 - if use kernel_linux; then
8660 - insinto /etc/OpenCL/vendors
8661 - doins ${NV_OBJ}/nvidia.icd
8662 - fi
8663 -
8664 - # Documentation
8665 - dohtml ${NV_DOC}/html/*
8666 - if use kernel_FreeBSD; then
8667 - dodoc "${NV_DOC}/README"
8668 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
8669 - use tools && doman "${NV_MAN}/nvidia-settings.1"
8670 - else
8671 - # Docs
8672 - newdoc "${NV_DOC}/README.txt" README
8673 - dodoc "${NV_DOC}/NVIDIA_Changelog"
8674 - doman "${NV_MAN}/nvidia-smi.1.gz"
8675 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
8676 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
8677 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
8678 - fi
8679 -
8680 - # Helper Apps
8681 - exeinto /opt/bin/
8682 -
8683 - if use X; then
8684 - doexe ${NV_OBJ}/nvidia-xconfig
8685 -
8686 - insinto /etc/vulkan/icd.d
8687 - doins nvidia_icd.json
8688 - fi
8689 -
8690 - if use kernel_linux; then
8691 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
8692 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
8693 - doexe ${NV_OBJ}/nvidia-debugdump
8694 - doexe ${NV_OBJ}/nvidia-persistenced
8695 - doexe ${NV_OBJ}/nvidia-smi
8696 -
8697 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
8698 - doexe ${NV_OBJ}/nvidia-modprobe
8699 - fowners root:video /opt/bin/nvidia-modprobe
8700 - fperms 4710 /opt/bin/nvidia-modprobe
8701 - dosym /{opt,usr}/bin/nvidia-modprobe
8702 -
8703 - doman nvidia-cuda-mps-control.1.gz
8704 - doman nvidia-modprobe.1.gz
8705 - doman nvidia-persistenced.1.gz
8706 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
8707 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
8708 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
8709 - fi
8710 -
8711 - if use tools; then
8712 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
8713 - DESTDIR="${D}" \
8714 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
8715 - LIBDIR="${D}/usr/$(get_libdir)" \
8716 - NV_USE_BUNDLED_LIBJANSSON=0 \
8717 - NV_VERBOSE=1 \
8718 - PREFIX=/usr \
8719 - DO_STRIP= \
8720 - install
8721 -
8722 - if use static-libs; then
8723 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
8724 -
8725 - insinto /usr/include/NVCtrl
8726 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
8727 - fi
8728 -
8729 - insinto /usr/share/nvidia/
8730 - doins nvidia-application-profiles-${PV}-key-documentation
8731 -
8732 - insinto /etc/nvidia
8733 - newins \
8734 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
8735 -
8736 - # There is no icon in the FreeBSD tarball.
8737 - use kernel_FreeBSD || \
8738 - doicon ${NV_OBJ}/nvidia-settings.png
8739 -
8740 - domenu "${FILESDIR}"/nvidia-settings.desktop
8741 -
8742 - exeinto /etc/X11/xinit/xinitrc.d
8743 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
8744 - fi
8745 -
8746 - dobin ${NV_OBJ}/nvidia-bug-report.sh
8747 -
8748 - if has_multilib_profile && use multilib; then
8749 - local OABI=${ABI}
8750 - for ABI in $(get_install_abis); do
8751 - src_install-libs
8752 - done
8753 - ABI=${OABI}
8754 - unset OABI
8755 - else
8756 - src_install-libs
8757 - fi
8758 -
8759 - is_final_abi || die "failed to iterate through all ABIs"
8760 -
8761 - readme.gentoo_create_doc
8762 -}
8763 -
8764 -src_install-libs() {
8765 - local inslibdir=$(get_libdir)
8766 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
8767 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
8768 - local libdir=${NV_OBJ}
8769 -
8770 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
8771 - libdir=${NV_OBJ}/32
8772 - fi
8773 -
8774 - if use X; then
8775 - NV_GLX_LIBRARIES=(
8776 - "libEGL.so.1 ${GL_ROOT}"
8777 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
8778 - "libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
8779 - "libGLESv1_CM.so.1 ${GL_ROOT}"
8780 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
8781 - "libGLESv2.so.2 ${GL_ROOT}"
8782 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
8783 - "libGLX.so.0 ${GL_ROOT}"
8784 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
8785 - "libGLdispatch.so.0 ${GL_ROOT}"
8786 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
8787 - "libOpenGL.so.0 ${GL_ROOT}"
8788 - "libcuda.so.${NV_SOVER}"
8789 - "libnvcuvid.so.${NV_SOVER}"
8790 - "libnvidia-compiler.so.${NV_SOVER}"
8791 - "libnvidia-eglcore.so.${NV_SOVER}"
8792 - "libnvidia-encode.so.${NV_SOVER}"
8793 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
8794 - "libnvidia-fbc.so.${NV_SOVER}"
8795 - "libnvidia-glcore.so.${NV_SOVER}"
8796 - "libnvidia-glsi.so.${NV_SOVER}"
8797 - "libnvidia-ifr.so.${NV_SOVER}"
8798 - "libnvidia-opencl.so.${NV_SOVER}"
8799 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
8800 - "libvdpau_nvidia.so.${NV_SOVER}"
8801 - )
8802 -
8803 - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
8804 - then
8805 - NV_GLX_LIBRARIES+=(
8806 - "libnvidia-egl-wayland.so.${NV_SOVER}"
8807 - )
8808 - fi
8809 -
8810 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
8811 - then
8812 - NV_GLX_LIBRARIES+=(
8813 - "libnvidia-wfb.so.${NV_SOVER}"
8814 - )
8815 - fi
8816 -
8817 - if use kernel_FreeBSD; then
8818 - NV_GLX_LIBRARIES+=(
8819 - "libnvidia-tls.so.${NV_SOVER}"
8820 - )
8821 - fi
8822 -
8823 - if use kernel_linux; then
8824 - NV_GLX_LIBRARIES+=(
8825 - "libnvidia-ml.so.${NV_SOVER}"
8826 - "tls/libnvidia-tls.so.${NV_SOVER}"
8827 - )
8828 - fi
8829 -
8830 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
8831 - donvidia ${libdir}/${NV_LIB}
8832 - done
8833 - fi
8834 -}
8835 -
8836 -pkg_preinst() {
8837 - if use driver && use kernel_linux; then
8838 - linux-mod_pkg_preinst
8839 -
8840 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
8841 - if [ -z "${videogroup}" ]; then
8842 - eerror "Failed to determine the video group gid"
8843 - die "Failed to determine the video group gid"
8844 - else
8845 - sed -i \
8846 - -e "s:PACKAGE:${PF}:g" \
8847 - -e "s:VIDEOGID:${videogroup}:" \
8848 - "${D}"/etc/modprobe.d/nvidia.conf || die
8849 - fi
8850 - fi
8851 -
8852 - # Clean the dynamic libGL stuff's home to ensure
8853 - # we dont have stale libs floating around
8854 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
8855 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
8856 - fi
8857 - # Make sure we nuke the old nvidia-glx's env.d file
8858 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
8859 - rm -f "${ROOT}"/etc/env.d/09nvidia
8860 - fi
8861 -}
8862 -
8863 -pkg_postinst() {
8864 - use driver && use kernel_linux && linux-mod_pkg_postinst
8865 -
8866 - # Switch to the nvidia implementation
8867 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
8868 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
8869 -
8870 - readme.gentoo_print_elog
8871 -
8872 - if ! use X; then
8873 - elog "You have elected to not install the X.org driver. Along with"
8874 - elog "this the OpenGL libraries and VDPAU libraries were not"
8875 - elog "installed. Additionally, once the driver is loaded your card"
8876 - elog "and fan will run at max speed which may not be desirable."
8877 - elog "Use the 'nvidia-smi' init script to have your card and fan"
8878 - elog "speed scale appropriately."
8879 - elog
8880 - fi
8881 - if ! use tools; then
8882 - elog "USE=tools controls whether the nvidia-settings application"
8883 - elog "is installed. If you would like to use it, enable that"
8884 - elog "flag and re-emerge this ebuild. Optionally you can install"
8885 - elog "media-video/nvidia-settings"
8886 - elog
8887 - fi
8888 -}
8889 -
8890 -pkg_prerm() {
8891 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
8892 -}
8893 -
8894 -pkg_postrm() {
8895 - use driver && use kernel_linux && linux-mod_pkg_postrm
8896 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
8897 -}
8898
8899 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-364.19-r2.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-364.19-r2.ebuild
8900 deleted file mode 100644
8901 index a0179c22bb6..00000000000
8902 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-364.19-r2.ebuild
8903 +++ /dev/null
8904 @@ -1,548 +0,0 @@
8905 -# Copyright 1999-2017 Gentoo Foundation
8906 -# Distributed under the terms of the GNU General Public License v2
8907 -
8908 -EAPI=6
8909 -
8910 -inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
8911 - portability toolchain-funcs unpacker user udev
8912 -
8913 -NV_URI="http://us.download.nvidia.com/XFree86/"
8914 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
8915 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
8916 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
8917 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
8918 -
8919 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
8920 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
8921 -SRC_URI="
8922 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
8923 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
8924 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
8925 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
8926 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
8927 -"
8928 -
8929 -LICENSE="GPL-2 NVIDIA-r2"
8930 -SLOT="0/${PV%.*}"
8931 -KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
8932 -RESTRICT="bindist mirror"
8933 -EMULTILIB_PKG="true"
8934 -
8935 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
8936 -REQUIRED_USE="
8937 - tools? ( X )
8938 - static-libs? ( tools )
8939 -"
8940 -
8941 -COMMON="
8942 - app-eselect/eselect-opencl
8943 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
8944 - tools? (
8945 - dev-libs/atk
8946 - dev-libs/glib:2
8947 - dev-libs/jansson
8948 - gtk3? (
8949 - x11-libs/gtk+:3
8950 - )
8951 - x11-libs/cairo
8952 - x11-libs/gdk-pixbuf[X]
8953 - x11-libs/gtk+:2
8954 - x11-libs/libX11
8955 - x11-libs/libXext
8956 - x11-libs/libXrandr
8957 - x11-libs/libXv
8958 - x11-libs/libXxf86vm
8959 - x11-libs/pango[X]
8960 - )
8961 - X? (
8962 - >=app-eselect/eselect-opengl-1.0.9
8963 - app-misc/pax-utils
8964 - )
8965 -"
8966 -DEPEND="
8967 - ${COMMON}
8968 - kernel_linux? ( virtual/linux-sources )
8969 -"
8970 -RDEPEND="
8971 - ${COMMON}
8972 - acpi? ( sys-power/acpid )
8973 - tools? ( !media-video/nvidia-settings )
8974 - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
8975 - X? (
8976 - <x11-base/xorg-server-1.18.99:=
8977 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
8978 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
8979 - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
8980 - sys-libs/zlib[${MULTILIB_USEDEP}]
8981 - )
8982 -"
8983 -
8984 -QA_PREBUILT="opt/* usr/lib*"
8985 -
8986 -S=${WORKDIR}/
8987 -
8988 -pkg_pretend() {
8989 - if use amd64 && has_multilib_profile && \
8990 - [ "${DEFAULT_ABI}" != "amd64" ]; then
8991 - eerror "This ebuild doesn't currently support changing your default ABI"
8992 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
8993 - fi
8994 -
8995 - if use kernel_linux && kernel_is ge 4 6; then
8996 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
8997 - ewarn "which are limited to the following kernels:"
8998 - ewarn "<sys-kernel/gentoo-sources-4.6"
8999 - ewarn "<sys-kernel/vanilla-sources-4.6"
9000 - ewarn ""
9001 - ewarn "You are free to utilize eapply_user to provide whatever"
9002 - ewarn "support you feel is appropriate, but will not receive"
9003 - ewarn "support as a result of those changes."
9004 - ewarn ""
9005 - ewarn "Do not file a bug report about this."
9006 - ewarn ""
9007 - fi
9008 -
9009 - # Since Nvidia ships many different series of drivers, we need to give the user
9010 - # some kind of guidance as to what version they should install. This tries
9011 - # to point the user in the right direction but can't be perfect. check
9012 - # nvidia-driver.eclass
9013 - nvidia-driver-check-warning
9014 -
9015 - # Kernel features/options to check for
9016 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
9017 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
9018 -
9019 - # Now do the above checks
9020 - use kernel_linux && check_extra_config
9021 -}
9022 -
9023 -pkg_setup() {
9024 - # try to turn off distcc and ccache for people that have a problem with it
9025 - export DISTCC_DISABLE=1
9026 - export CCACHE_DISABLE=1
9027 -
9028 - if use driver && use kernel_linux; then
9029 - MODULE_NAMES="nvidia(video:${S}/kernel)"
9030 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
9031 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
9032 -
9033 - # This needs to run after MODULE_NAMES (so that the eclass checks
9034 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
9035 - # is set (so that KV_DIR is populated).
9036 - linux-mod_pkg_setup
9037 -
9038 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
9039 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
9040 -
9041 - # linux-mod_src_compile calls set_arch_to_kernel, which
9042 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
9043 - # expects x86_64 or i386 and then converts it to x86
9044 - # later on in the build process
9045 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
9046 - fi
9047 -
9048 - if use kernel_linux && kernel_is lt 2 6 9; then
9049 - eerror "You must build this against 2.6.9 or higher kernels."
9050 - fi
9051 -
9052 - # set variables to where files are in the package structure
9053 - if use kernel_FreeBSD; then
9054 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
9055 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
9056 - NV_DOC="${S}/doc"
9057 - NV_OBJ="${S}/obj"
9058 - NV_SRC="${S}/src"
9059 - NV_MAN="${S}/x11/man"
9060 - NV_X11="${S}/obj"
9061 - NV_SOVER=1
9062 - elif use kernel_linux; then
9063 - NV_DOC="${S}"
9064 - NV_OBJ="${S}"
9065 - NV_SRC="${S}/kernel"
9066 - NV_MAN="${S}"
9067 - NV_X11="${S}"
9068 - NV_SOVER=${PV}
9069 - else
9070 - die "Could not determine proper NVIDIA package"
9071 - fi
9072 -}
9073 -
9074 -src_prepare() {
9075 - if use pax_kernel; then
9076 - ewarn "Using PAX patches is not supported. You will be asked to"
9077 - ewarn "use a standard kernel should you have issues. Should you"
9078 - ewarn "need support with these patches, contact the PaX team."
9079 - eapply "${FILESDIR}"/${PN}-364.12-pax.patch
9080 - fi
9081 -
9082 - # Allow user patches so they can support RC kernels and whatever else
9083 - eapply_user
9084 -}
9085 -
9086 -src_compile() {
9087 - # This is already the default on Linux, as there's no toplevel Makefile, but
9088 - # on FreeBSD there's one and triggers the kernel module build, as we install
9089 - # it by itself, pass this.
9090 -
9091 - cd "${NV_SRC}"
9092 - if use kernel_FreeBSD; then
9093 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
9094 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
9095 - elif use driver && use kernel_linux; then
9096 - MAKEOPTS=-j1 linux-mod_src_compile
9097 - fi
9098 -
9099 - if use tools; then
9100 - emake -C "${S}"/nvidia-settings-${PV}/src \
9101 - AR="$(tc-getAR)" \
9102 - CC="$(tc-getCC)" \
9103 - LIBDIR="$(get_libdir)" \
9104 - NV_VERBOSE=1 \
9105 - RANLIB="$(tc-getRANLIB)" \
9106 - DO_STRIP= \
9107 - build-xnvctrl
9108 -
9109 - emake -C "${S}"/nvidia-settings-${PV}/src \
9110 - CC="$(tc-getCC)" \
9111 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
9112 - LD="$(tc-getCC)" \
9113 - LIBDIR="$(get_libdir)" \
9114 - NVML_ENABLED=0 \
9115 - NV_USE_BUNDLED_LIBJANSSON=0 \
9116 - NV_VERBOSE=1 \
9117 - DO_STRIP=
9118 - fi
9119 -}
9120 -
9121 -# Install nvidia library:
9122 -# the first parameter is the library to install
9123 -# the second parameter is the provided soversion
9124 -# the third parameter is the target directory if it is not /usr/lib
9125 -donvidia() {
9126 - # Full path to library
9127 - nv_LIB="${1}"
9128 -
9129 - # SOVER to use
9130 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
9131 -
9132 - # Where to install
9133 - nv_DEST="${2}"
9134 -
9135 - # Get just the library name
9136 - nv_LIBNAME=$(basename "${nv_LIB}")
9137 -
9138 - if [[ "${nv_DEST}" ]]; then
9139 - exeinto ${nv_DEST}
9140 - action="doexe"
9141 - else
9142 - nv_DEST="/usr/$(get_libdir)"
9143 - action="dolib.so"
9144 - fi
9145 -
9146 - # Install the library
9147 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
9148 -
9149 - # If the library has a SONAME and SONAME does not match the library name,
9150 - # then we need to create a symlink
9151 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
9152 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
9153 - || die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
9154 - fi
9155 -
9156 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
9157 - || die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
9158 -}
9159 -
9160 -src_install() {
9161 - if use driver && use kernel_linux; then
9162 - linux-mod_src_install
9163 -
9164 - # Add the aliases
9165 - # This file is tweaked with the appropriate video group in
9166 - # pkg_preinst, see bug #491414
9167 - insinto /etc/modprobe.d
9168 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
9169 - doins "${FILESDIR}"/nvidia-rmmod.conf
9170 -
9171 - # Ensures that our device nodes are created when not using X
9172 - exeinto "$(get_udevdir)"
9173 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
9174 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
9175 - elif use kernel_FreeBSD; then
9176 - if use x86-fbsd; then
9177 - insinto /boot/modules
9178 - doins "${S}/src/nvidia.kld"
9179 - fi
9180 -
9181 - exeinto /boot/modules
9182 - doexe "${S}/src/nvidia.ko"
9183 - fi
9184 -
9185 - # NVIDIA kernel <-> userspace driver config lib
9186 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
9187 -
9188 - # NVIDIA framebuffer capture library
9189 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
9190 -
9191 - # NVIDIA video encode/decode <-> CUDA
9192 - if use kernel_linux; then
9193 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
9194 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
9195 - fi
9196 -
9197 - if use X; then
9198 - # Xorg DDX driver
9199 - insinto /usr/$(get_libdir)/xorg/modules/drivers
9200 - doins ${NV_X11}/nvidia_drv.so
9201 -
9202 - # Xorg GLX driver
9203 - donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
9204 - /usr/$(get_libdir)/opengl/nvidia/extensions
9205 -
9206 - # Xorg nvidia.conf
9207 - if has_version '>=x11-base/xorg-server-1.16'; then
9208 - insinto /usr/share/X11/xorg.conf.d
9209 - newins {,50-}nvidia-drm-outputclass.conf
9210 - fi
9211 - fi
9212 -
9213 - # OpenCL ICD for NVIDIA
9214 - if use kernel_linux; then
9215 - insinto /etc/OpenCL/vendors
9216 - doins ${NV_OBJ}/nvidia.icd
9217 - fi
9218 -
9219 - # Documentation
9220 - dohtml ${NV_DOC}/html/*
9221 - if use kernel_FreeBSD; then
9222 - dodoc "${NV_DOC}/README"
9223 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
9224 - use tools && doman "${NV_MAN}/nvidia-settings.1"
9225 - else
9226 - # Docs
9227 - newdoc "${NV_DOC}/README.txt" README
9228 - dodoc "${NV_DOC}/NVIDIA_Changelog"
9229 - doman "${NV_MAN}/nvidia-smi.1.gz"
9230 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
9231 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
9232 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
9233 - fi
9234 -
9235 - # Helper Apps
9236 - exeinto /opt/bin/
9237 -
9238 - if use X; then
9239 - doexe ${NV_OBJ}/nvidia-xconfig
9240 -
9241 - insinto /etc/vulkan/icd.d
9242 - doins nvidia_icd.json
9243 - fi
9244 -
9245 - if use kernel_linux; then
9246 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
9247 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
9248 - doexe ${NV_OBJ}/nvidia-debugdump
9249 - doexe ${NV_OBJ}/nvidia-persistenced
9250 - doexe ${NV_OBJ}/nvidia-smi
9251 -
9252 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
9253 - doexe ${NV_OBJ}/nvidia-modprobe
9254 - fowners root:video /opt/bin/nvidia-modprobe
9255 - fperms 4710 /opt/bin/nvidia-modprobe
9256 - dosym /{opt,usr}/bin/nvidia-modprobe
9257 -
9258 - doman nvidia-cuda-mps-control.1.gz
9259 - doman nvidia-modprobe.1.gz
9260 - doman nvidia-persistenced.1.gz
9261 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
9262 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
9263 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
9264 - fi
9265 -
9266 - if use tools; then
9267 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
9268 - DESTDIR="${D}" \
9269 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
9270 - LIBDIR="${D}/usr/$(get_libdir)" \
9271 - NV_USE_BUNDLED_LIBJANSSON=0 \
9272 - NV_VERBOSE=1 \
9273 - PREFIX=/usr \
9274 - DO_STRIP= \
9275 - install
9276 -
9277 - if use static-libs; then
9278 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
9279 -
9280 - insinto /usr/include/NVCtrl
9281 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
9282 - fi
9283 -
9284 - insinto /usr/share/nvidia/
9285 - doins nvidia-application-profiles-${PV}-key-documentation
9286 -
9287 - insinto /etc/nvidia
9288 - newins \
9289 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
9290 -
9291 - # There is no icon in the FreeBSD tarball.
9292 - use kernel_FreeBSD || \
9293 - doicon ${NV_OBJ}/nvidia-settings.png
9294 -
9295 - domenu "${FILESDIR}"/nvidia-settings.desktop
9296 -
9297 - exeinto /etc/X11/xinit/xinitrc.d
9298 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
9299 - fi
9300 -
9301 - dobin ${NV_OBJ}/nvidia-bug-report.sh
9302 -
9303 - if has_multilib_profile && use multilib; then
9304 - local OABI=${ABI}
9305 - for ABI in $(get_install_abis); do
9306 - src_install-libs
9307 - done
9308 - ABI=${OABI}
9309 - unset OABI
9310 - else
9311 - src_install-libs
9312 - fi
9313 -
9314 - is_final_abi || die "failed to iterate through all ABIs"
9315 -
9316 - readme.gentoo_create_doc
9317 -}
9318 -
9319 -src_install-libs() {
9320 - local inslibdir=$(get_libdir)
9321 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
9322 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
9323 - local libdir=${NV_OBJ}
9324 -
9325 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
9326 - libdir=${NV_OBJ}/32
9327 - fi
9328 -
9329 - if use X; then
9330 - NV_GLX_LIBRARIES=(
9331 - "libEGL.so.1 ${GL_ROOT}"
9332 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
9333 - "libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
9334 - "libGLESv1_CM.so.1 ${GL_ROOT}"
9335 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
9336 - "libGLESv2.so.2 ${GL_ROOT}"
9337 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
9338 - "libGLX.so.0 ${GL_ROOT}"
9339 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
9340 - "libGLdispatch.so.0 ${GL_ROOT}"
9341 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
9342 - "libOpenGL.so.0 ${GL_ROOT}"
9343 - "libcuda.so.${NV_SOVER}"
9344 - "libnvcuvid.so.${NV_SOVER}"
9345 - "libnvidia-compiler.so.${NV_SOVER}"
9346 - "libnvidia-eglcore.so.${NV_SOVER}"
9347 - "libnvidia-encode.so.${NV_SOVER}"
9348 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
9349 - "libnvidia-fbc.so.${NV_SOVER}"
9350 - "libnvidia-glcore.so.${NV_SOVER}"
9351 - "libnvidia-glsi.so.${NV_SOVER}"
9352 - "libnvidia-ifr.so.${NV_SOVER}"
9353 - "libnvidia-opencl.so.${NV_SOVER}"
9354 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
9355 - "libvdpau_nvidia.so.${NV_SOVER}"
9356 - )
9357 -
9358 - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
9359 - then
9360 - NV_GLX_LIBRARIES+=(
9361 - "libnvidia-egl-wayland.so.${NV_SOVER}"
9362 - )
9363 - fi
9364 -
9365 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
9366 - then
9367 - NV_GLX_LIBRARIES+=(
9368 - "libnvidia-wfb.so.${NV_SOVER}"
9369 - )
9370 - fi
9371 -
9372 - if use kernel_FreeBSD; then
9373 - NV_GLX_LIBRARIES+=(
9374 - "libnvidia-tls.so.${NV_SOVER}"
9375 - )
9376 - fi
9377 -
9378 - if use kernel_linux; then
9379 - NV_GLX_LIBRARIES+=(
9380 - "libnvidia-ml.so.${NV_SOVER}"
9381 - "tls/libnvidia-tls.so.${NV_SOVER}"
9382 - )
9383 - fi
9384 -
9385 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
9386 - donvidia ${libdir}/${NV_LIB}
9387 - done
9388 - fi
9389 -}
9390 -
9391 -pkg_preinst() {
9392 - if use driver && use kernel_linux; then
9393 - linux-mod_pkg_preinst
9394 -
9395 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
9396 - if [ -z "${videogroup}" ]; then
9397 - eerror "Failed to determine the video group gid"
9398 - die "Failed to determine the video group gid"
9399 - else
9400 - sed -i \
9401 - -e "s:PACKAGE:${PF}:g" \
9402 - -e "s:VIDEOGID:${videogroup}:" \
9403 - "${D}"/etc/modprobe.d/nvidia.conf || die
9404 - fi
9405 - fi
9406 -
9407 - # Clean the dynamic libGL stuff's home to ensure
9408 - # we dont have stale libs floating around
9409 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
9410 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
9411 - fi
9412 - # Make sure we nuke the old nvidia-glx's env.d file
9413 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
9414 - rm -f "${ROOT}"/etc/env.d/09nvidia
9415 - fi
9416 -}
9417 -
9418 -pkg_postinst() {
9419 - use driver && use kernel_linux && linux-mod_pkg_postinst
9420 -
9421 - # Switch to the nvidia implementation
9422 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
9423 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
9424 -
9425 - readme.gentoo_print_elog
9426 -
9427 - if ! use X; then
9428 - elog "You have elected to not install the X.org driver. Along with"
9429 - elog "this the OpenGL libraries and VDPAU libraries were not"
9430 - elog "installed. Additionally, once the driver is loaded your card"
9431 - elog "and fan will run at max speed which may not be desirable."
9432 - elog "Use the 'nvidia-smi' init script to have your card and fan"
9433 - elog "speed scale appropriately."
9434 - elog
9435 - fi
9436 - if ! use tools; then
9437 - elog "USE=tools controls whether the nvidia-settings application"
9438 - elog "is installed. If you would like to use it, enable that"
9439 - elog "flag and re-emerge this ebuild. Optionally you can install"
9440 - elog "media-video/nvidia-settings"
9441 - elog
9442 - fi
9443 -}
9444 -
9445 -pkg_prerm() {
9446 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
9447 -}
9448 -
9449 -pkg_postrm() {
9450 - use driver && use kernel_linux && linux-mod_pkg_postrm
9451 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
9452 -}
9453
9454 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-367.57-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-367.57-r1.ebuild
9455 deleted file mode 100644
9456 index a7576025aea..00000000000
9457 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-367.57-r1.ebuild
9458 +++ /dev/null
9459 @@ -1,551 +0,0 @@
9460 -# Copyright 1999-2016 Gentoo Foundation
9461 -# Distributed under the terms of the GNU General Public License v2
9462 -
9463 -EAPI=5
9464 -
9465 -inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
9466 - portability toolchain-funcs unpacker user udev
9467 -
9468 -NV_URI="http://us.download.nvidia.com/XFree86/"
9469 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
9470 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
9471 -ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
9472 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
9473 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
9474 -
9475 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
9476 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
9477 -SRC_URI="
9478 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
9479 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
9480 - arm? ( ${NV_URI}Linux-x86-ARM/${PV}/${ARM_NV_PACKAGE}.run )
9481 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
9482 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
9483 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
9484 -"
9485 -
9486 -LICENSE="GPL-2 NVIDIA-r2"
9487 -SLOT="0/${PV%.*}"
9488 -KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
9489 -RESTRICT="bindist mirror"
9490 -EMULTILIB_PKG="true"
9491 -
9492 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
9493 -REQUIRED_USE="
9494 - tools? ( X )
9495 - static-libs? ( tools )
9496 -"
9497 -
9498 -COMMON="
9499 - app-eselect/eselect-opencl
9500 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
9501 - tools? (
9502 - dev-libs/atk
9503 - dev-libs/glib:2
9504 - dev-libs/jansson
9505 - gtk3? ( x11-libs/gtk+:3 )
9506 - x11-libs/cairo
9507 - x11-libs/gdk-pixbuf[X]
9508 - x11-libs/gtk+:2
9509 - x11-libs/libX11
9510 - x11-libs/libXext
9511 - x11-libs/libXrandr
9512 - x11-libs/libXv
9513 - x11-libs/libXxf86vm
9514 - x11-libs/pango[X]
9515 - )
9516 - X? (
9517 - >=app-eselect/eselect-opengl-1.0.9
9518 - app-misc/pax-utils
9519 - )
9520 -"
9521 -DEPEND="
9522 - ${COMMON}
9523 - kernel_linux? ( virtual/linux-sources )
9524 -"
9525 -RDEPEND="
9526 - ${COMMON}
9527 - acpi? ( sys-power/acpid )
9528 - tools? ( !media-video/nvidia-settings )
9529 - wayland? ( dev-libs/wayland )
9530 - X? (
9531 - <x11-base/xorg-server-1.18.99:=
9532 - >=x11-libs/libvdpau-1.0
9533 - multilib? (
9534 - >=x11-libs/libX11-1.6.2[abi_x86_32]
9535 - >=x11-libs/libXext-1.3.2[abi_x86_32]
9536 - )
9537 - )
9538 -"
9539 -
9540 -QA_PREBUILT="opt/* usr/lib*"
9541 -
9542 -S=${WORKDIR}/
9543 -
9544 -pkg_pretend() {
9545 - if use amd64 && has_multilib_profile && \
9546 - [ "${DEFAULT_ABI}" != "amd64" ]; then
9547 - eerror "This ebuild doesn't currently support changing your default ABI"
9548 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
9549 - fi
9550 -
9551 - if use kernel_linux && kernel_is ge 4 9; then
9552 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
9553 - ewarn "which are limited to the following kernels:"
9554 - ewarn "<sys-kernel/gentoo-sources-4.9"
9555 - ewarn "<sys-kernel/vanilla-sources-4.9"
9556 - ewarn ""
9557 - ewarn "You are free to utilize epatch_user to provide whatever"
9558 - ewarn "support you feel is appropriate, but will not receive"
9559 - ewarn "support as a result of those changes."
9560 - ewarn ""
9561 - ewarn "Do not file a bug report about this."
9562 - ewarn ""
9563 - fi
9564 -
9565 - # Since Nvidia ships many different series of drivers, we need to give the user
9566 - # some kind of guidance as to what version they should install. This tries
9567 - # to point the user in the right direction but can't be perfect. check
9568 - # nvidia-driver.eclass
9569 - nvidia-driver-check-warning
9570 -
9571 - # Kernel features/options to check for
9572 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
9573 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
9574 -
9575 - # Now do the above checks
9576 - use kernel_linux && check_extra_config
9577 -}
9578 -
9579 -pkg_setup() {
9580 - # try to turn off distcc and ccache for people that have a problem with it
9581 - export DISTCC_DISABLE=1
9582 - export CCACHE_DISABLE=1
9583 -
9584 - if use driver && use kernel_linux; then
9585 - MODULE_NAMES="nvidia(video:${S}/kernel)"
9586 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
9587 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
9588 -
9589 - # This needs to run after MODULE_NAMES (so that the eclass checks
9590 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
9591 - # is set (so that KV_DIR is populated).
9592 - linux-mod_pkg_setup
9593 -
9594 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
9595 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
9596 -
9597 - # linux-mod_src_compile calls set_arch_to_kernel, which
9598 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
9599 - # expects x86_64 or i386 and then converts it to x86
9600 - # later on in the build process
9601 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
9602 - fi
9603 -
9604 - if use kernel_linux && kernel_is lt 2 6 9; then
9605 - eerror "You must build this against 2.6.9 or higher kernels."
9606 - fi
9607 -
9608 - # set variables to where files are in the package structure
9609 - if use kernel_FreeBSD; then
9610 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
9611 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
9612 - NV_DOC="${S}/doc"
9613 - NV_OBJ="${S}/obj"
9614 - NV_SRC="${S}/src"
9615 - NV_MAN="${S}/x11/man"
9616 - NV_X11="${S}/obj"
9617 - NV_SOVER=1
9618 - elif use kernel_linux; then
9619 - NV_DOC="${S}"
9620 - NV_OBJ="${S}"
9621 - NV_SRC="${S}/kernel"
9622 - NV_MAN="${S}"
9623 - NV_X11="${S}"
9624 - NV_SOVER=${PV}
9625 - else
9626 - die "Could not determine proper NVIDIA package"
9627 - fi
9628 -}
9629 -
9630 -src_prepare() {
9631 - epatch "${FILESDIR}"/${PN}-367.57-profiles-rc.patch
9632 -
9633 - if use pax_kernel; then
9634 - ewarn "Using PAX patches is not supported. You will be asked to"
9635 - ewarn "use a standard kernel should you have issues. Should you"
9636 - ewarn "need support with these patches, contact the PaX team."
9637 - epatch "${FILESDIR}"/${PN}-367.57-pax.patch
9638 - fi
9639 -
9640 - # Allow user patches so they can support RC kernels and whatever else
9641 - epatch_user
9642 -}
9643 -
9644 -src_compile() {
9645 - # This is already the default on Linux, as there's no toplevel Makefile, but
9646 - # on FreeBSD there's one and triggers the kernel module build, as we install
9647 - # it by itself, pass this.
9648 -
9649 - cd "${NV_SRC}"
9650 - if use kernel_FreeBSD; then
9651 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
9652 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
9653 - elif use driver && use kernel_linux; then
9654 - MAKEOPTS=-j1 linux-mod_src_compile
9655 - fi
9656 -
9657 - if use tools; then
9658 - emake -C "${S}"/nvidia-settings-${PV}/src \
9659 - AR="$(tc-getAR)" \
9660 - CC="$(tc-getCC)" \
9661 - LIBDIR="$(get_libdir)" \
9662 - NV_VERBOSE=1 \
9663 - RANLIB="$(tc-getRANLIB)" \
9664 - DO_STRIP= \
9665 - build-xnvctrl
9666 -
9667 - emake -C "${S}"/nvidia-settings-${PV}/src \
9668 - CC="$(tc-getCC)" \
9669 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
9670 - LD="$(tc-getCC)" \
9671 - LIBDIR="$(get_libdir)" \
9672 - NVML_ENABLED=0 \
9673 - NV_USE_BUNDLED_LIBJANSSON=0 \
9674 - NV_VERBOSE=1 \
9675 - DO_STRIP=
9676 - fi
9677 -}
9678 -
9679 -# Install nvidia library:
9680 -# the first parameter is the library to install
9681 -# the second parameter is the provided soversion
9682 -# the third parameter is the target directory if it is not /usr/lib
9683 -donvidia() {
9684 - # Full path to library
9685 - nv_LIB="${1}"
9686 -
9687 - # SOVER to use
9688 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
9689 -
9690 - # Where to install
9691 - nv_DEST="${2}"
9692 -
9693 - # Get just the library name
9694 - nv_LIBNAME=$(basename "${nv_LIB}")
9695 -
9696 - if [[ "${nv_DEST}" ]]; then
9697 - exeinto ${nv_DEST}
9698 - action="doexe"
9699 - else
9700 - nv_DEST="/usr/$(get_libdir)"
9701 - action="dolib.so"
9702 - fi
9703 -
9704 - # Install the library
9705 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
9706 -
9707 - # If the library has a SONAME and SONAME does not match the library name,
9708 - # then we need to create a symlink
9709 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
9710 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
9711 - || die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
9712 - fi
9713 -
9714 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
9715 - || die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
9716 -}
9717 -
9718 -src_install() {
9719 - if use driver && use kernel_linux; then
9720 - linux-mod_src_install
9721 -
9722 - # Add the aliases
9723 - # This file is tweaked with the appropriate video group in
9724 - # pkg_preinst, see bug #491414
9725 - insinto /etc/modprobe.d
9726 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
9727 - doins "${FILESDIR}"/nvidia-rmmod.conf
9728 -
9729 - # Ensures that our device nodes are created when not using X
9730 - exeinto "$(get_udevdir)"
9731 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
9732 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
9733 - elif use kernel_FreeBSD; then
9734 - if use x86-fbsd; then
9735 - insinto /boot/modules
9736 - doins "${S}/src/nvidia.kld"
9737 - fi
9738 -
9739 - exeinto /boot/modules
9740 - doexe "${S}/src/nvidia.ko"
9741 - fi
9742 -
9743 - # NVIDIA kernel <-> userspace driver config lib
9744 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
9745 -
9746 - # NVIDIA framebuffer capture library
9747 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
9748 -
9749 - # NVIDIA video encode/decode <-> CUDA
9750 - if use kernel_linux; then
9751 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
9752 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
9753 - fi
9754 -
9755 - if use X; then
9756 - # Xorg DDX driver
9757 - insinto /usr/$(get_libdir)/xorg/modules/drivers
9758 - doins ${NV_X11}/nvidia_drv.so
9759 -
9760 - # Xorg GLX driver
9761 - donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
9762 - /usr/$(get_libdir)/opengl/nvidia/extensions
9763 -
9764 - # Xorg nvidia.conf
9765 - if has_version '>=x11-base/xorg-server-1.16'; then
9766 - insinto /usr/share/X11/xorg.conf.d
9767 - newins {,50-}nvidia-drm-outputclass.conf
9768 - fi
9769 - fi
9770 -
9771 - # OpenCL ICD for NVIDIA
9772 - if use kernel_linux; then
9773 - insinto /etc/OpenCL/vendors
9774 - doins ${NV_OBJ}/nvidia.icd
9775 - fi
9776 -
9777 - # Documentation
9778 - dohtml ${NV_DOC}/html/*
9779 - if use kernel_FreeBSD; then
9780 - dodoc "${NV_DOC}/README"
9781 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
9782 - use tools && doman "${NV_MAN}/nvidia-settings.1"
9783 - else
9784 - # Docs
9785 - newdoc "${NV_DOC}/README.txt" README
9786 - dodoc "${NV_DOC}/NVIDIA_Changelog"
9787 - doman "${NV_MAN}/nvidia-smi.1.gz"
9788 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
9789 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
9790 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
9791 - fi
9792 -
9793 - # Helper Apps
9794 - exeinto /opt/bin/
9795 -
9796 - if use X; then
9797 - doexe ${NV_OBJ}/nvidia-xconfig
9798 -
9799 - insinto /etc/vulkan/icd.d
9800 - doins nvidia_icd.json
9801 - fi
9802 -
9803 - if use kernel_linux; then
9804 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
9805 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
9806 - doexe ${NV_OBJ}/nvidia-debugdump
9807 - doexe ${NV_OBJ}/nvidia-persistenced
9808 - doexe ${NV_OBJ}/nvidia-smi
9809 -
9810 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
9811 - doexe ${NV_OBJ}/nvidia-modprobe
9812 - fowners root:video /opt/bin/nvidia-modprobe
9813 - fperms 4710 /opt/bin/nvidia-modprobe
9814 - dosym /{opt,usr}/bin/nvidia-modprobe
9815 -
9816 - doman nvidia-cuda-mps-control.1.gz
9817 - doman nvidia-modprobe.1.gz
9818 - doman nvidia-persistenced.1.gz
9819 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
9820 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
9821 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
9822 - fi
9823 -
9824 - if use tools; then
9825 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
9826 - DESTDIR="${D}" \
9827 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
9828 - LIBDIR="${D}/usr/$(get_libdir)" \
9829 - NV_USE_BUNDLED_LIBJANSSON=0 \
9830 - NV_VERBOSE=1 \
9831 - PREFIX=/usr \
9832 - DO_STRIP= \
9833 - install
9834 -
9835 - if use static-libs; then
9836 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
9837 -
9838 - insinto /usr/include/NVCtrl
9839 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
9840 - fi
9841 -
9842 - insinto /usr/share/nvidia/
9843 - doins nvidia-application-profiles-${PV}-key-documentation
9844 -
9845 - insinto /etc/nvidia
9846 - newins \
9847 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
9848 -
9849 - # There is no icon in the FreeBSD tarball.
9850 - use kernel_FreeBSD || \
9851 - doicon ${NV_OBJ}/nvidia-settings.png
9852 -
9853 - domenu "${FILESDIR}"/nvidia-settings.desktop
9854 -
9855 - exeinto /etc/X11/xinit/xinitrc.d
9856 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
9857 - fi
9858 -
9859 - dobin ${NV_OBJ}/nvidia-bug-report.sh
9860 -
9861 - if has_multilib_profile && use multilib; then
9862 - local OABI=${ABI}
9863 - for ABI in $(get_install_abis); do
9864 - src_install-libs
9865 - done
9866 - ABI=${OABI}
9867 - unset OABI
9868 - else
9869 - src_install-libs
9870 - fi
9871 -
9872 - is_final_abi || die "failed to iterate through all ABIs"
9873 -
9874 - readme.gentoo_create_doc
9875 -}
9876 -
9877 -src_install-libs() {
9878 - local inslibdir=$(get_libdir)
9879 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
9880 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
9881 - local libdir=${NV_OBJ}
9882 -
9883 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
9884 - libdir=${NV_OBJ}/32
9885 - fi
9886 -
9887 - if use X; then
9888 - NV_GLX_LIBRARIES=(
9889 - "libEGL.so.1 ${GL_ROOT}"
9890 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
9891 - "libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
9892 - "libGLESv1_CM.so.1 ${GL_ROOT}"
9893 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
9894 - "libGLESv2.so.2 ${GL_ROOT}"
9895 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
9896 - "libGLX.so.0 ${GL_ROOT}"
9897 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
9898 - "libGLdispatch.so.0 ${GL_ROOT}"
9899 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
9900 - "libOpenGL.so.0 ${GL_ROOT}"
9901 - "libcuda.so.${NV_SOVER}"
9902 - "libnvcuvid.so.${NV_SOVER}"
9903 - "libnvidia-compiler.so.${NV_SOVER}"
9904 - "libnvidia-eglcore.so.${NV_SOVER}"
9905 - "libnvidia-encode.so.${NV_SOVER}"
9906 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
9907 - "libnvidia-fbc.so.${NV_SOVER}"
9908 - "libnvidia-glcore.so.${NV_SOVER}"
9909 - "libnvidia-glsi.so.${NV_SOVER}"
9910 - "libnvidia-ifr.so.${NV_SOVER}"
9911 - "libnvidia-opencl.so.${NV_SOVER}"
9912 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
9913 - "libvdpau_nvidia.so.${NV_SOVER}"
9914 - )
9915 -
9916 - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
9917 - then
9918 - NV_GLX_LIBRARIES+=(
9919 - "libnvidia-egl-wayland.so.${NV_SOVER}"
9920 - )
9921 - fi
9922 -
9923 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
9924 - then
9925 - NV_GLX_LIBRARIES+=(
9926 - "libnvidia-wfb.so.${NV_SOVER}"
9927 - )
9928 - fi
9929 -
9930 - if use kernel_FreeBSD; then
9931 - NV_GLX_LIBRARIES+=(
9932 - "libnvidia-tls.so.${NV_SOVER}"
9933 - )
9934 - fi
9935 -
9936 - if use kernel_linux; then
9937 - NV_GLX_LIBRARIES+=(
9938 - "libnvidia-ml.so.${NV_SOVER}"
9939 - "tls/libnvidia-tls.so.${NV_SOVER}"
9940 - )
9941 - fi
9942 -
9943 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
9944 - donvidia ${libdir}/${NV_LIB}
9945 - done
9946 - fi
9947 -}
9948 -
9949 -pkg_preinst() {
9950 - if use driver && use kernel_linux; then
9951 - linux-mod_pkg_preinst
9952 -
9953 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
9954 - if [ -z "${videogroup}" ]; then
9955 - eerror "Failed to determine the video group gid"
9956 - die "Failed to determine the video group gid"
9957 - else
9958 - sed -i \
9959 - -e "s:PACKAGE:${PF}:g" \
9960 - -e "s:VIDEOGID:${videogroup}:" \
9961 - "${D}"/etc/modprobe.d/nvidia.conf || die
9962 - fi
9963 - fi
9964 -
9965 - # Clean the dynamic libGL stuff's home to ensure
9966 - # we dont have stale libs floating around
9967 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
9968 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
9969 - fi
9970 - # Make sure we nuke the old nvidia-glx's env.d file
9971 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
9972 - rm -f "${ROOT}"/etc/env.d/09nvidia
9973 - fi
9974 -}
9975 -
9976 -pkg_postinst() {
9977 - use driver && use kernel_linux && linux-mod_pkg_postinst
9978 -
9979 - # Switch to the nvidia implementation
9980 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
9981 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
9982 -
9983 - readme.gentoo_print_elog
9984 -
9985 - if ! use X; then
9986 - elog "You have elected to not install the X.org driver. Along with"
9987 - elog "this the OpenGL libraries and VDPAU libraries were not"
9988 - elog "installed. Additionally, once the driver is loaded your card"
9989 - elog "and fan will run at max speed which may not be desirable."
9990 - elog "Use the 'nvidia-smi' init script to have your card and fan"
9991 - elog "speed scale appropriately."
9992 - elog
9993 - fi
9994 - if ! use tools; then
9995 - elog "USE=tools controls whether the nvidia-settings application"
9996 - elog "is installed. If you would like to use it, enable that"
9997 - elog "flag and re-emerge this ebuild. Optionally you can install"
9998 - elog "media-video/nvidia-settings"
9999 - elog
10000 - fi
10001 -}
10002 -
10003 -pkg_prerm() {
10004 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
10005 -}
10006 -
10007 -pkg_postrm() {
10008 - use driver && use kernel_linux && linux-mod_pkg_postrm
10009 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
10010 -}
10011
10012 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-367.57-r2.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-367.57-r2.ebuild
10013 deleted file mode 100644
10014 index d7c31e087d5..00000000000
10015 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-367.57-r2.ebuild
10016 +++ /dev/null
10017 @@ -1,552 +0,0 @@
10018 -# Copyright 1999-2017 Gentoo Foundation
10019 -# Distributed under the terms of the GNU General Public License v2
10020 -
10021 -EAPI=5
10022 -
10023 -inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
10024 - portability toolchain-funcs unpacker user udev
10025 -
10026 -NV_URI="http://us.download.nvidia.com/XFree86/"
10027 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
10028 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
10029 -ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
10030 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
10031 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
10032 -
10033 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
10034 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
10035 -SRC_URI="
10036 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
10037 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
10038 - arm? ( ${NV_URI}Linux-x86-ARM/${PV}/${ARM_NV_PACKAGE}.run )
10039 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
10040 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
10041 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
10042 -"
10043 -
10044 -LICENSE="GPL-2 NVIDIA-r2"
10045 -SLOT="0/${PV%.*}"
10046 -KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
10047 -RESTRICT="bindist mirror"
10048 -EMULTILIB_PKG="true"
10049 -
10050 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
10051 -REQUIRED_USE="
10052 - tools? ( X )
10053 - static-libs? ( tools )
10054 -"
10055 -
10056 -COMMON="
10057 - app-eselect/eselect-opencl
10058 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
10059 - tools? (
10060 - dev-libs/atk
10061 - dev-libs/glib:2
10062 - dev-libs/jansson
10063 - gtk3? (
10064 - x11-libs/gtk+:3
10065 - )
10066 - x11-libs/cairo
10067 - x11-libs/gdk-pixbuf[X]
10068 - x11-libs/gtk+:2
10069 - x11-libs/libX11
10070 - x11-libs/libXext
10071 - x11-libs/libXrandr
10072 - x11-libs/libXv
10073 - x11-libs/libXxf86vm
10074 - x11-libs/pango[X]
10075 - )
10076 - X? (
10077 - >=app-eselect/eselect-opengl-1.0.9
10078 - app-misc/pax-utils
10079 - )
10080 -"
10081 -DEPEND="
10082 - ${COMMON}
10083 - kernel_linux? ( virtual/linux-sources )
10084 -"
10085 -RDEPEND="
10086 - ${COMMON}
10087 - acpi? ( sys-power/acpid )
10088 - tools? ( !media-video/nvidia-settings )
10089 - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
10090 - X? (
10091 - <x11-base/xorg-server-1.18.99:=
10092 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
10093 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
10094 - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
10095 - sys-libs/zlib[${MULTILIB_USEDEP}]
10096 - )
10097 -"
10098 -
10099 -QA_PREBUILT="opt/* usr/lib*"
10100 -
10101 -S=${WORKDIR}/
10102 -
10103 -pkg_pretend() {
10104 - if use amd64 && has_multilib_profile && \
10105 - [ "${DEFAULT_ABI}" != "amd64" ]; then
10106 - eerror "This ebuild doesn't currently support changing your default ABI"
10107 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
10108 - fi
10109 -
10110 - if use kernel_linux && kernel_is ge 4 9; then
10111 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
10112 - ewarn "which are limited to the following kernels:"
10113 - ewarn "<sys-kernel/gentoo-sources-4.9"
10114 - ewarn "<sys-kernel/vanilla-sources-4.9"
10115 - ewarn ""
10116 - ewarn "You are free to utilize epatch_user to provide whatever"
10117 - ewarn "support you feel is appropriate, but will not receive"
10118 - ewarn "support as a result of those changes."
10119 - ewarn ""
10120 - ewarn "Do not file a bug report about this."
10121 - ewarn ""
10122 - fi
10123 -
10124 - # Since Nvidia ships many different series of drivers, we need to give the user
10125 - # some kind of guidance as to what version they should install. This tries
10126 - # to point the user in the right direction but can't be perfect. check
10127 - # nvidia-driver.eclass
10128 - nvidia-driver-check-warning
10129 -
10130 - # Kernel features/options to check for
10131 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
10132 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
10133 -
10134 - # Now do the above checks
10135 - use kernel_linux && check_extra_config
10136 -}
10137 -
10138 -pkg_setup() {
10139 - # try to turn off distcc and ccache for people that have a problem with it
10140 - export DISTCC_DISABLE=1
10141 - export CCACHE_DISABLE=1
10142 -
10143 - if use driver && use kernel_linux; then
10144 - MODULE_NAMES="nvidia(video:${S}/kernel)"
10145 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
10146 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
10147 -
10148 - # This needs to run after MODULE_NAMES (so that the eclass checks
10149 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
10150 - # is set (so that KV_DIR is populated).
10151 - linux-mod_pkg_setup
10152 -
10153 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
10154 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
10155 -
10156 - # linux-mod_src_compile calls set_arch_to_kernel, which
10157 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
10158 - # expects x86_64 or i386 and then converts it to x86
10159 - # later on in the build process
10160 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
10161 - fi
10162 -
10163 - if use kernel_linux && kernel_is lt 2 6 9; then
10164 - eerror "You must build this against 2.6.9 or higher kernels."
10165 - fi
10166 -
10167 - # set variables to where files are in the package structure
10168 - if use kernel_FreeBSD; then
10169 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
10170 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
10171 - NV_DOC="${S}/doc"
10172 - NV_OBJ="${S}/obj"
10173 - NV_SRC="${S}/src"
10174 - NV_MAN="${S}/x11/man"
10175 - NV_X11="${S}/obj"
10176 - NV_SOVER=1
10177 - elif use kernel_linux; then
10178 - NV_DOC="${S}"
10179 - NV_OBJ="${S}"
10180 - NV_SRC="${S}/kernel"
10181 - NV_MAN="${S}"
10182 - NV_X11="${S}"
10183 - NV_SOVER=${PV}
10184 - else
10185 - die "Could not determine proper NVIDIA package"
10186 - fi
10187 -}
10188 -
10189 -src_prepare() {
10190 - epatch "${FILESDIR}"/${PN}-367.57-profiles-rc.patch
10191 -
10192 - if use pax_kernel; then
10193 - ewarn "Using PAX patches is not supported. You will be asked to"
10194 - ewarn "use a standard kernel should you have issues. Should you"
10195 - ewarn "need support with these patches, contact the PaX team."
10196 - epatch "${FILESDIR}"/${PN}-367.57-pax.patch
10197 - fi
10198 -
10199 - # Allow user patches so they can support RC kernels and whatever else
10200 - epatch_user
10201 -}
10202 -
10203 -src_compile() {
10204 - # This is already the default on Linux, as there's no toplevel Makefile, but
10205 - # on FreeBSD there's one and triggers the kernel module build, as we install
10206 - # it by itself, pass this.
10207 -
10208 - cd "${NV_SRC}"
10209 - if use kernel_FreeBSD; then
10210 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
10211 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
10212 - elif use driver && use kernel_linux; then
10213 - MAKEOPTS=-j1 linux-mod_src_compile
10214 - fi
10215 -
10216 - if use tools; then
10217 - emake -C "${S}"/nvidia-settings-${PV}/src \
10218 - AR="$(tc-getAR)" \
10219 - CC="$(tc-getCC)" \
10220 - LIBDIR="$(get_libdir)" \
10221 - NV_VERBOSE=1 \
10222 - RANLIB="$(tc-getRANLIB)" \
10223 - DO_STRIP= \
10224 - build-xnvctrl
10225 -
10226 - emake -C "${S}"/nvidia-settings-${PV}/src \
10227 - CC="$(tc-getCC)" \
10228 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
10229 - LD="$(tc-getCC)" \
10230 - LIBDIR="$(get_libdir)" \
10231 - NVML_ENABLED=0 \
10232 - NV_USE_BUNDLED_LIBJANSSON=0 \
10233 - NV_VERBOSE=1 \
10234 - DO_STRIP=
10235 - fi
10236 -}
10237 -
10238 -# Install nvidia library:
10239 -# the first parameter is the library to install
10240 -# the second parameter is the provided soversion
10241 -# the third parameter is the target directory if it is not /usr/lib
10242 -donvidia() {
10243 - # Full path to library
10244 - nv_LIB="${1}"
10245 -
10246 - # SOVER to use
10247 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
10248 -
10249 - # Where to install
10250 - nv_DEST="${2}"
10251 -
10252 - # Get just the library name
10253 - nv_LIBNAME=$(basename "${nv_LIB}")
10254 -
10255 - if [[ "${nv_DEST}" ]]; then
10256 - exeinto ${nv_DEST}
10257 - action="doexe"
10258 - else
10259 - nv_DEST="/usr/$(get_libdir)"
10260 - action="dolib.so"
10261 - fi
10262 -
10263 - # Install the library
10264 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
10265 -
10266 - # If the library has a SONAME and SONAME does not match the library name,
10267 - # then we need to create a symlink
10268 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
10269 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
10270 - || die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
10271 - fi
10272 -
10273 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
10274 - || die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
10275 -}
10276 -
10277 -src_install() {
10278 - if use driver && use kernel_linux; then
10279 - linux-mod_src_install
10280 -
10281 - # Add the aliases
10282 - # This file is tweaked with the appropriate video group in
10283 - # pkg_preinst, see bug #491414
10284 - insinto /etc/modprobe.d
10285 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
10286 - doins "${FILESDIR}"/nvidia-rmmod.conf
10287 -
10288 - # Ensures that our device nodes are created when not using X
10289 - exeinto "$(get_udevdir)"
10290 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
10291 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
10292 - elif use kernel_FreeBSD; then
10293 - if use x86-fbsd; then
10294 - insinto /boot/modules
10295 - doins "${S}/src/nvidia.kld"
10296 - fi
10297 -
10298 - exeinto /boot/modules
10299 - doexe "${S}/src/nvidia.ko"
10300 - fi
10301 -
10302 - # NVIDIA kernel <-> userspace driver config lib
10303 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
10304 -
10305 - # NVIDIA framebuffer capture library
10306 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
10307 -
10308 - # NVIDIA video encode/decode <-> CUDA
10309 - if use kernel_linux; then
10310 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
10311 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
10312 - fi
10313 -
10314 - if use X; then
10315 - # Xorg DDX driver
10316 - insinto /usr/$(get_libdir)/xorg/modules/drivers
10317 - doins ${NV_X11}/nvidia_drv.so
10318 -
10319 - # Xorg GLX driver
10320 - donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
10321 - /usr/$(get_libdir)/opengl/nvidia/extensions
10322 -
10323 - # Xorg nvidia.conf
10324 - if has_version '>=x11-base/xorg-server-1.16'; then
10325 - insinto /usr/share/X11/xorg.conf.d
10326 - newins {,50-}nvidia-drm-outputclass.conf
10327 - fi
10328 - fi
10329 -
10330 - # OpenCL ICD for NVIDIA
10331 - if use kernel_linux; then
10332 - insinto /etc/OpenCL/vendors
10333 - doins ${NV_OBJ}/nvidia.icd
10334 - fi
10335 -
10336 - # Documentation
10337 - dohtml ${NV_DOC}/html/*
10338 - if use kernel_FreeBSD; then
10339 - dodoc "${NV_DOC}/README"
10340 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
10341 - use tools && doman "${NV_MAN}/nvidia-settings.1"
10342 - else
10343 - # Docs
10344 - newdoc "${NV_DOC}/README.txt" README
10345 - dodoc "${NV_DOC}/NVIDIA_Changelog"
10346 - doman "${NV_MAN}/nvidia-smi.1.gz"
10347 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
10348 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
10349 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
10350 - fi
10351 -
10352 - # Helper Apps
10353 - exeinto /opt/bin/
10354 -
10355 - if use X; then
10356 - doexe ${NV_OBJ}/nvidia-xconfig
10357 -
10358 - insinto /etc/vulkan/icd.d
10359 - doins nvidia_icd.json
10360 - fi
10361 -
10362 - if use kernel_linux; then
10363 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
10364 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
10365 - doexe ${NV_OBJ}/nvidia-debugdump
10366 - doexe ${NV_OBJ}/nvidia-persistenced
10367 - doexe ${NV_OBJ}/nvidia-smi
10368 -
10369 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
10370 - doexe ${NV_OBJ}/nvidia-modprobe
10371 - fowners root:video /opt/bin/nvidia-modprobe
10372 - fperms 4710 /opt/bin/nvidia-modprobe
10373 - dosym /{opt,usr}/bin/nvidia-modprobe
10374 -
10375 - doman nvidia-cuda-mps-control.1.gz
10376 - doman nvidia-modprobe.1.gz
10377 - doman nvidia-persistenced.1.gz
10378 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
10379 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
10380 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
10381 - fi
10382 -
10383 - if use tools; then
10384 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
10385 - DESTDIR="${D}" \
10386 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
10387 - LIBDIR="${D}/usr/$(get_libdir)" \
10388 - NV_USE_BUNDLED_LIBJANSSON=0 \
10389 - NV_VERBOSE=1 \
10390 - PREFIX=/usr \
10391 - DO_STRIP= \
10392 - install
10393 -
10394 - if use static-libs; then
10395 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
10396 -
10397 - insinto /usr/include/NVCtrl
10398 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
10399 - fi
10400 -
10401 - insinto /usr/share/nvidia/
10402 - doins nvidia-application-profiles-${PV}-key-documentation
10403 -
10404 - insinto /etc/nvidia
10405 - newins \
10406 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
10407 -
10408 - # There is no icon in the FreeBSD tarball.
10409 - use kernel_FreeBSD || \
10410 - doicon ${NV_OBJ}/nvidia-settings.png
10411 -
10412 - domenu "${FILESDIR}"/nvidia-settings.desktop
10413 -
10414 - exeinto /etc/X11/xinit/xinitrc.d
10415 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
10416 - fi
10417 -
10418 - dobin ${NV_OBJ}/nvidia-bug-report.sh
10419 -
10420 - if has_multilib_profile && use multilib; then
10421 - local OABI=${ABI}
10422 - for ABI in $(get_install_abis); do
10423 - src_install-libs
10424 - done
10425 - ABI=${OABI}
10426 - unset OABI
10427 - else
10428 - src_install-libs
10429 - fi
10430 -
10431 - is_final_abi || die "failed to iterate through all ABIs"
10432 -
10433 - readme.gentoo_create_doc
10434 -}
10435 -
10436 -src_install-libs() {
10437 - local inslibdir=$(get_libdir)
10438 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
10439 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
10440 - local libdir=${NV_OBJ}
10441 -
10442 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
10443 - libdir=${NV_OBJ}/32
10444 - fi
10445 -
10446 - if use X; then
10447 - NV_GLX_LIBRARIES=(
10448 - "libEGL.so.1 ${GL_ROOT}"
10449 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
10450 - "libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
10451 - "libGLESv1_CM.so.1 ${GL_ROOT}"
10452 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
10453 - "libGLESv2.so.2 ${GL_ROOT}"
10454 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
10455 - "libGLX.so.0 ${GL_ROOT}"
10456 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
10457 - "libGLdispatch.so.0 ${GL_ROOT}"
10458 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
10459 - "libOpenGL.so.0 ${GL_ROOT}"
10460 - "libcuda.so.${NV_SOVER}"
10461 - "libnvcuvid.so.${NV_SOVER}"
10462 - "libnvidia-compiler.so.${NV_SOVER}"
10463 - "libnvidia-eglcore.so.${NV_SOVER}"
10464 - "libnvidia-encode.so.${NV_SOVER}"
10465 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
10466 - "libnvidia-fbc.so.${NV_SOVER}"
10467 - "libnvidia-glcore.so.${NV_SOVER}"
10468 - "libnvidia-glsi.so.${NV_SOVER}"
10469 - "libnvidia-ifr.so.${NV_SOVER}"
10470 - "libnvidia-opencl.so.${NV_SOVER}"
10471 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
10472 - "libvdpau_nvidia.so.${NV_SOVER}"
10473 - )
10474 -
10475 - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
10476 - then
10477 - NV_GLX_LIBRARIES+=(
10478 - "libnvidia-egl-wayland.so.${NV_SOVER}"
10479 - )
10480 - fi
10481 -
10482 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
10483 - then
10484 - NV_GLX_LIBRARIES+=(
10485 - "libnvidia-wfb.so.${NV_SOVER}"
10486 - )
10487 - fi
10488 -
10489 - if use kernel_FreeBSD; then
10490 - NV_GLX_LIBRARIES+=(
10491 - "libnvidia-tls.so.${NV_SOVER}"
10492 - )
10493 - fi
10494 -
10495 - if use kernel_linux; then
10496 - NV_GLX_LIBRARIES+=(
10497 - "libnvidia-ml.so.${NV_SOVER}"
10498 - "tls/libnvidia-tls.so.${NV_SOVER}"
10499 - )
10500 - fi
10501 -
10502 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
10503 - donvidia ${libdir}/${NV_LIB}
10504 - done
10505 - fi
10506 -}
10507 -
10508 -pkg_preinst() {
10509 - if use driver && use kernel_linux; then
10510 - linux-mod_pkg_preinst
10511 -
10512 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
10513 - if [ -z "${videogroup}" ]; then
10514 - eerror "Failed to determine the video group gid"
10515 - die "Failed to determine the video group gid"
10516 - else
10517 - sed -i \
10518 - -e "s:PACKAGE:${PF}:g" \
10519 - -e "s:VIDEOGID:${videogroup}:" \
10520 - "${D}"/etc/modprobe.d/nvidia.conf || die
10521 - fi
10522 - fi
10523 -
10524 - # Clean the dynamic libGL stuff's home to ensure
10525 - # we dont have stale libs floating around
10526 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
10527 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
10528 - fi
10529 - # Make sure we nuke the old nvidia-glx's env.d file
10530 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
10531 - rm -f "${ROOT}"/etc/env.d/09nvidia
10532 - fi
10533 -}
10534 -
10535 -pkg_postinst() {
10536 - use driver && use kernel_linux && linux-mod_pkg_postinst
10537 -
10538 - # Switch to the nvidia implementation
10539 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
10540 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
10541 -
10542 - readme.gentoo_print_elog
10543 -
10544 - if ! use X; then
10545 - elog "You have elected to not install the X.org driver. Along with"
10546 - elog "this the OpenGL libraries and VDPAU libraries were not"
10547 - elog "installed. Additionally, once the driver is loaded your card"
10548 - elog "and fan will run at max speed which may not be desirable."
10549 - elog "Use the 'nvidia-smi' init script to have your card and fan"
10550 - elog "speed scale appropriately."
10551 - elog
10552 - fi
10553 - if ! use tools; then
10554 - elog "USE=tools controls whether the nvidia-settings application"
10555 - elog "is installed. If you would like to use it, enable that"
10556 - elog "flag and re-emerge this ebuild. Optionally you can install"
10557 - elog "media-video/nvidia-settings"
10558 - elog
10559 - fi
10560 -}
10561 -
10562 -pkg_prerm() {
10563 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
10564 -}
10565 -
10566 -pkg_postrm() {
10567 - use driver && use kernel_linux && linux-mod_pkg_postrm
10568 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
10569 -}
10570
10571 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-370.28-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-370.28-r1.ebuild
10572 deleted file mode 100644
10573 index 403c7b8d003..00000000000
10574 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-370.28-r1.ebuild
10575 +++ /dev/null
10576 @@ -1,551 +0,0 @@
10577 -# Copyright 1999-2016 Gentoo Foundation
10578 -# Distributed under the terms of the GNU General Public License v2
10579 -
10580 -EAPI=5
10581 -
10582 -inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
10583 - portability toolchain-funcs unpacker user udev
10584 -
10585 -NV_URI="http://us.download.nvidia.com/XFree86/"
10586 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
10587 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
10588 -ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
10589 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
10590 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
10591 -
10592 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
10593 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
10594 -SRC_URI="
10595 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
10596 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
10597 - arm? ( ${NV_URI}Linux-x86-ARM/${PV}/${ARM_NV_PACKAGE}.run )
10598 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
10599 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
10600 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
10601 -"
10602 -
10603 -LICENSE="GPL-2 NVIDIA-r2"
10604 -SLOT="0/${PV%.*}"
10605 -KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
10606 -RESTRICT="bindist mirror"
10607 -EMULTILIB_PKG="true"
10608 -
10609 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
10610 -REQUIRED_USE="
10611 - tools? ( X )
10612 - static-libs? ( tools )
10613 -"
10614 -
10615 -COMMON="
10616 - app-eselect/eselect-opencl
10617 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
10618 - tools? (
10619 - dev-libs/atk
10620 - dev-libs/glib:2
10621 - dev-libs/jansson
10622 - gtk3? ( x11-libs/gtk+:3 )
10623 - x11-libs/cairo
10624 - x11-libs/gdk-pixbuf[X]
10625 - x11-libs/gtk+:2
10626 - x11-libs/libX11
10627 - x11-libs/libXext
10628 - x11-libs/libXrandr
10629 - x11-libs/libXv
10630 - x11-libs/libXxf86vm
10631 - x11-libs/pango[X]
10632 - )
10633 - X? (
10634 - >=app-eselect/eselect-opengl-1.0.9
10635 - app-misc/pax-utils
10636 - )
10637 -"
10638 -DEPEND="
10639 - ${COMMON}
10640 - kernel_linux? ( virtual/linux-sources )
10641 -"
10642 -RDEPEND="
10643 - ${COMMON}
10644 - acpi? ( sys-power/acpid )
10645 - tools? ( !media-video/nvidia-settings )
10646 - wayland? ( dev-libs/wayland )
10647 - X? (
10648 - <x11-base/xorg-server-1.18.99:=
10649 - >=x11-libs/libvdpau-1.0
10650 - multilib? (
10651 - >=x11-libs/libX11-1.6.2[abi_x86_32]
10652 - >=x11-libs/libXext-1.3.2[abi_x86_32]
10653 - )
10654 - )
10655 -"
10656 -
10657 -QA_PREBUILT="opt/* usr/lib*"
10658 -
10659 -S=${WORKDIR}/
10660 -
10661 -pkg_pretend() {
10662 - if use amd64 && has_multilib_profile && \
10663 - [ "${DEFAULT_ABI}" != "amd64" ]; then
10664 - eerror "This ebuild doesn't currently support changing your default ABI"
10665 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
10666 - fi
10667 -
10668 - if use kernel_linux && kernel_is ge 4 8; then
10669 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
10670 - ewarn "which are limited to the following kernels:"
10671 - ewarn "<sys-kernel/gentoo-sources-4.8"
10672 - ewarn "<sys-kernel/vanilla-sources-4.8"
10673 - ewarn ""
10674 - ewarn "You are free to utilize epatch_user to provide whatever"
10675 - ewarn "support you feel is appropriate, but will not receive"
10676 - ewarn "support as a result of those changes."
10677 - ewarn ""
10678 - ewarn "Do not file a bug report about this."
10679 - ewarn ""
10680 - fi
10681 -
10682 - # Since Nvidia ships many different series of drivers, we need to give the user
10683 - # some kind of guidance as to what version they should install. This tries
10684 - # to point the user in the right direction but can't be perfect. check
10685 - # nvidia-driver.eclass
10686 - nvidia-driver-check-warning
10687 -
10688 - # Kernel features/options to check for
10689 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
10690 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
10691 -
10692 - # Now do the above checks
10693 - use kernel_linux && check_extra_config
10694 -}
10695 -
10696 -pkg_setup() {
10697 - # try to turn off distcc and ccache for people that have a problem with it
10698 - export DISTCC_DISABLE=1
10699 - export CCACHE_DISABLE=1
10700 -
10701 - if use driver && use kernel_linux; then
10702 - MODULE_NAMES="nvidia(video:${S}/kernel)"
10703 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
10704 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
10705 -
10706 - # This needs to run after MODULE_NAMES (so that the eclass checks
10707 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
10708 - # is set (so that KV_DIR is populated).
10709 - linux-mod_pkg_setup
10710 -
10711 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
10712 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
10713 -
10714 - # linux-mod_src_compile calls set_arch_to_kernel, which
10715 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
10716 - # expects x86_64 or i386 and then converts it to x86
10717 - # later on in the build process
10718 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
10719 - fi
10720 -
10721 - if use kernel_linux && kernel_is lt 2 6 9; then
10722 - eerror "You must build this against 2.6.9 or higher kernels."
10723 - fi
10724 -
10725 - # set variables to where files are in the package structure
10726 - if use kernel_FreeBSD; then
10727 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
10728 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
10729 - NV_DOC="${S}/doc"
10730 - NV_OBJ="${S}/obj"
10731 - NV_SRC="${S}/src"
10732 - NV_MAN="${S}/x11/man"
10733 - NV_X11="${S}/obj"
10734 - NV_SOVER=1
10735 - elif use kernel_linux; then
10736 - NV_DOC="${S}"
10737 - NV_OBJ="${S}"
10738 - NV_SRC="${S}/kernel"
10739 - NV_MAN="${S}"
10740 - NV_X11="${S}"
10741 - NV_SOVER=${PV}
10742 - else
10743 - die "Could not determine proper NVIDIA package"
10744 - fi
10745 -}
10746 -
10747 -src_prepare() {
10748 - epatch "${FILESDIR}"/${P}-profiles-rc.patch
10749 -
10750 - if use pax_kernel; then
10751 - ewarn "Using PAX patches is not supported. You will be asked to"
10752 - ewarn "use a standard kernel should you have issues. Should you"
10753 - ewarn "need support with these patches, contact the PaX team."
10754 - epatch "${FILESDIR}"/${PN}-367.35-pax.patch
10755 - fi
10756 -
10757 - # Allow user patches so they can support RC kernels and whatever else
10758 - epatch_user
10759 -}
10760 -
10761 -src_compile() {
10762 - # This is already the default on Linux, as there's no toplevel Makefile, but
10763 - # on FreeBSD there's one and triggers the kernel module build, as we install
10764 - # it by itself, pass this.
10765 -
10766 - cd "${NV_SRC}"
10767 - if use kernel_FreeBSD; then
10768 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
10769 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
10770 - elif use driver && use kernel_linux; then
10771 - MAKEOPTS=-j1 linux-mod_src_compile
10772 - fi
10773 -
10774 - if use tools; then
10775 - emake -C "${S}"/nvidia-settings-${PV}/src \
10776 - AR="$(tc-getAR)" \
10777 - CC="$(tc-getCC)" \
10778 - LIBDIR="$(get_libdir)" \
10779 - NV_VERBOSE=1 \
10780 - RANLIB="$(tc-getRANLIB)" \
10781 - DO_STRIP= \
10782 - build-xnvctrl
10783 -
10784 - emake -C "${S}"/nvidia-settings-${PV}/src \
10785 - CC="$(tc-getCC)" \
10786 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
10787 - LD="$(tc-getCC)" \
10788 - LIBDIR="$(get_libdir)" \
10789 - NVML_ENABLED=0 \
10790 - NV_USE_BUNDLED_LIBJANSSON=0 \
10791 - NV_VERBOSE=1 \
10792 - DO_STRIP=
10793 - fi
10794 -}
10795 -
10796 -# Install nvidia library:
10797 -# the first parameter is the library to install
10798 -# the second parameter is the provided soversion
10799 -# the third parameter is the target directory if it is not /usr/lib
10800 -donvidia() {
10801 - # Full path to library
10802 - nv_LIB="${1}"
10803 -
10804 - # SOVER to use
10805 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
10806 -
10807 - # Where to install
10808 - nv_DEST="${2}"
10809 -
10810 - # Get just the library name
10811 - nv_LIBNAME=$(basename "${nv_LIB}")
10812 -
10813 - if [[ "${nv_DEST}" ]]; then
10814 - exeinto ${nv_DEST}
10815 - action="doexe"
10816 - else
10817 - nv_DEST="/usr/$(get_libdir)"
10818 - action="dolib.so"
10819 - fi
10820 -
10821 - # Install the library
10822 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
10823 -
10824 - # If the library has a SONAME and SONAME does not match the library name,
10825 - # then we need to create a symlink
10826 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
10827 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
10828 - || die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
10829 - fi
10830 -
10831 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
10832 - || die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
10833 -}
10834 -
10835 -src_install() {
10836 - if use driver && use kernel_linux; then
10837 - linux-mod_src_install
10838 -
10839 - # Add the aliases
10840 - # This file is tweaked with the appropriate video group in
10841 - # pkg_preinst, see bug #491414
10842 - insinto /etc/modprobe.d
10843 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
10844 - doins "${FILESDIR}"/nvidia-rmmod.conf
10845 -
10846 - # Ensures that our device nodes are created when not using X
10847 - exeinto "$(get_udevdir)"
10848 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
10849 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
10850 - elif use kernel_FreeBSD; then
10851 - if use x86-fbsd; then
10852 - insinto /boot/modules
10853 - doins "${S}/src/nvidia.kld"
10854 - fi
10855 -
10856 - exeinto /boot/modules
10857 - doexe "${S}/src/nvidia.ko"
10858 - fi
10859 -
10860 - # NVIDIA kernel <-> userspace driver config lib
10861 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
10862 -
10863 - # NVIDIA framebuffer capture library
10864 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
10865 -
10866 - # NVIDIA video encode/decode <-> CUDA
10867 - if use kernel_linux; then
10868 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
10869 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
10870 - fi
10871 -
10872 - if use X; then
10873 - # Xorg DDX driver
10874 - insinto /usr/$(get_libdir)/xorg/modules/drivers
10875 - doins ${NV_X11}/nvidia_drv.so
10876 -
10877 - # Xorg GLX driver
10878 - donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
10879 - /usr/$(get_libdir)/opengl/nvidia/extensions
10880 -
10881 - # Xorg nvidia.conf
10882 - if has_version '>=x11-base/xorg-server-1.16'; then
10883 - insinto /usr/share/X11/xorg.conf.d
10884 - newins {,50-}nvidia-drm-outputclass.conf
10885 - fi
10886 - fi
10887 -
10888 - # OpenCL ICD for NVIDIA
10889 - if use kernel_linux; then
10890 - insinto /etc/OpenCL/vendors
10891 - doins ${NV_OBJ}/nvidia.icd
10892 - fi
10893 -
10894 - # Documentation
10895 - dohtml ${NV_DOC}/html/*
10896 - if use kernel_FreeBSD; then
10897 - dodoc "${NV_DOC}/README"
10898 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
10899 - use tools && doman "${NV_MAN}/nvidia-settings.1"
10900 - else
10901 - # Docs
10902 - newdoc "${NV_DOC}/README.txt" README
10903 - dodoc "${NV_DOC}/NVIDIA_Changelog"
10904 - doman "${NV_MAN}/nvidia-smi.1.gz"
10905 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
10906 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
10907 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
10908 - fi
10909 -
10910 - # Helper Apps
10911 - exeinto /opt/bin/
10912 -
10913 - if use X; then
10914 - doexe ${NV_OBJ}/nvidia-xconfig
10915 -
10916 - insinto /etc/vulkan/icd.d
10917 - doins nvidia_icd.json
10918 - fi
10919 -
10920 - if use kernel_linux; then
10921 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
10922 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
10923 - doexe ${NV_OBJ}/nvidia-debugdump
10924 - doexe ${NV_OBJ}/nvidia-persistenced
10925 - doexe ${NV_OBJ}/nvidia-smi
10926 -
10927 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
10928 - doexe ${NV_OBJ}/nvidia-modprobe
10929 - fowners root:video /opt/bin/nvidia-modprobe
10930 - fperms 4710 /opt/bin/nvidia-modprobe
10931 - dosym /{opt,usr}/bin/nvidia-modprobe
10932 -
10933 - doman nvidia-cuda-mps-control.1.gz
10934 - doman nvidia-modprobe.1.gz
10935 - doman nvidia-persistenced.1.gz
10936 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
10937 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
10938 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
10939 - fi
10940 -
10941 - if use tools; then
10942 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
10943 - DESTDIR="${D}" \
10944 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
10945 - LIBDIR="${D}/usr/$(get_libdir)" \
10946 - NV_USE_BUNDLED_LIBJANSSON=0 \
10947 - NV_VERBOSE=1 \
10948 - PREFIX=/usr \
10949 - DO_STRIP= \
10950 - install
10951 -
10952 - if use static-libs; then
10953 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
10954 -
10955 - insinto /usr/include/NVCtrl
10956 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
10957 - fi
10958 -
10959 - insinto /usr/share/nvidia/
10960 - doins nvidia-application-profiles-${PV}-key-documentation
10961 -
10962 - insinto /etc/nvidia
10963 - newins \
10964 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
10965 -
10966 - # There is no icon in the FreeBSD tarball.
10967 - use kernel_FreeBSD || \
10968 - doicon ${NV_OBJ}/nvidia-settings.png
10969 -
10970 - domenu "${FILESDIR}"/nvidia-settings.desktop
10971 -
10972 - exeinto /etc/X11/xinit/xinitrc.d
10973 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
10974 - fi
10975 -
10976 - dobin ${NV_OBJ}/nvidia-bug-report.sh
10977 -
10978 - if has_multilib_profile && use multilib; then
10979 - local OABI=${ABI}
10980 - for ABI in $(get_install_abis); do
10981 - src_install-libs
10982 - done
10983 - ABI=${OABI}
10984 - unset OABI
10985 - else
10986 - src_install-libs
10987 - fi
10988 -
10989 - is_final_abi || die "failed to iterate through all ABIs"
10990 -
10991 - readme.gentoo_create_doc
10992 -}
10993 -
10994 -src_install-libs() {
10995 - local inslibdir=$(get_libdir)
10996 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
10997 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
10998 - local libdir=${NV_OBJ}
10999 -
11000 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
11001 - libdir=${NV_OBJ}/32
11002 - fi
11003 -
11004 - if use X; then
11005 - NV_GLX_LIBRARIES=(
11006 - "libEGL.so.1 ${GL_ROOT}"
11007 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
11008 - "libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
11009 - "libGLESv1_CM.so.1 ${GL_ROOT}"
11010 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
11011 - "libGLESv2.so.2 ${GL_ROOT}"
11012 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
11013 - "libGLX.so.0 ${GL_ROOT}"
11014 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
11015 - "libGLdispatch.so.0 ${GL_ROOT}"
11016 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
11017 - "libOpenGL.so.0 ${GL_ROOT}"
11018 - "libcuda.so.${NV_SOVER}"
11019 - "libnvcuvid.so.${NV_SOVER}"
11020 - "libnvidia-compiler.so.${NV_SOVER}"
11021 - "libnvidia-eglcore.so.${NV_SOVER}"
11022 - "libnvidia-encode.so.${NV_SOVER}"
11023 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
11024 - "libnvidia-fbc.so.${NV_SOVER}"
11025 - "libnvidia-glcore.so.${NV_SOVER}"
11026 - "libnvidia-glsi.so.${NV_SOVER}"
11027 - "libnvidia-ifr.so.${NV_SOVER}"
11028 - "libnvidia-opencl.so.${NV_SOVER}"
11029 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
11030 - "libvdpau_nvidia.so.${NV_SOVER}"
11031 - )
11032 -
11033 - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
11034 - then
11035 - NV_GLX_LIBRARIES+=(
11036 - "libnvidia-egl-wayland.so.${NV_SOVER}"
11037 - )
11038 - fi
11039 -
11040 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
11041 - then
11042 - NV_GLX_LIBRARIES+=(
11043 - "libnvidia-wfb.so.${NV_SOVER}"
11044 - )
11045 - fi
11046 -
11047 - if use kernel_FreeBSD; then
11048 - NV_GLX_LIBRARIES+=(
11049 - "libnvidia-tls.so.${NV_SOVER}"
11050 - )
11051 - fi
11052 -
11053 - if use kernel_linux; then
11054 - NV_GLX_LIBRARIES+=(
11055 - "libnvidia-ml.so.${NV_SOVER}"
11056 - "tls/libnvidia-tls.so.${NV_SOVER}"
11057 - )
11058 - fi
11059 -
11060 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
11061 - donvidia ${libdir}/${NV_LIB}
11062 - done
11063 - fi
11064 -}
11065 -
11066 -pkg_preinst() {
11067 - if use driver && use kernel_linux; then
11068 - linux-mod_pkg_preinst
11069 -
11070 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
11071 - if [ -z "${videogroup}" ]; then
11072 - eerror "Failed to determine the video group gid"
11073 - die "Failed to determine the video group gid"
11074 - else
11075 - sed -i \
11076 - -e "s:PACKAGE:${PF}:g" \
11077 - -e "s:VIDEOGID:${videogroup}:" \
11078 - "${D}"/etc/modprobe.d/nvidia.conf || die
11079 - fi
11080 - fi
11081 -
11082 - # Clean the dynamic libGL stuff's home to ensure
11083 - # we dont have stale libs floating around
11084 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
11085 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
11086 - fi
11087 - # Make sure we nuke the old nvidia-glx's env.d file
11088 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
11089 - rm -f "${ROOT}"/etc/env.d/09nvidia
11090 - fi
11091 -}
11092 -
11093 -pkg_postinst() {
11094 - use driver && use kernel_linux && linux-mod_pkg_postinst
11095 -
11096 - # Switch to the nvidia implementation
11097 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
11098 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
11099 -
11100 - readme.gentoo_print_elog
11101 -
11102 - if ! use X; then
11103 - elog "You have elected to not install the X.org driver. Along with"
11104 - elog "this the OpenGL libraries and VDPAU libraries were not"
11105 - elog "installed. Additionally, once the driver is loaded your card"
11106 - elog "and fan will run at max speed which may not be desirable."
11107 - elog "Use the 'nvidia-smi' init script to have your card and fan"
11108 - elog "speed scale appropriately."
11109 - elog
11110 - fi
11111 - if ! use tools; then
11112 - elog "USE=tools controls whether the nvidia-settings application"
11113 - elog "is installed. If you would like to use it, enable that"
11114 - elog "flag and re-emerge this ebuild. Optionally you can install"
11115 - elog "media-video/nvidia-settings"
11116 - elog
11117 - fi
11118 -}
11119 -
11120 -pkg_prerm() {
11121 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
11122 -}
11123 -
11124 -pkg_postrm() {
11125 - use driver && use kernel_linux && linux-mod_pkg_postrm
11126 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
11127 -}
11128
11129 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-370.28-r2.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-370.28-r2.ebuild
11130 deleted file mode 100644
11131 index 88425bac1ca..00000000000
11132 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-370.28-r2.ebuild
11133 +++ /dev/null
11134 @@ -1,552 +0,0 @@
11135 -# Copyright 1999-2017 Gentoo Foundation
11136 -# Distributed under the terms of the GNU General Public License v2
11137 -
11138 -EAPI=5
11139 -
11140 -inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
11141 - portability toolchain-funcs unpacker user udev
11142 -
11143 -NV_URI="http://us.download.nvidia.com/XFree86/"
11144 -X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
11145 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
11146 -ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
11147 -X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
11148 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
11149 -
11150 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
11151 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
11152 -SRC_URI="
11153 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
11154 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
11155 - arm? ( ${NV_URI}Linux-x86-ARM/${PV}/${ARM_NV_PACKAGE}.run )
11156 - x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
11157 - x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
11158 - tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
11159 -"
11160 -
11161 -LICENSE="GPL-2 NVIDIA-r2"
11162 -SLOT="0/${PV%.*}"
11163 -KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
11164 -RESTRICT="bindist mirror"
11165 -EMULTILIB_PKG="true"
11166 -
11167 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
11168 -REQUIRED_USE="
11169 - tools? ( X )
11170 - static-libs? ( tools )
11171 -"
11172 -
11173 -COMMON="
11174 - app-eselect/eselect-opencl
11175 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
11176 - tools? (
11177 - dev-libs/atk
11178 - dev-libs/glib:2
11179 - dev-libs/jansson
11180 - gtk3? (
11181 - x11-libs/gtk+:3
11182 - )
11183 - x11-libs/cairo
11184 - x11-libs/gdk-pixbuf[X]
11185 - x11-libs/gtk+:2
11186 - x11-libs/libX11
11187 - x11-libs/libXext
11188 - x11-libs/libXrandr
11189 - x11-libs/libXv
11190 - x11-libs/libXxf86vm
11191 - x11-libs/pango[X]
11192 - )
11193 - X? (
11194 - >=app-eselect/eselect-opengl-1.0.9
11195 - app-misc/pax-utils
11196 - )
11197 -"
11198 -DEPEND="
11199 - ${COMMON}
11200 - kernel_linux? ( virtual/linux-sources )
11201 -"
11202 -RDEPEND="
11203 - ${COMMON}
11204 - acpi? ( sys-power/acpid )
11205 - tools? ( !media-video/nvidia-settings )
11206 - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
11207 - X? (
11208 - <x11-base/xorg-server-1.18.99:=
11209 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
11210 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
11211 - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
11212 - sys-libs/zlib[${MULTILIB_USEDEP}]
11213 - )
11214 -"
11215 -
11216 -QA_PREBUILT="opt/* usr/lib*"
11217 -
11218 -S=${WORKDIR}/
11219 -
11220 -pkg_pretend() {
11221 - if use amd64 && has_multilib_profile && \
11222 - [ "${DEFAULT_ABI}" != "amd64" ]; then
11223 - eerror "This ebuild doesn't currently support changing your default ABI"
11224 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
11225 - fi
11226 -
11227 - if use kernel_linux && kernel_is ge 4 8; then
11228 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
11229 - ewarn "which are limited to the following kernels:"
11230 - ewarn "<sys-kernel/gentoo-sources-4.8"
11231 - ewarn "<sys-kernel/vanilla-sources-4.8"
11232 - ewarn ""
11233 - ewarn "You are free to utilize epatch_user to provide whatever"
11234 - ewarn "support you feel is appropriate, but will not receive"
11235 - ewarn "support as a result of those changes."
11236 - ewarn ""
11237 - ewarn "Do not file a bug report about this."
11238 - ewarn ""
11239 - fi
11240 -
11241 - # Since Nvidia ships many different series of drivers, we need to give the user
11242 - # some kind of guidance as to what version they should install. This tries
11243 - # to point the user in the right direction but can't be perfect. check
11244 - # nvidia-driver.eclass
11245 - nvidia-driver-check-warning
11246 -
11247 - # Kernel features/options to check for
11248 - CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
11249 - use x86 && CONFIG_CHECK+=" ~HIGHMEM"
11250 -
11251 - # Now do the above checks
11252 - use kernel_linux && check_extra_config
11253 -}
11254 -
11255 -pkg_setup() {
11256 - # try to turn off distcc and ccache for people that have a problem with it
11257 - export DISTCC_DISABLE=1
11258 - export CCACHE_DISABLE=1
11259 -
11260 - if use driver && use kernel_linux; then
11261 - MODULE_NAMES="nvidia(video:${S}/kernel)"
11262 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
11263 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
11264 -
11265 - # This needs to run after MODULE_NAMES (so that the eclass checks
11266 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
11267 - # is set (so that KV_DIR is populated).
11268 - linux-mod_pkg_setup
11269 -
11270 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
11271 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
11272 -
11273 - # linux-mod_src_compile calls set_arch_to_kernel, which
11274 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
11275 - # expects x86_64 or i386 and then converts it to x86
11276 - # later on in the build process
11277 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
11278 - fi
11279 -
11280 - if use kernel_linux && kernel_is lt 2 6 9; then
11281 - eerror "You must build this against 2.6.9 or higher kernels."
11282 - fi
11283 -
11284 - # set variables to where files are in the package structure
11285 - if use kernel_FreeBSD; then
11286 - use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
11287 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
11288 - NV_DOC="${S}/doc"
11289 - NV_OBJ="${S}/obj"
11290 - NV_SRC="${S}/src"
11291 - NV_MAN="${S}/x11/man"
11292 - NV_X11="${S}/obj"
11293 - NV_SOVER=1
11294 - elif use kernel_linux; then
11295 - NV_DOC="${S}"
11296 - NV_OBJ="${S}"
11297 - NV_SRC="${S}/kernel"
11298 - NV_MAN="${S}"
11299 - NV_X11="${S}"
11300 - NV_SOVER=${PV}
11301 - else
11302 - die "Could not determine proper NVIDIA package"
11303 - fi
11304 -}
11305 -
11306 -src_prepare() {
11307 - epatch "${FILESDIR}"/${P}-profiles-rc.patch
11308 -
11309 - if use pax_kernel; then
11310 - ewarn "Using PAX patches is not supported. You will be asked to"
11311 - ewarn "use a standard kernel should you have issues. Should you"
11312 - ewarn "need support with these patches, contact the PaX team."
11313 - epatch "${FILESDIR}"/${PN}-367.35-pax.patch
11314 - fi
11315 -
11316 - # Allow user patches so they can support RC kernels and whatever else
11317 - epatch_user
11318 -}
11319 -
11320 -src_compile() {
11321 - # This is already the default on Linux, as there's no toplevel Makefile, but
11322 - # on FreeBSD there's one and triggers the kernel module build, as we install
11323 - # it by itself, pass this.
11324 -
11325 - cd "${NV_SRC}"
11326 - if use kernel_FreeBSD; then
11327 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
11328 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
11329 - elif use driver && use kernel_linux; then
11330 - MAKEOPTS=-j1 linux-mod_src_compile
11331 - fi
11332 -
11333 - if use tools; then
11334 - emake -C "${S}"/nvidia-settings-${PV}/src \
11335 - AR="$(tc-getAR)" \
11336 - CC="$(tc-getCC)" \
11337 - LIBDIR="$(get_libdir)" \
11338 - NV_VERBOSE=1 \
11339 - RANLIB="$(tc-getRANLIB)" \
11340 - DO_STRIP= \
11341 - build-xnvctrl
11342 -
11343 - emake -C "${S}"/nvidia-settings-${PV}/src \
11344 - CC="$(tc-getCC)" \
11345 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
11346 - LD="$(tc-getCC)" \
11347 - LIBDIR="$(get_libdir)" \
11348 - NVML_ENABLED=0 \
11349 - NV_USE_BUNDLED_LIBJANSSON=0 \
11350 - NV_VERBOSE=1 \
11351 - DO_STRIP=
11352 - fi
11353 -}
11354 -
11355 -# Install nvidia library:
11356 -# the first parameter is the library to install
11357 -# the second parameter is the provided soversion
11358 -# the third parameter is the target directory if it is not /usr/lib
11359 -donvidia() {
11360 - # Full path to library
11361 - nv_LIB="${1}"
11362 -
11363 - # SOVER to use
11364 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
11365 -
11366 - # Where to install
11367 - nv_DEST="${2}"
11368 -
11369 - # Get just the library name
11370 - nv_LIBNAME=$(basename "${nv_LIB}")
11371 -
11372 - if [[ "${nv_DEST}" ]]; then
11373 - exeinto ${nv_DEST}
11374 - action="doexe"
11375 - else
11376 - nv_DEST="/usr/$(get_libdir)"
11377 - action="dolib.so"
11378 - fi
11379 -
11380 - # Install the library
11381 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
11382 -
11383 - # If the library has a SONAME and SONAME does not match the library name,
11384 - # then we need to create a symlink
11385 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
11386 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
11387 - || die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
11388 - fi
11389 -
11390 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
11391 - || die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
11392 -}
11393 -
11394 -src_install() {
11395 - if use driver && use kernel_linux; then
11396 - linux-mod_src_install
11397 -
11398 - # Add the aliases
11399 - # This file is tweaked with the appropriate video group in
11400 - # pkg_preinst, see bug #491414
11401 - insinto /etc/modprobe.d
11402 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
11403 - doins "${FILESDIR}"/nvidia-rmmod.conf
11404 -
11405 - # Ensures that our device nodes are created when not using X
11406 - exeinto "$(get_udevdir)"
11407 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
11408 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
11409 - elif use kernel_FreeBSD; then
11410 - if use x86-fbsd; then
11411 - insinto /boot/modules
11412 - doins "${S}/src/nvidia.kld"
11413 - fi
11414 -
11415 - exeinto /boot/modules
11416 - doexe "${S}/src/nvidia.ko"
11417 - fi
11418 -
11419 - # NVIDIA kernel <-> userspace driver config lib
11420 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
11421 -
11422 - # NVIDIA framebuffer capture library
11423 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
11424 -
11425 - # NVIDIA video encode/decode <-> CUDA
11426 - if use kernel_linux; then
11427 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
11428 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
11429 - fi
11430 -
11431 - if use X; then
11432 - # Xorg DDX driver
11433 - insinto /usr/$(get_libdir)/xorg/modules/drivers
11434 - doins ${NV_X11}/nvidia_drv.so
11435 -
11436 - # Xorg GLX driver
11437 - donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
11438 - /usr/$(get_libdir)/opengl/nvidia/extensions
11439 -
11440 - # Xorg nvidia.conf
11441 - if has_version '>=x11-base/xorg-server-1.16'; then
11442 - insinto /usr/share/X11/xorg.conf.d
11443 - newins {,50-}nvidia-drm-outputclass.conf
11444 - fi
11445 - fi
11446 -
11447 - # OpenCL ICD for NVIDIA
11448 - if use kernel_linux; then
11449 - insinto /etc/OpenCL/vendors
11450 - doins ${NV_OBJ}/nvidia.icd
11451 - fi
11452 -
11453 - # Documentation
11454 - dohtml ${NV_DOC}/html/*
11455 - if use kernel_FreeBSD; then
11456 - dodoc "${NV_DOC}/README"
11457 - use X && doman "${NV_MAN}/nvidia-xconfig.1"
11458 - use tools && doman "${NV_MAN}/nvidia-settings.1"
11459 - else
11460 - # Docs
11461 - newdoc "${NV_DOC}/README.txt" README
11462 - dodoc "${NV_DOC}/NVIDIA_Changelog"
11463 - doman "${NV_MAN}/nvidia-smi.1.gz"
11464 - use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
11465 - use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
11466 - doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
11467 - fi
11468 -
11469 - # Helper Apps
11470 - exeinto /opt/bin/
11471 -
11472 - if use X; then
11473 - doexe ${NV_OBJ}/nvidia-xconfig
11474 -
11475 - insinto /etc/vulkan/icd.d
11476 - doins nvidia_icd.json
11477 - fi
11478 -
11479 - if use kernel_linux; then
11480 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
11481 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
11482 - doexe ${NV_OBJ}/nvidia-debugdump
11483 - doexe ${NV_OBJ}/nvidia-persistenced
11484 - doexe ${NV_OBJ}/nvidia-smi
11485 -
11486 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
11487 - doexe ${NV_OBJ}/nvidia-modprobe
11488 - fowners root:video /opt/bin/nvidia-modprobe
11489 - fperms 4710 /opt/bin/nvidia-modprobe
11490 - dosym /{opt,usr}/bin/nvidia-modprobe
11491 -
11492 - doman nvidia-cuda-mps-control.1.gz
11493 - doman nvidia-modprobe.1.gz
11494 - doman nvidia-persistenced.1.gz
11495 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
11496 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
11497 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
11498 - fi
11499 -
11500 - if use tools; then
11501 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
11502 - DESTDIR="${D}" \
11503 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
11504 - LIBDIR="${D}/usr/$(get_libdir)" \
11505 - NV_USE_BUNDLED_LIBJANSSON=0 \
11506 - NV_VERBOSE=1 \
11507 - PREFIX=/usr \
11508 - DO_STRIP= \
11509 - install
11510 -
11511 - if use static-libs; then
11512 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
11513 -
11514 - insinto /usr/include/NVCtrl
11515 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
11516 - fi
11517 -
11518 - insinto /usr/share/nvidia/
11519 - doins nvidia-application-profiles-${PV}-key-documentation
11520 -
11521 - insinto /etc/nvidia
11522 - newins \
11523 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
11524 -
11525 - # There is no icon in the FreeBSD tarball.
11526 - use kernel_FreeBSD || \
11527 - doicon ${NV_OBJ}/nvidia-settings.png
11528 -
11529 - domenu "${FILESDIR}"/nvidia-settings.desktop
11530 -
11531 - exeinto /etc/X11/xinit/xinitrc.d
11532 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
11533 - fi
11534 -
11535 - dobin ${NV_OBJ}/nvidia-bug-report.sh
11536 -
11537 - if has_multilib_profile && use multilib; then
11538 - local OABI=${ABI}
11539 - for ABI in $(get_install_abis); do
11540 - src_install-libs
11541 - done
11542 - ABI=${OABI}
11543 - unset OABI
11544 - else
11545 - src_install-libs
11546 - fi
11547 -
11548 - is_final_abi || die "failed to iterate through all ABIs"
11549 -
11550 - readme.gentoo_create_doc
11551 -}
11552 -
11553 -src_install-libs() {
11554 - local inslibdir=$(get_libdir)
11555 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
11556 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
11557 - local libdir=${NV_OBJ}
11558 -
11559 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
11560 - libdir=${NV_OBJ}/32
11561 - fi
11562 -
11563 - if use X; then
11564 - NV_GLX_LIBRARIES=(
11565 - "libEGL.so.1 ${GL_ROOT}"
11566 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
11567 - "libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
11568 - "libGLESv1_CM.so.1 ${GL_ROOT}"
11569 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
11570 - "libGLESv2.so.2 ${GL_ROOT}"
11571 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
11572 - "libGLX.so.0 ${GL_ROOT}"
11573 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
11574 - "libGLdispatch.so.0 ${GL_ROOT}"
11575 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
11576 - "libOpenGL.so.0 ${GL_ROOT}"
11577 - "libcuda.so.${NV_SOVER}"
11578 - "libnvcuvid.so.${NV_SOVER}"
11579 - "libnvidia-compiler.so.${NV_SOVER}"
11580 - "libnvidia-eglcore.so.${NV_SOVER}"
11581 - "libnvidia-encode.so.${NV_SOVER}"
11582 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
11583 - "libnvidia-fbc.so.${NV_SOVER}"
11584 - "libnvidia-glcore.so.${NV_SOVER}"
11585 - "libnvidia-glsi.so.${NV_SOVER}"
11586 - "libnvidia-ifr.so.${NV_SOVER}"
11587 - "libnvidia-opencl.so.${NV_SOVER}"
11588 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
11589 - "libvdpau_nvidia.so.${NV_SOVER}"
11590 - )
11591 -
11592 - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
11593 - then
11594 - NV_GLX_LIBRARIES+=(
11595 - "libnvidia-egl-wayland.so.${NV_SOVER}"
11596 - )
11597 - fi
11598 -
11599 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
11600 - then
11601 - NV_GLX_LIBRARIES+=(
11602 - "libnvidia-wfb.so.${NV_SOVER}"
11603 - )
11604 - fi
11605 -
11606 - if use kernel_FreeBSD; then
11607 - NV_GLX_LIBRARIES+=(
11608 - "libnvidia-tls.so.${NV_SOVER}"
11609 - )
11610 - fi
11611 -
11612 - if use kernel_linux; then
11613 - NV_GLX_LIBRARIES+=(
11614 - "libnvidia-ml.so.${NV_SOVER}"
11615 - "tls/libnvidia-tls.so.${NV_SOVER}"
11616 - )
11617 - fi
11618 -
11619 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
11620 - donvidia ${libdir}/${NV_LIB}
11621 - done
11622 - fi
11623 -}
11624 -
11625 -pkg_preinst() {
11626 - if use driver && use kernel_linux; then
11627 - linux-mod_pkg_preinst
11628 -
11629 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
11630 - if [ -z "${videogroup}" ]; then
11631 - eerror "Failed to determine the video group gid"
11632 - die "Failed to determine the video group gid"
11633 - else
11634 - sed -i \
11635 - -e "s:PACKAGE:${PF}:g" \
11636 - -e "s:VIDEOGID:${videogroup}:" \
11637 - "${D}"/etc/modprobe.d/nvidia.conf || die
11638 - fi
11639 - fi
11640 -
11641 - # Clean the dynamic libGL stuff's home to ensure
11642 - # we dont have stale libs floating around
11643 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
11644 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
11645 - fi
11646 - # Make sure we nuke the old nvidia-glx's env.d file
11647 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
11648 - rm -f "${ROOT}"/etc/env.d/09nvidia
11649 - fi
11650 -}
11651 -
11652 -pkg_postinst() {
11653 - use driver && use kernel_linux && linux-mod_pkg_postinst
11654 -
11655 - # Switch to the nvidia implementation
11656 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
11657 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
11658 -
11659 - readme.gentoo_print_elog
11660 -
11661 - if ! use X; then
11662 - elog "You have elected to not install the X.org driver. Along with"
11663 - elog "this the OpenGL libraries and VDPAU libraries were not"
11664 - elog "installed. Additionally, once the driver is loaded your card"
11665 - elog "and fan will run at max speed which may not be desirable."
11666 - elog "Use the 'nvidia-smi' init script to have your card and fan"
11667 - elog "speed scale appropriately."
11668 - elog
11669 - fi
11670 - if ! use tools; then
11671 - elog "USE=tools controls whether the nvidia-settings application"
11672 - elog "is installed. If you would like to use it, enable that"
11673 - elog "flag and re-emerge this ebuild. Optionally you can install"
11674 - elog "media-video/nvidia-settings"
11675 - elog
11676 - fi
11677 -}
11678 -
11679 -pkg_prerm() {
11680 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
11681 -}
11682 -
11683 -pkg_postrm() {
11684 - use driver && use kernel_linux && linux-mod_pkg_postrm
11685 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
11686 -}