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 |
-} |