nvidia-drivers-334.16-r2 added

This commit is contained in:
Kolan Sh 2014-02-08 11:18:43 +04:00
parent 81ca93c7f0
commit 7f943d32e7
3 changed files with 507 additions and 0 deletions

View File

@ -2,15 +2,19 @@ DIST NVIDIA-FreeBSD-x86-325.15.tar.gz 34164781 SHA256 745d8454833d1ad59f6480ac2d
DIST NVIDIA-FreeBSD-x86-331.13.tar.gz 55428438 SHA256 a9d2c761c0c58898f536728728420b36685364fccf864b57a7d3413d74a8ba5f SHA512 96e922797cbc1a51147e07b208f33d54ae5648ad8b033ef9e7cb4f2fc5730a56b54ac265a8ea8b5004413dfd468db261d6f33a71e7879db7e431656c378adf21 WHIRLPOOL 7aab0be204e69c6f44333593150ae4bbb9e97d8967a52ae8d228acfa2051763ac174a80e170cb11978dac3c91eb285b845a5c6c5e74b5b7f398b35417b409650 DIST NVIDIA-FreeBSD-x86-331.13.tar.gz 55428438 SHA256 a9d2c761c0c58898f536728728420b36685364fccf864b57a7d3413d74a8ba5f SHA512 96e922797cbc1a51147e07b208f33d54ae5648ad8b033ef9e7cb4f2fc5730a56b54ac265a8ea8b5004413dfd468db261d6f33a71e7879db7e431656c378adf21 WHIRLPOOL 7aab0be204e69c6f44333593150ae4bbb9e97d8967a52ae8d228acfa2051763ac174a80e170cb11978dac3c91eb285b845a5c6c5e74b5b7f398b35417b409650
DIST NVIDIA-FreeBSD-x86-331.17.tar.gz 55388934 SHA256 29497303a227126154d30558c0e8c5f375f4cb490355fb0cf8733c6136f3433b SHA512 7a71c13b4ba6098f005aa5525dbaea08751774f265da80c28149aad8cb1731e24857834e39be1c815534e018981434ff01befb11f6b6736436d3a8e1e0d65b9c WHIRLPOOL 79179de528f05826533b7a6e3843a55e592988800e27c2e7d71886416d489720284fc4ca0202894186bc4293fb759a0c29263e0b00f1bbafa5689ea80fbc0607 DIST NVIDIA-FreeBSD-x86-331.17.tar.gz 55388934 SHA256 29497303a227126154d30558c0e8c5f375f4cb490355fb0cf8733c6136f3433b SHA512 7a71c13b4ba6098f005aa5525dbaea08751774f265da80c28149aad8cb1731e24857834e39be1c815534e018981434ff01befb11f6b6736436d3a8e1e0d65b9c WHIRLPOOL 79179de528f05826533b7a6e3843a55e592988800e27c2e7d71886416d489720284fc4ca0202894186bc4293fb759a0c29263e0b00f1bbafa5689ea80fbc0607
DIST NVIDIA-FreeBSD-x86-331.38.tar.gz 55851205 SHA256 e4d5932bbc431135285f9e6dba88100688ba19621dc18df185bb1e354584c9d1 SHA512 f7f08d0570fd5d512eeb77bb8bc2aaf104bb0069b430dfe584cff32ec1e9da0af2f380fc52c59c34bf769a0d8b44ef05492beb80569fd530ca98beb763952d7a WHIRLPOOL 89470ec1edb54698faf5083c52532de09e2eb1787d2c5c8ded492350a6ca3f487e70168e9e198005076e6bbe3bfa76e6e97023dfa389f1b65f318f725fd473b1 DIST NVIDIA-FreeBSD-x86-331.38.tar.gz 55851205 SHA256 e4d5932bbc431135285f9e6dba88100688ba19621dc18df185bb1e354584c9d1 SHA512 f7f08d0570fd5d512eeb77bb8bc2aaf104bb0069b430dfe584cff32ec1e9da0af2f380fc52c59c34bf769a0d8b44ef05492beb80569fd530ca98beb763952d7a WHIRLPOOL 89470ec1edb54698faf5083c52532de09e2eb1787d2c5c8ded492350a6ca3f487e70168e9e198005076e6bbe3bfa76e6e97023dfa389f1b65f318f725fd473b1
DIST NVIDIA-FreeBSD-x86-334.16.tar.gz 56706965 SHA256 e2056730b3a2c3103e947f3a3008ea412dbdb504f2cebe167acb292741205942 SHA512 6719ce27fc96be114e12c96b672184f3dd1e115eca997d026a73d73d3d4a87d137e08ab3c667335c8add2305345a9326aa1401ab7b008fbd1b785153f20419e3 WHIRLPOOL 60accbe2ab9ddb082077b388fd8a29f0be997bb24fdf2d29559021d25feeae764d6f12702327e34285b606d13f2730ed1dc09a3e22e7761aa08cf130ac7c78df
DIST NVIDIA-FreeBSD-x86_64-325.15.tar.gz 34590166 SHA256 92429119ca8e50baa06c6681ed2b9eb6c37cdf256a19ba4e1827be4b202a0569 SHA512 c9e4d41a5dcb02a280fb323fd4578bc7851d4242890f1d8e69a59e083a2a76cccdaba3ed55f8eb8f983e9c89326f0a9d7152bd7770230fbe45fc7b5865c486b6 WHIRLPOOL c54638af7fb6aaf63222ea75cc377e5e449dfaa80dd47a23aed2eec8da1c460c9e3c24627a2853287585a65b0f562e3efc7916fe985a4816d82aebc12bf7021b DIST NVIDIA-FreeBSD-x86_64-325.15.tar.gz 34590166 SHA256 92429119ca8e50baa06c6681ed2b9eb6c37cdf256a19ba4e1827be4b202a0569 SHA512 c9e4d41a5dcb02a280fb323fd4578bc7851d4242890f1d8e69a59e083a2a76cccdaba3ed55f8eb8f983e9c89326f0a9d7152bd7770230fbe45fc7b5865c486b6 WHIRLPOOL c54638af7fb6aaf63222ea75cc377e5e449dfaa80dd47a23aed2eec8da1c460c9e3c24627a2853287585a65b0f562e3efc7916fe985a4816d82aebc12bf7021b
DIST NVIDIA-FreeBSD-x86_64-331.13.tar.gz 46552607 SHA256 3f42aaf4b35bb04dedd4f9511e36bb473ae4174c7609ea100396d16ec532a17f SHA512 7daae19273f31a7802852dd4fa7726a1b6c828e0c868f7fa918f5c6378b1152223638d7556a7c4f02246bb1e0ed2d32d9118c67c9b651f2d792ccc796b09bbbd WHIRLPOOL aec73e407be9280fa160fcfac4b7652f7f21f684c1442c106eedc8b82c2f99a0c5a3b4ee82f3c41244d22f819e96b9752f4989ec37ed0e975a3c8fe724236c86 DIST NVIDIA-FreeBSD-x86_64-331.13.tar.gz 46552607 SHA256 3f42aaf4b35bb04dedd4f9511e36bb473ae4174c7609ea100396d16ec532a17f SHA512 7daae19273f31a7802852dd4fa7726a1b6c828e0c868f7fa918f5c6378b1152223638d7556a7c4f02246bb1e0ed2d32d9118c67c9b651f2d792ccc796b09bbbd WHIRLPOOL aec73e407be9280fa160fcfac4b7652f7f21f684c1442c106eedc8b82c2f99a0c5a3b4ee82f3c41244d22f819e96b9752f4989ec37ed0e975a3c8fe724236c86
DIST NVIDIA-FreeBSD-x86_64-331.17.tar.gz 46516620 SHA256 4347179b55c6e9e2c0fbaa9fb8e87e316243eb8680d4182802326c1da01e7074 SHA512 7dbb5103924547bafb06a6b848c70e496570d34b583fc9f1d9e83697d0965c70495cf6942eebd612056e2c27e5db7595b6bd8c133a7fc00b1a94943092250bda WHIRLPOOL bad04990cee9df2a609495235c7ebc6260264535f95e0764e73cbb484b6f1ba86a46043dd7e8f3046ad2bf71c41fe2edd410f142bc4baa2304d96a7d7790c31d DIST NVIDIA-FreeBSD-x86_64-331.17.tar.gz 46516620 SHA256 4347179b55c6e9e2c0fbaa9fb8e87e316243eb8680d4182802326c1da01e7074 SHA512 7dbb5103924547bafb06a6b848c70e496570d34b583fc9f1d9e83697d0965c70495cf6942eebd612056e2c27e5db7595b6bd8c133a7fc00b1a94943092250bda WHIRLPOOL bad04990cee9df2a609495235c7ebc6260264535f95e0764e73cbb484b6f1ba86a46043dd7e8f3046ad2bf71c41fe2edd410f142bc4baa2304d96a7d7790c31d
DIST NVIDIA-FreeBSD-x86_64-331.38.tar.gz 46961827 SHA256 cd01441b324ec78dce6343e54670222dcbdd5752c1fe6eda3af0dee1b07c11ee SHA512 6c8924efca6c4dae78a71a7deeaaca05c4e012410d633c3c35c6be4afa4cd081d3c5d0f4393d4570e041bd215f0c7b1fed66c863a835e6ed5ddda91008bbd331 WHIRLPOOL 0aaf9bb60be620089d996adebb89cd7dd1761bd214f852d803985ee2cf76955bf5a2614230f57bbd138e5b9d832b3f930500da0b3dc235888f6d03da0ae4b8e8 DIST NVIDIA-FreeBSD-x86_64-331.38.tar.gz 46961827 SHA256 cd01441b324ec78dce6343e54670222dcbdd5752c1fe6eda3af0dee1b07c11ee SHA512 6c8924efca6c4dae78a71a7deeaaca05c4e012410d633c3c35c6be4afa4cd081d3c5d0f4393d4570e041bd215f0c7b1fed66c863a835e6ed5ddda91008bbd331 WHIRLPOOL 0aaf9bb60be620089d996adebb89cd7dd1761bd214f852d803985ee2cf76955bf5a2614230f57bbd138e5b9d832b3f930500da0b3dc235888f6d03da0ae4b8e8
DIST NVIDIA-FreeBSD-x86_64-334.16.tar.gz 57457834 SHA256 3dfcbc7f4bb78d688a48b19df2f561f186c9e251bc0fbe353bbc002977cd751b SHA512 61821248b9f1f7e6c82fd667c9158dc422759ca35db3b6756fa1c65d619e36d9f8b2d11637d88fb1e2f8c97e6b1b01ccc751b5f5be1f217e2c2524d328a8fd64 WHIRLPOOL 8714c81a6b9315ac2d689fc809afec77bb340e019a164d807da3c9857b64f2700f76513adcdb8fe300a61f5e8adb1bb7a54115a853b12a95010c40fec9e7720f
DIST NVIDIA-Linux-x86-325.15.run 27409286 SHA256 3d790e4bfed24641f7cc76879144ab5d52b12271012ba381b0d33aa1a2e08775 SHA512 48052c3daa8748a7c43de1c24e00fdd3f94cebbe7f5efbb185a0472a1d0bbab8adfe377359ccdc6cd8e437a80506fdd551408237b0842c194a3497c43cf3487e WHIRLPOOL 387fb8af1a31cc295abe7b15fee7d5bc01c515603b178abe7f50864dbbf0685ca50f88e67359adc4af8e90caaeb1fba95aa6af9f54e6fced46c82c5cfc094390 DIST NVIDIA-Linux-x86-325.15.run 27409286 SHA256 3d790e4bfed24641f7cc76879144ab5d52b12271012ba381b0d33aa1a2e08775 SHA512 48052c3daa8748a7c43de1c24e00fdd3f94cebbe7f5efbb185a0472a1d0bbab8adfe377359ccdc6cd8e437a80506fdd551408237b0842c194a3497c43cf3487e WHIRLPOOL 387fb8af1a31cc295abe7b15fee7d5bc01c515603b178abe7f50864dbbf0685ca50f88e67359adc4af8e90caaeb1fba95aa6af9f54e6fced46c82c5cfc094390
DIST NVIDIA-Linux-x86-331.13.run 36834516 SHA256 36d5402d9cca8eb24261e1141ecc67040a4120f5a9391de0481c68e9de9009be SHA512 97603a193e63dd747a38751e79dfb97425af2c9332d2a40bd0083ad82b35e003e602ba029d5c7b0683bbc4644af19e133214c72e72af0f23bf55976e61637151 WHIRLPOOL d7e18bf5f3725973b48dc57e6137c91c31c2654b90c28f8606ca193d40d970f61a2ec089bacee282753bc51673390c38b8704a9693d36c30a09cc5de7a0fbfa5 DIST NVIDIA-Linux-x86-331.13.run 36834516 SHA256 36d5402d9cca8eb24261e1141ecc67040a4120f5a9391de0481c68e9de9009be SHA512 97603a193e63dd747a38751e79dfb97425af2c9332d2a40bd0083ad82b35e003e602ba029d5c7b0683bbc4644af19e133214c72e72af0f23bf55976e61637151 WHIRLPOOL d7e18bf5f3725973b48dc57e6137c91c31c2654b90c28f8606ca193d40d970f61a2ec089bacee282753bc51673390c38b8704a9693d36c30a09cc5de7a0fbfa5
DIST NVIDIA-Linux-x86-331.17.run 36866490 SHA256 5c2edd5991964430f5ed16b6fee8d54a164eb3beb8eee4f7b8bb7f68baa4cc88 SHA512 acd2b5e5648c8f534b1eedc95302a0869a9786a79eed1d5312b817520782c46cd3075d2dba562dd111d34267cf22e5f8da94ac353e72c00c8a71a1d36b97db55 WHIRLPOOL 0c2fa3f399c9f28ee5b4516c230b948a1d54b61e4f853fd1a2cfc149c5748621c5ea2f0037a0b3dc87bd2e78a168c9ce5d710ecdaf8a67e38957963b6f224e4b DIST NVIDIA-Linux-x86-331.17.run 36866490 SHA256 5c2edd5991964430f5ed16b6fee8d54a164eb3beb8eee4f7b8bb7f68baa4cc88 SHA512 acd2b5e5648c8f534b1eedc95302a0869a9786a79eed1d5312b817520782c46cd3075d2dba562dd111d34267cf22e5f8da94ac353e72c00c8a71a1d36b97db55 WHIRLPOOL 0c2fa3f399c9f28ee5b4516c230b948a1d54b61e4f853fd1a2cfc149c5748621c5ea2f0037a0b3dc87bd2e78a168c9ce5d710ecdaf8a67e38957963b6f224e4b
DIST NVIDIA-Linux-x86-331.38.run 37020075 SHA256 396e4d8fffacd271937ef57dd90ec2dea3ff32ee9f1de73ce5370a6e29382bf4 SHA512 ae071d404a07754fd3eb4102b0d5d4cf2ec92aecfe65b5f618650f477f78dfa7d776f6786d0b53df2e0f5f00a8fae330bbfbe3de24afbf50ebffc7b45b027e2d WHIRLPOOL 95348fe4c87af0eadc998859f0e591899d18c9b1c52e40c6f53beb03393a2ef2e372f1a239c414bd003dd35520bf2265853ddbca6dbeded34b47150310a64cd4 DIST NVIDIA-Linux-x86-331.38.run 37020075 SHA256 396e4d8fffacd271937ef57dd90ec2dea3ff32ee9f1de73ce5370a6e29382bf4 SHA512 ae071d404a07754fd3eb4102b0d5d4cf2ec92aecfe65b5f618650f477f78dfa7d776f6786d0b53df2e0f5f00a8fae330bbfbe3de24afbf50ebffc7b45b027e2d WHIRLPOOL 95348fe4c87af0eadc998859f0e591899d18c9b1c52e40c6f53beb03393a2ef2e372f1a239c414bd003dd35520bf2265853ddbca6dbeded34b47150310a64cd4
DIST NVIDIA-Linux-x86-334.16.run 37562951 SHA256 e8e928d395d9e42978c549342241373a7376ee9ed679f379c33feee873a13fd2 SHA512 f94eeaab0a01b97126dc700b7f53e4366c34f18a9a477da2afcc868025bfc30d853fe9fcc3766d0fe5c13129711e2a914aed1cd506e46986b009b6a35296e9c3 WHIRLPOOL 012b831ad563b3df2fa69031e5c67f3c68d7e2eebef763a0fd591199f3d222820222e130b78b2ae6239b36b64a2f682c6f1e2f6ebfc952adea1fd7700ecafe89
DIST NVIDIA-Linux-x86_64-325.15.run 48034648 SHA256 01446fbd94f6eb3b2e1b3d3f2b06970bf470c3ee2cb1838b3d0c2416e6c74500 SHA512 323cbd8e6f3ce29a1556b83b2fb3456f919964ede1cbee4ddaa3539ab75eda7abe26b96ba500462eed2ade4163b8de20d1db6ea987af923710f0e1a60e432e83 WHIRLPOOL 7c05717a2cfcb003a8c1f9fc5f5e24cfd5216aca7167ee8f29b60c43262fc61afab9619147ee07cb2541aa1d55b13a730b52c90979b7970df709fb659fe782ff DIST NVIDIA-Linux-x86_64-325.15.run 48034648 SHA256 01446fbd94f6eb3b2e1b3d3f2b06970bf470c3ee2cb1838b3d0c2416e6c74500 SHA512 323cbd8e6f3ce29a1556b83b2fb3456f919964ede1cbee4ddaa3539ab75eda7abe26b96ba500462eed2ade4163b8de20d1db6ea987af923710f0e1a60e432e83 WHIRLPOOL 7c05717a2cfcb003a8c1f9fc5f5e24cfd5216aca7167ee8f29b60c43262fc61afab9619147ee07cb2541aa1d55b13a730b52c90979b7970df709fb659fe782ff
DIST NVIDIA-Linux-x86_64-331.13.run 59835902 SHA256 571741b8ea153281916382d287849f99a9fa65b911aa54d678b48ef0091cc0cd SHA512 5c7c6a23a691b67ad5943c36829b9e4f0c5103f4e3d3b28fbdfd9ee9cd697bb69a7474239313feb67ff9e0499749b49aa6ee33aaf59c1f14c14bd14ea5b25d62 WHIRLPOOL 5587c94c050134d13076955c3bdd7e33aca86f61befa3b70522338bcd535bcd1902140b2564fecdff1dda4fce025a028bf6698c025c80939fe84970c507ed00d DIST NVIDIA-Linux-x86_64-331.13.run 59835902 SHA256 571741b8ea153281916382d287849f99a9fa65b911aa54d678b48ef0091cc0cd SHA512 5c7c6a23a691b67ad5943c36829b9e4f0c5103f4e3d3b28fbdfd9ee9cd697bb69a7474239313feb67ff9e0499749b49aa6ee33aaf59c1f14c14bd14ea5b25d62 WHIRLPOOL 5587c94c050134d13076955c3bdd7e33aca86f61befa3b70522338bcd535bcd1902140b2564fecdff1dda4fce025a028bf6698c025c80939fe84970c507ed00d
DIST NVIDIA-Linux-x86_64-331.17.run 59878816 SHA256 22968b7bd6460456e99edcad18ec237ebe66fd19e349c9ec9c3d5a16c074eab4 SHA512 9d0f0c860622167ec5804eb4c8d8e58835ca6d4d0c8818824a66fd774f577f6c149612ab67a1f12e67b2a444c716d2254b6dfc91d53badb4233c0db3b2365f29 WHIRLPOOL a89fa9407b7cf92bc28a985112db2f268947f4032933163dfb78e0d9dc1cd955376a4ed2b041ddc681f488596e6d19e564436a7d89727bb5ac2285eede008298 DIST NVIDIA-Linux-x86_64-331.17.run 59878816 SHA256 22968b7bd6460456e99edcad18ec237ebe66fd19e349c9ec9c3d5a16c074eab4 SHA512 9d0f0c860622167ec5804eb4c8d8e58835ca6d4d0c8818824a66fd774f577f6c149612ab67a1f12e67b2a444c716d2254b6dfc91d53badb4233c0db3b2365f29 WHIRLPOOL a89fa9407b7cf92bc28a985112db2f268947f4032933163dfb78e0d9dc1cd955376a4ed2b041ddc681f488596e6d19e564436a7d89727bb5ac2285eede008298
DIST NVIDIA-Linux-x86_64-331.38.run 60164869 SHA256 1015ac65a85ba39bdbe9e6bac54ae7ce3b2441fc7512909074e991242a46cf34 SHA512 adf90617b17e2560aa6b2ead236af02eb76f102db284c66b905254d926a881fec5a1302340fa743d44cae53e906d413a887b1dc121f1bca3aa1f861c9199fd73 WHIRLPOOL 0c0a38118032bbcd91115414d27cde7c80c92864788362ec38659239e1cc3a94878cb12cb803bc7bb89b53408730aa339bb646b212b56d448e78eb9f0ca4d064 DIST NVIDIA-Linux-x86_64-331.38.run 60164869 SHA256 1015ac65a85ba39bdbe9e6bac54ae7ce3b2441fc7512909074e991242a46cf34 SHA512 adf90617b17e2560aa6b2ead236af02eb76f102db284c66b905254d926a881fec5a1302340fa743d44cae53e906d413a887b1dc121f1bca3aa1f861c9199fd73 WHIRLPOOL 0c0a38118032bbcd91115414d27cde7c80c92864788362ec38659239e1cc3a94878cb12cb803bc7bb89b53408730aa339bb646b212b56d448e78eb9f0ca4d064
DIST NVIDIA-Linux-x86_64-334.16.run 67546019 SHA256 59a930f7ed6391a1e57b9fc7683420facd1c4548757d4120b1c594479af759f7 SHA512 a864693d7e95f602a1ee3557b5e0666d792d7ea8a22195ff06733cab1162b63daf761d162168e740ff3cae97371121f66f8b570ecc97081809c84d0be0309a34 WHIRLPOOL 001789f06ab96102c0ecc713e5542542148b2da033093cfa14192fe05ad0a53443df8b723731439e815b988429bf00cacd52834cd9ac808f2ba3159252a0cdcb

View File

@ -0,0 +1,32 @@
--- a/kernel/nv-acpi.c
+++ b/kernel/nv-acpi.c
@@ -303,7 +307,10 @@ static int nv_acpi_remove(struct acpi_de
if (pNvAcpiObject->notify_handler_installed)
{
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
+ /* beginning with 3.13, acpi_remove_notify_handler() waits for events to finish */
NV_ACPI_OS_WAIT_EVENTS_COMPLETE();
+#endif
// remove event notifier
status = acpi_remove_notify_handler(device->handle, ACPI_DEVICE_NOTIFY, nv_acpi_event);
--- a/kernel/uvm/nvidia_uvm_linux.h
+++ b/kernel/uvm/nvidia_uvm_linux.h
@@ -405,8 +405,14 @@
// not require the RCU's read lock on current->cred.
//
//
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)
+#define NV_KUID_TO_UID(value) (__kuid_val(value))
+#else
+#define NV_KUID_TO_UID(value) (value)
+#endif
+
#if defined(NV_TASK_STRUCT_HAS_CRED)
-#define NV_CURRENT_EUID() (__kuid_val(current->cred->euid))
+ #define NV_CURRENT_EUID() NV_KUID_TO_UID(((typeof(*current->cred) __force __kernel *)current->cred)->euid)
#else
-#define NV_CURRENT_EUID() (__kuid_val(current->euid))
+#define NV_CURRENT_EUID() NV_KUID_TO_UID(current->euid)
#endif

View File

@ -0,0 +1,471 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-334.16-r2.ebuild,v 1.1 2014/02/07 20:15:03 jer Exp $
EAPI=5
inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
portability toolchain-funcs unpacker user udev
NV_URI="http://us.download.nvidia.com/XFree86/"
X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
DESCRIPTION="NVIDIA X11 driver and GLX libraries"
HOMEPAGE="http://www.nvidia.com/"
SRC_URI="
amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
"
LICENSE="GPL-2 NVIDIA-r1"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel +tools +X"
RESTRICT="bindist mirror strip"
EMULTILIB_PKG="true"
COMMON="
app-admin/eselect-opencl
kernel_linux? ( >=sys-libs/glibc-2.6.1 )
X? (
>=app-admin/eselect-opengl-1.0.9
)
"
DEPEND="
${COMMON}
app-arch/xz-utils
kernel_linux? ( virtual/linux-sources )
"
RDEPEND="
${COMMON}
acpi? ( sys-power/acpid )
tools? (
dev-libs/atk
dev-libs/glib
x11-libs/gdk-pixbuf
x11-libs/gtk+:2
x11-libs/libX11
x11-libs/libXext
x11-libs/pango[X]
)
X? (
<x11-base/xorg-server-1.15.99
>=x11-libs/libvdpau-0.3-r1
multilib? (
|| (
(
x11-libs/libX11[abi_x86_32]
x11-libs/libXext[abi_x86_32]
)
app-emulation/emul-linux-x86-xlibs
)
)
)
"
REQUIRED_USE="tools? ( X )"
QA_PREBUILT="opt/* usr/lib*"
S=${WORKDIR}/
pkg_pretend() {
if use amd64 && has_multilib_profile && \
[ "${DEFAULT_ABI}" != "amd64" ]; then
eerror "This ebuild doesn't currently support changing your default ABI"
die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
fi
if use kernel_linux && kernel_is ge 3 13 ; then
ewarn "Gentoo supports kernels which are supported by NVIDIA"
ewarn "which are limited to the following kernels:"
ewarn "<sys-kernel/gentoo-sources-3.13"
ewarn "<sys-kernel/vanilla-sources-3.13"
ewarn ""
ewarn "You are free to utilize epatch_user to provide whatever"
ewarn "support you feel is appropriate, but will not receive"
ewarn "support as a result of those changes."
ewarn ""
ewarn "Do not file a bug report about this."
fi
# Since Nvidia ships 3 different series of drivers, we need to give the user
# some kind of guidance as to what version they should install. This tries
# to point the user in the right direction but can't be perfect. check
# nvidia-driver.eclass
nvidia-driver-check-warning
# Kernel features/options to check for
CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
use x86 && CONFIG_CHECK+=" ~HIGHMEM"
# Now do the above checks
use kernel_linux && check_extra_config
}
pkg_setup() {
# try to turn off distcc and ccache for people that have a problem with it
export DISTCC_DISABLE=1
export CCACHE_DISABLE=1
if use kernel_linux; then
linux-mod_pkg_setup
MODULE_NAMES="nvidia(video:${S}/kernel)"
BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
# linux-mod_src_compile calls set_arch_to_kernel, which
# sets the ARCH to x86 but NVIDIA's wrapping Makefile
# expects x86_64 or i386 and then converts it to x86
# later on in the build process
BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
fi
# set variables to where files are in the package structure
if use kernel_FreeBSD; then
use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
NV_DOC="${S}/doc"
NV_OBJ="${S}/obj"
NV_SRC="${S}/src"
NV_MAN="${S}/x11/man"
NV_X11="${S}/obj"
NV_SOVER=1
elif use kernel_linux; then
NV_DOC="${S}"
NV_OBJ="${S}"
NV_SRC="${S}/kernel"
NV_MAN="${S}"
NV_X11="${S}"
NV_SOVER=${PV}
else
die "Could not determine proper NVIDIA package"
fi
}
src_unpack() {
if ! use kernel_FreeBSD; then
cd "${S}"
unpack_makeself
else
unpack ${A}
fi
}
src_prepare() {
# Please add a brief description for every added patch
if use kernel_linux; then
if kernel_is lt 2 6 9 ; then
eerror "You must build this against 2.6.9 or higher kernels."
fi
# If greater than 2.6.5 use M= instead of SUBDIR=
# convert_to_m "${NV_SRC}"/Makefile.kbuild
fi
if use pax_kernel; then
ewarn "Using PAX patches is not supported. You will be asked to"
ewarn "use a standard kernel should you have issues. Should you"
ewarn "need support with these patches, contact the PaX team."
epatch "${FILESDIR}"/${PN}-331.13-pax-usercopy.patch
fi
# fix: Unknown symbol acpi_os_wait_events_complete (err 0) on linux-3.13
if kernel_is ge 3 13 0 ; then
epatch "${FILESDIR}"/acpi_os_wait_events_complete-334.16.patch
fi
# Allow user patches so they can support RC kernels and whatever else
epatch_user
}
src_compile() {
# This is already the default on Linux, as there's no toplevel Makefile, but
# on FreeBSD there's one and triggers the kernel module build, as we install
# it by itself, pass this.
cd "${NV_SRC}"
if use kernel_FreeBSD; then
MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
elif use kernel_linux; then
linux-mod_src_compile
fi
}
# Install nvidia library:
# the first parameter is the library to install
# the second parameter is the provided soversion
# the third parameter is the target directory if its not /usr/lib
donvidia() {
# Full path to library minus SOVER
MY_LIB="$1"
# SOVER to use
MY_SOVER="$2"
# Where to install
MY_DEST="$3"
if [[ -z "${MY_DEST}" ]]; then
MY_DEST="/usr/$(get_libdir)"
action="dolib.so"
else
exeinto ${MY_DEST}
action="doexe"
fi
# Get just the library name
libname=$(basename $1)
# Install the library with the correct SOVER
${action} ${MY_LIB}.${MY_SOVER} || \
die "failed to install ${libname}"
# If SOVER wasn't 1, then we need to create a .1 symlink
if [[ "${MY_SOVER}" != "1" ]]; then
dosym ${libname}.${MY_SOVER} \
${MY_DEST}/${libname}.1 || \
die "failed to create ${libname} symlink"
fi
# Always create the symlink from the raw lib to the .1
dosym ${libname}.1 \
${MY_DEST}/${libname} || \
die "failed to create ${libname} symlink"
}
src_install() {
if use kernel_linux; then
linux-mod_src_install
# Add the aliases
# This file is tweaked with the appropriate video group in
# pkg_preinst, see bug #491414
insinto /etc/modprobe.d
newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
# Ensures that our device nodes are created when not using X
exeinto "$(udev_get_udevdir)"
doexe "${FILESDIR}"/nvidia-udev.sh
udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
elif use kernel_FreeBSD; then
if use x86-fbsd; then
insinto /boot/modules
doins "${S}/src/nvidia.kld"
fi
exeinto /boot/modules
doexe "${S}/src/nvidia.ko"
fi
# NVIDIA kernel <-> userspace driver config lib
donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
# NVIDIA framebuffer capture library
donvidia ${NV_OBJ}/libnvidia-fbc.so ${NV_SOVER}
# NVIDIA video encode/decode <-> CUDA
if use kernel_linux; then
donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
fi
if use X; then
# Xorg DDX driver
insinto /usr/$(get_libdir)/xorg/modules/drivers
doins ${NV_X11}/nvidia_drv.so
# Xorg GLX driver
donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
/usr/$(get_libdir)/opengl/nvidia/extensions
fi
# OpenCL ICD for NVIDIA
if use kernel_linux; then
insinto /etc/OpenCL/vendors
doins ${NV_OBJ}/nvidia.icd
fi
# Documentation
dohtml ${NV_DOC}/html/*
if use kernel_FreeBSD; then
dodoc "${NV_DOC}/README"
use X && doman "${NV_MAN}/nvidia-xconfig.1"
use tools && doman "${NV_MAN}/nvidia-settings.1"
else
# Docs
newdoc "${NV_DOC}/README.txt" README
dodoc "${NV_DOC}/NVIDIA_Changelog"
doman "${NV_MAN}/nvidia-smi.1.gz"
use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
fi
# Helper Apps
exeinto /opt/bin/
if use X; then
doexe ${NV_OBJ}/nvidia-xconfig
fi
if use kernel_linux ; then
doexe ${NV_OBJ}/nvidia-cuda-mps-control
doexe ${NV_OBJ}/nvidia-cuda-mps-server
doexe ${NV_OBJ}/nvidia-debugdump
doexe ${NV_OBJ}/nvidia-modprobe
doexe ${NV_OBJ}/nvidia-persistenced
doexe ${NV_OBJ}/nvidia-smi
doman nvidia-cuda-mps-control.1.gz
doman nvidia-modprobe.1.gz
doman nvidia-persistenced.1.gz
newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
fi
if use tools; then
doexe ${NV_OBJ}/nvidia-settings
fi
exeinto /usr/bin/
doexe ${NV_OBJ}/nvidia-bug-report.sh
# Desktop entries for nvidia-settings
if use tools ; then
# There is no icon in the FreeBSD tarball.
use kernel_FreeBSD || newicon ${NV_OBJ}/nvidia-settings.png ${PN}-settings.png
domenu "${FILESDIR}"/${PN}-settings.desktop
exeinto /etc/X11/xinit/xinitrc.d
doexe "${FILESDIR}"/95-nvidia-settings
fi
#doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
if has_multilib_profile && use multilib ; then
local OABI=${ABI}
for ABI in $(get_install_abis) ; do
src_install-libs
done
ABI=${OABI}
unset OABI
else
src_install-libs
fi
is_final_abi || die "failed to iterate through all ABIs"
readme.gentoo_create_doc
}
src_install-libs() {
local inslibdir=$(get_libdir)
local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
local libdir=${NV_OBJ}
if use kernel_linux && has_multilib_profile && \
[[ ${ABI} == "x86" ]] ; then
libdir=${NV_OBJ}/32
fi
if use X; then
# The GLX libraries
donvidia ${libdir}/libEGL.so ${NV_SOVER} ${GL_ROOT}
donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
donvidia ${libdir}/libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}
donvidia ${libdir}/libGLESv2.so ${NV_SOVER} ${GL_ROOT}
donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
donvidia ${libdir}/libnvidia-glsi.so ${NV_SOVER}
donvidia ${libdir}/libnvidia-ifr.so ${NV_SOVER}
if use kernel_FreeBSD; then
donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
else
donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
fi
# VDPAU
donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
fi
# NVIDIA monitoring library
if use kernel_linux ; then
donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
fi
# CUDA & OpenCL
if use kernel_linux; then
donvidia ${libdir}/libcuda.so ${NV_SOVER}
donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
fi
}
pkg_preinst() {
if use kernel_linux; then
linux-mod_pkg_preinst
local videogroup="$(egetent group video | cut -d ':' -f 3)"
if [ -z "${videogroup}" ]; then
eerror "Failed to determine the video group gid"
die "Failed to determine the video group gid"
else
sed -i \
-e "s:PACKAGE:${PF}:g" \
-e "s:VIDEOGID:${videogroup}:" \
"${D}"/etc/modprobe.d/nvidia.conf || die
fi
fi
# Clean the dynamic libGL stuff's home to ensure
# we dont have stale libs floating around
if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
fi
# Make sure we nuke the old nvidia-glx's env.d file
if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
rm -f "${ROOT}"/etc/env.d/09nvidia
fi
}
pkg_postinst() {
use kernel_linux && linux-mod_pkg_postinst
# Switch to the nvidia implementation
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
readme.gentoo_print_elog
if ! use X; then
elog "You have elected to not install the X.org driver. Along with"
elog "this the OpenGL libraries and VDPAU libraries were not"
elog "installed. Additionally, once the driver is loaded your card"
elog "and fan will run at max speed which may not be desirable."
elog "Use the 'nvidia-smi' init script to have your card and fan"
elog "speed scale appropriately."
elog
fi
if ! use tools; then
elog "USE=tools controls whether the nvidia-settings application"
elog "is installed. If you would like to use it, enable that"
elog "flag and re-emerge this ebuild. Optionally you can install"
elog "media-video/nvidia-settings"
elog
fi
}
pkg_prerm() {
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
}
pkg_postrm() {
use kernel_linux && linux-mod_pkg_postrm
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
}