diff options
author | Jeroen Roovers <jer@gentoo.org> | 2018-01-20 11:19:29 +0100 |
---|---|---|
committer | Jeroen Roovers <jer@gentoo.org> | 2018-01-20 11:21:06 +0100 |
commit | bd8ad60888fff0fd004107969832a8d24009bd21 (patch) | |
tree | fba4b2c2957fc6e4f784c617285699e3daf3a668 /x11-drivers | |
parent | app-arch/dpkg: Old. (diff) | |
download | gentoo-bd8ad60888fff0fd004107969832a8d24009bd21.tar.gz gentoo-bd8ad60888fff0fd004107969832a8d24009bd21.tar.bz2 gentoo-bd8ad60888fff0fd004107969832a8d24009bd21.zip |
x11-drivers/nvidia-drivers: Version 340.106 (bug #645004 by xxoo).
Package-Manager: Portage-2.3.19, Repoman-2.3.6
Diffstat (limited to 'x11-drivers')
-rw-r--r-- | x11-drivers/nvidia-drivers/Manifest | 5 | ||||
-rw-r--r-- | x11-drivers/nvidia-drivers/nvidia-drivers-340.106.ebuild | 529 |
2 files changed, 534 insertions, 0 deletions
diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest index 35ae1b5ab0d8..8181a9f82c9b 100644 --- a/x11-drivers/nvidia-drivers/Manifest +++ b/x11-drivers/nvidia-drivers/Manifest @@ -1,5 +1,6 @@ DIST NVIDIA-FreeBSD-x86-304.137.tar.gz 35399011 BLAKE2B 823726e4a54f029a47b4c473718099b97d0364b19ac73d36111c0e3552af9a896f60c2aef0eac05d84eb7386fd32ff0a33b2b26d572b6803fddf3c9df0443caa SHA512 9bab183289461d915371b7b5b34e66fdfe8ffff945806dbdf00e0e1cc7242f7b74a0acfc6ed24c3643a6d51edc837cd905ba3b224c30040b0f40d662dc6e7a6d DIST NVIDIA-FreeBSD-x86-340.104.tar.gz 60305172 BLAKE2B e67564d7cc8e247f1f026fb288b0d1647550ca8ff3b95302a98081ede22b8db16a8fd7dd4c994427996144df34122e506d53284eefc28d393881078c2752f988 SHA512 051bb0e0be3a70f3d3265c493c96a1ac249730ce2c1b4a97f7fb4797daa92af066f2bb88b922a80e4a7f5d3e5d37e0ec8ac3f9fdda77e68c905ef55f47ccbc8e +DIST NVIDIA-FreeBSD-x86-340.106.tar.gz 60296006 BLAKE2B e980bd75b35cc17379865a0ffd45fef99fc7e732bddf8cfa11f021ee74acb31c732ec1993f56425308fc7346b7a5476e5f067c0a43ee71601e8a13e3951abcf6 SHA512 ae7ab9e6744b215adf4dd07c701b94f2446a7c8d9e576d5fe840f1c26cb23bc0f5b4288095efbb096ae62941a45c938af6ecf9258211c7824d2c3f8316301209 DIST NVIDIA-FreeBSD-x86-375.82.tar.gz 59566154 BLAKE2B b888b08cd434899ff73f04a855b47f9416ab247f63023f742dff55e9249d20b8da07bc5cd42e6d555cd9a8ecc62c97821ae09dce1986f0ac2384a16a70c7f181 SHA512 6747bf6d6278c6ed0828c6fdcad5353e516f28384609a3f0a885966707eebb096926a876c17843bfa7626a01a6d4e0ab12c781faf9ac0291771b195c9eb13d85 DIST NVIDIA-FreeBSD-x86-378.13.tar.gz 59610253 BLAKE2B 723b392b869dd5cc9244cfe9df371fc6df6b4ebc4c1f01082fd79b2bbd0cbf4e670cfb69511f1773d28f6fc51a8801777dd6e3066f50fc96888a9efa467e459e SHA512 a0101201089df2bbf5bdc4ded2228dd989da6a47da31c3ec8d55916b1ff3457924555f82c7381934745fdc1b1f8f78e3fc10e5089279eb13423628dbfe560c6b DIST NVIDIA-FreeBSD-x86-381.22.tar.gz 60112159 BLAKE2B 4a61e9a09218eb7d259f82d0a43fee313754004c8716e921b9a83a3e87fff9a291450bef5d7304b2a7ddf5750a830fb7c5cc9dab890dac4a714354265ca25034 SHA512 ffe5882051fad081854e7b7fefe86a4da55b263b2ca217664991a7e0d84ff2f22d62a37c89afd578f3c99c12be897e5db7a3d1c71c747df655af8e220eb983fa @@ -11,6 +12,7 @@ DIST NVIDIA-FreeBSD-x86-387.34.tar.gz 64228643 BLAKE2B 80011df5d037cd0a2a6faccf6 DIST NVIDIA-FreeBSD-x86-390.12.tar.gz 63855774 BLAKE2B 220f7fb3d2fc2e9f4041b4139ab162a00a928b7eeeb57bbaaa0d836fb6bbfe818272e11cc1b6a8ecf0b369b111a44940f897872c0d8360eaad25a778cd8acd44 SHA512 c15724ed75375e21e50ac663feb798cadb897cc594fdc36d18f8b9bde2ac07b26002c1f170be0faadf4bb808ac387a5a4686c446f4191dd5f3e86bb8b7cd6c7c DIST NVIDIA-FreeBSD-x86_64-304.137.tar.gz 36474676 BLAKE2B bd75e2916d34f76566d838406419991a860118830366f0297fa63baade3a99f637dae601d6bc6a051596222f2715297dffbf9b81ff5478b030741e6c8a09bc13 SHA512 f0ae7ccea417aceedf34bfb9c96fd79b31cbf74a8fa59d5199b0ad7b81b8a4aeb66cd4801a45cc37f836979cb4267aa69e08517beaa9b8cb9c66a477d02ef8de DIST NVIDIA-FreeBSD-x86_64-340.104.tar.gz 61176133 BLAKE2B 1fa2e1a7018b3d24b2a6b2be016aaa4c86196fba679d7032c9d0884900b4734ea1b6d54398bb7c792d5010496c86438eed134b8ac8c1aa235b336211fdc207e7 SHA512 d7535527fb9ffc820509da8d0b159c70627c72a7182c354448851a334fcd5b8835046d0e9812079af2fa92de0f3fce299a67e70ef50697a2a1f33b8d995e7f73 +DIST NVIDIA-FreeBSD-x86_64-340.106.tar.gz 61169129 BLAKE2B 0a8e0deb883025d20df5165f39042bcee5d75ea78b19733cff014448c8d62022dbb98af2adebd13485e281a52c9a1c4986ae020b4eb6a821a411836e7333d4f1 SHA512 c2d0a0b1856522b28243697db22ad99d8521b00d9dfa2da724f2ee243b545b7dbf24319d9a0939855bab29251f001063391a760bd3db750bf9950ce1f9376847 DIST NVIDIA-FreeBSD-x86_64-375.82.tar.gz 58748290 BLAKE2B 629d65b71270d1c0d94c71e4215a72f0e49bb82e68ebb93fd4b14cd56a2031674458764f4c3e2e3dec7379ec0d5ed9212c8d09a64e4361f40352e52aa9b57de5 SHA512 5e2b42ff63e06219764db8187203ce1a2c3c8b478be31fc713ef396e8f8d46def9b2631d7989866740bd0c6a81bbf5d2ed083c14cfa7171c0d993553ca6f431c DIST NVIDIA-FreeBSD-x86_64-378.13.tar.gz 58779963 BLAKE2B d0a165dab740b25e1d97050e4dfc9f916ae17159eb4e4b79e068a4cd6ec3e2bc146d061abb4a411847cbb0d987253f86327e67ffd6efaf725c4fa4dce27e4fa9 SHA512 34cfc383ba196ecec2cd27fc12bf30dd58f8782b73414e7b4c182e832ae0dce1f8c017afbb2101d7525d4e321f80cac49d3b578a8fc0cf88be9310f4deb77057 DIST NVIDIA-FreeBSD-x86_64-381.22.tar.gz 59284579 BLAKE2B 45703b5658c586fe2fbfaf84a54a591a7d25e836195c47c43375b74a730c1a7aa4dd7bd17d13e7194b37d51da0f11540da1bee564e1c27351ecc6915e65012d5 SHA512 51c5a87fabe87ec7f2589ed97d97447b127ecb5fe501c60bc7c9fce74141c127f4f9bb820d2a9b34fb56db436476d0cb18a73845ab4e7ec2315d4975c8ce4e32 @@ -31,6 +33,7 @@ DIST NVIDIA-Linux-armv7l-gnueabihf-387.34.run 29406773 BLAKE2B af27fb1bfa8e432c8 DIST NVIDIA-Linux-armv7l-gnueabihf-390.12.run 28595865 BLAKE2B 6e923d07212ef2f207091ff4cd1d9575d2e773b6e8a7d360b4a5be9d1ef818ee860ebec67e944aa40cedb688066c95e66d087b5ac364b617350315b75d417b77 SHA512 9a5b88715f12188b2f2a85767a8eaa29e16b427e06280385b9f93c9edc7ccb495e1dc831c174da16ea19dd349679f462ed1db2b8224a7d94ef77814be8175336 DIST NVIDIA-Linux-x86-304.137.run 41504115 BLAKE2B 5938d4df818947e5576172c0ee9bfa42a2fc49a7a7a2b14128cf3b967dfea6d4523901b33283284d450cfadc2c6d72a82a1533b27ebb4b542b6b1454fe8ae960 SHA512 021c5a88d50489aa0a1c7eac14259e23542b93578ae339995a2e38b786d06d239968c07933cab3fb78a922cffc7e213d6fa3fe07e34065a9c7f03e24f8729370 DIST NVIDIA-Linux-x86-340.104.run 38823602 BLAKE2B 9cab2d224a289839148558e2bd8d4711c0925dfff8b7897be9f7fbd3eaae5549571fa01d265d7a0f8ed6dbc600e2a815d9dd622fd56528c04d80e7ec664cd551 SHA512 8dacd5345a5794e862f4106ab9e8e402defa7883dd176c243d019209b560fe955d7576a13936364c01c5a249f15df58208308c9378c12c3438784376e5fb806c +DIST NVIDIA-Linux-x86-340.106.run 38816967 BLAKE2B b3ab5613359b43eaace36de9a8ab753df954bdf60e5acfe168e270474e0dc400acd46b5dcec809fad3d59babdf52988b3b5a8c20e8a0253b6388b7eb60ff4ba1 SHA512 923da7d61ef89a7bd83e0223c72fcdc556ef31cb97015a129a3adbdc3aad29dbf49f6fd23dc5188a53722e22cf4ba35c6a98e6ca9fdc6c24bb72ab87153d8bc4 DIST NVIDIA-Linux-x86-375.82.run 44633335 BLAKE2B 55392ba748108b47994bf272829a6476dfc23f7756e0c18d56c8e4d827968196ee70e521c2e6307c134ca0c85d59715db777583fb07c8e06ae7325d586a8117b SHA512 cbd6edd7490e0e5ef9dd2020c18eb5f75412993e06b9c4f1919f49a8ffdc36131a96d868ab51691fb5c4a661e826b000ec93363c9b168304f6498014e300bf24 DIST NVIDIA-Linux-x86-378.13.run 44397547 BLAKE2B 5b45bdceba75e214028b9f59a3655482ac1ac2b51cc0a6ea22927e5143b47c670db7078ed898e04663feb9fd495165954c90df5ee3afca00155dcc2ae6a97dc8 SHA512 b96d2558a1003a3c66cade3a1e16abd34d855c0e27cdebacdc0495e0ba3cd5c68bb84cc5f81bff1b9ddce36ac52e0dc125c56d868b77d7c8e2f606d559b13b4a DIST NVIDIA-Linux-x86-381.22.run 42931990 BLAKE2B cf1ae154854860557bf3e4a50216f1373ff66a45535e7beec67392b1cd1d40a02d758fa3e1cfa0462145b912430b0d1a3b6de3e6d6ede8aa1f484ea0ab46f816 SHA512 15723bfa25b0f39224ad5098c784a292abe4bf1daafaeb2f1df910bbab466e666b848b12e50b0bdd45f83e2d81957425a63501550b3dc5eb8fe3e576a8a10d22 @@ -42,6 +45,7 @@ DIST NVIDIA-Linux-x86-387.34.run 47797853 BLAKE2B 4ae211ee00e09fe385f24e05cfac3a DIST NVIDIA-Linux-x86-390.12.run 46769369 BLAKE2B f358914c8fb58bf5c5cc855ef773dc938158bc0bb9123aa5e7224e4e2781e9e7ec2a498a4acb54dad3d3eb496feb899f6ff97b725d9fa646b61173cf0f9086ae SHA512 4cd452c6c05562aa842d4bc171537e0d8c9185d2934eb879d9f0b6c7491c37f6fe6b3fc4c48a208e3faeaf45b0f0d1fb2b96bc851885edaed31071a27d583aa1 DIST NVIDIA-Linux-x86_64-304.137.run 70087133 BLAKE2B 8db0ade7cf64231ae11e6fc55a16a68a2f7b11a8bb7debb49799fee96eba06a3062b97fe539b093727623a1ed1067282813de047c2aeb89d93bf35a97c71aac5 SHA512 d7fae1e486005ffa2f2bf7f14f901bf5156fc784407a9acfea584f49bdab92ff5f4d0fb66c4c5b2800a461fc06aebb7d760bcb59f69ce4f2cb4e03e11816b3e9 DIST NVIDIA-Linux-x86_64-340.104.run 70085947 BLAKE2B 3bf77983f0b14770fead042c09771650045c2d5238b68ec06f3c70e1598727b6f75fb1e492e6ed147f9323bce58d6d8f5a840de0a30938d46b53bd571202edff SHA512 3f7609e7a736ba7d77f96ea5561789113878c5cb85b2970ad5ae63acdd09c0f5bc6449a5ed7d948f85d684870dcc2b479c4e0d7d750a47dfd716940de72dba3f +DIST NVIDIA-Linux-x86_64-340.106.run 69987642 BLAKE2B 9b5644a58169557bda2ca6b367909bbbbe9c94ab869a91a4df8f8446a1e66f051f8b9c67e10d809d7e7a319fb318be3c5d0f35862cb315fdaf5623ce8794efb5 SHA512 64474a2dc664142868125df3562ccb676cef02659c5e45d570a2f00f2ab172ba3e61ea6ca42faade1747516c9a0c8b2c4e7cd3037ee90fb072b0c5cae45431bc DIST NVIDIA-Linux-x86_64-375.82.run 77461911 BLAKE2B e7f32bdf1672d98a1fe98c82d80a08dd6f63b3c859df4c60124977dae19520a21e4239ff7be6c272243d4af9416320b5e166d8f100979daa0d005ea2a44fc16d SHA512 6da63b807d6dd7cc8ac2b794d5c9ab8383e3c0ce6a47adc600941545509fb40b5f06344781afc895bd83f2780b2bce187994df5684db2890f50b41adfee8f910 DIST NVIDIA-Linux-x86_64-378.13.run 76239469 BLAKE2B 0f2be330645f8d9d2828fa6d159f9e41ef09bb32805f94cf3fa255f088a8c6f4c25add584787bd1ed64756ef75821f7143c14330718cc5f5ac3cbcf8b7c3bae4 SHA512 2f6789aa0a400c035c0a074631dc5c26abb4f8a62efe928ca3a2865b89d29acfc09c27f23a664e438275e4bfd25c261745d4d495f9aca5f54ee6c53a389059d2 DIST NVIDIA-Linux-x86_64-381.22.run 76581130 BLAKE2B fdb5912a775b56edf7dd784b640997fe683d0a32d57db6079dc5466a1a8dc1354cd31ff86aa1e993e0a33163e4c18f6a7aa990e334448ad069db3a5ffc4f1ffa SHA512 669a3dd0896d68ba8eef4689b01971b92ec1c54e6cf2a9ff8d3f281ae9f2fe402f079e76109b65e698d76798bcc7a9bb43da9d128fec59ac1fafafd1c4a1e42c @@ -53,6 +57,7 @@ DIST NVIDIA-Linux-x86_64-387.34.run 82784271 BLAKE2B b7140d5d6a693892df50b3ad2e2 DIST NVIDIA-Linux-x86_64-390.12.run 82106120 BLAKE2B 90c6192c5a5a539afbf649ef35165aa3a636e7a489bebdfe88c7007e1b205471ab69f71adeb23926447cf4dd9e1d5b77b8cc81cc495894bd806a0230ba0595a8 SHA512 caa8b32f97936796ec9ef8851ddd75fe5307b4a1abd195f49cee26760a2c06f8ef84a6f9521e6a25d6ce0c7158321866c7c5dc05b3c25f83832c30cd6d6055fd DIST nvidia-settings-304.137.tar.bz2 1481361 BLAKE2B cf52a55a34eeb03a685a683487af6a198ba467dd8ba9983cc75624a37a226373cd931d98e8448b7b8ed430c54be2118c7b240ed2a9100b19bec5e832e2f6cdad SHA512 676d1f70c9a78ee234f5f1a283412430a386fa604de211afba02806a45906c5e246a002989b724d74752178d28c92a268de1c98d4c87876797d991253f16b0cc DIST nvidia-settings-340.104.tar.bz2 1549760 BLAKE2B 131532e16fac8c026e0c6030c12e42fcf7598b5e3d7b9286532387d90ad51eec666efd281b20c04abd08c8280c65dd907ee397c0acb4cf9c74e9d6c7be4dcdd6 SHA512 d4277ef0ce87ee7baf2c5155ca8d93e8db2483329053c541b6a605653f4a6883aad81ebdc45b4c60aa78b72bd4c6c88e5b1327cc4cd2f540fcee8dbd7edc3e53 +DIST nvidia-settings-340.106.tar.bz2 1549841 BLAKE2B 3419467424bc05a4a36f588e326eac4214250686f54c6c440c9a46bab80b15dee77e65d5880ed4338c0fc421306844d20a4dda0d5151a8d49441ef5048ab9bf6 SHA512 670f8469d5127f0966794ed822492f16f7a84656530d0b96f1ccdc915e6c588e9f1417b7ce1cc741df256383292820affaa10784ab748575f4adf2f98f961a27 DIST nvidia-settings-375.82.tar.gz 2114647 BLAKE2B 26413fde8397e748fae362984039286c53a7fe104228452f3188b5e77b084ff4bf00131e77359ff5e92dfc325680c1f662950175cf806403d2a524ba86158f51 SHA512 7a374be56c8be52767d73a048029d9e55dc2abcf2f6a97eb4931544c927c85a1103a206be9e8d1ffcef36fec2caf2416f33699ad4d51e7dca17e4e844c37a595 DIST nvidia-settings-378.13.tar.gz 2112676 BLAKE2B 7e3e7c20986c184ddb08808706902f332451df1ab5b0cc295de70c6c26706b067ba6ef96c4e4a68c935ee704ed031cb829c25aa325c6dd2f1ed0423cf5c1aec5 SHA512 6f5fda9c54b067e21f2c869bcfb7c799c99f584d769020cb15e8764f59183e6a6469919ec48bce47be2144910d0004a9ca221df4a9e4fa9ab9f18710b36fa420 DIST nvidia-settings-381.22.tar.gz 2127491 BLAKE2B 7721ed9df7c01671a56a720e75768c80debe8520aed5a838e1e1d365651db2ae42b0cd21801c60aa18944f8d4751fadac206a388f1cf107a03a25ccb8aeb5c5f SHA512 79cd41b9c0e63b69574caddb62437132810ecb4cd07b90899976ae8535948f28d72021fc9a6969559909cf0f7a5d411b0202782970d64a82c636e7738c9d5681 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-340.106.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-340.106.ebuild new file mode 100644 index 000000000000..d8d853f165d8 --- /dev/null +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-340.106.ebuild @@ -0,0 +1,529 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \ + portability toolchain-funcs unpacker user udev + +NV_URI="http://http.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 Accelerated Graphics Driver" +HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx" +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 ) + tools? ( ${NV_URI}nvidia-settings/nvidia-settings-${PV}.tar.bz2 ) +" + +LICENSE="GPL-2 NVIDIA-r2" +SLOT="0/${PV%.*}" +KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd" +IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools +X uvm" +RESTRICT="bindist mirror" +EMULTILIB_PKG="true" + +COMMON=" + app-eselect/eselect-opencl + kernel_linux? ( >=sys-libs/glibc-2.6.1 ) + tools? ( + dev-libs/atk + dev-libs/glib:2 + dev-libs/jansson + x11-libs/gdk-pixbuf[X] + >=x11-libs/gtk+-2.4:2 + x11-libs/libX11 + x11-libs/libXext + x11-libs/pango[X] + ) + X? ( + >=app-eselect/eselect-opengl-1.0.9 + ) +" +DEPEND=" + ${COMMON} + app-arch/xz-utils + kernel_linux? ( virtual/linux-sources ) +" +RDEPEND=" + ${COMMON} + acpi? ( sys-power/acpid ) + tools? ( !media-video/nvidia-settings ) + X? ( + <x11-base/xorg-server-1.19.99:= + >=x11-libs/libvdpau-0.3-r1 + sys-libs/zlib[${MULTILIB_USEDEP}] + multilib? ( + >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] + >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] + ) + ) +" + +REQUIRED_USE="tools? ( X )" + +QA_PREBUILT="opt/* usr/lib*" + +S=${WORKDIR}/ + +nvidia_drivers_versions_check() { + 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 4 10; then + ewarn "Gentoo supports kernels which are supported by NVIDIA" + ewarn "which are limited to the following kernels:" + ewarn "<sys-kernel/gentoo-sources-4.10" + ewarn "<sys-kernel/vanilla-sources-4.10" + ewarn "" + ewarn "You are free to utilize eapply_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." + ewarn "" + fi + + # Since Nvidia ships many 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_pretend() { + nvidia_drivers_versions_check +} + +pkg_setup() { + nvidia_drivers_versions_check + + # 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 + MODULE_NAMES="nvidia(video:${S}/kernel)" + use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel/uvm)" + + # This needs to run after MODULE_NAMES (so that the eclass checks + # whether the kernel supports loadable modules) but before BUILD_PARAMS + # is set (so that KV_DIR is populated). + linux-mod_pkg_setup + + 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_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." + eapply "${FILESDIR}"/${PN}-331.13-pax-usercopy.patch + eapply "${FILESDIR}"/${PN}-337.12-pax-constify.patch + fi + + local man_file + for man_file in "${NV_MAN}"/*1.gz; do + gunzip $man_file || die + done + + # Allow user patches so they can support RC kernels and whatever else + eapply_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 + use uvm && MAKEOPTS=-j1 + linux-mod_src_compile + fi + + if use tools; then + emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl clean + emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \ + AR="$(tc-getAR)" \ + CC="$(tc-getCC)" \ + RANLIB="$(tc-getRANLIB)" \ + libXNVCtrl.a + emake -C "${S}"/nvidia-settings-${PV}/src \ + AR="$(tc-getAR)" \ + CC="$(tc-getCC)" \ + LD="$(tc-getCC)" \ + LIBDIR="$(get_libdir)" \ + NVML_ENABLED=0 \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 \ + RANLIB="$(tc-getRANLIB)" \ + STRIP_CMD=true + 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 + use uvm && doins "${FILESDIR}"/nvidia-uvm.conf + + # Ensures that our device nodes are created when not using X + exeinto "$(get_udevdir)" + newexe "${FILESDIR}"/nvidia-udev.sh-r1 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 + 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 + use X && doman "${NV_MAN}"/nvidia-xconfig.1 + use tools && doman "${NV_MAN}"/nvidia-settings.1 + doman "${NV_MAN}"/nvidia-cuda-mps-control.1 + fi + + docinto html + dodoc -r "${NV_DOC}"/html/* + + # 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-persistenced + doexe "${NV_OBJ}"/nvidia-smi + + # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092) + doexe "${NV_OBJ}"/nvidia-modprobe + fowners root:video /opt/bin/nvidia-modprobe + fperms 4710 /opt/bin/nvidia-modprobe + dosym /{opt,usr}/bin/nvidia-modprobe + + doman nvidia-cuda-mps-control.1 + doman nvidia-modprobe.1 + doman nvidia-persistenced.1 + newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi + newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced + newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced + fi + + if use tools; then + emake -C "${S}"/nvidia-settings-${PV}/src/ \ + DESTDIR="${D}" \ + LIBDIR="${D}/usr/$(get_libdir)" \ + PREFIX=/usr \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + install + + if use static-libs; then + dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a + + insinto /usr/include/NVCtrl + doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h + fi + + insinto /usr/share/nvidia/ + doins nvidia-application-profiles-${PV}-key-documentation + + insinto /etc/nvidia + newins \ + nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc + + # There is no icon in the FreeBSD tarball. + use kernel_FreeBSD || \ + doicon "${NV_OBJ}"/nvidia-settings.png + + domenu "${FILESDIR}"/nvidia-settings.desktop + + exeinto /etc/X11/xinit/xinitrc.d + newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings + + fi + + dobin "${NV_OBJ}"/nvidia-bug-report.sh + + #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 nv_libdir="${NV_OBJ}" + + if use kernel_linux && has_multilib_profile && \ + [[ ${ABI} == "x86" ]] ; then + nv_libdir="${NV_OBJ}"/32 + fi + + if use X; then + # The GLX libraries + donvidia "${nv_libdir}"/libEGL.so ${NV_SOVER} ${GL_ROOT} + donvidia "${nv_libdir}"/libGL.so ${NV_SOVER} ${GL_ROOT} + donvidia "${nv_libdir}"/libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT} + donvidia "${nv_libdir}"/libnvidia-eglcore.so ${NV_SOVER} + donvidia "${nv_libdir}"/libnvidia-glcore.so ${NV_SOVER} + donvidia "${nv_libdir}"/libnvidia-glsi.so ${NV_SOVER} + donvidia "${nv_libdir}"/libnvidia-ifr.so ${NV_SOVER} + if use kernel_FreeBSD; then + donvidia "${nv_libdir}"/libnvidia-tls.so ${NV_SOVER} + else + donvidia "${nv_libdir}"/tls/libnvidia-tls.so ${NV_SOVER} + fi + + # VDPAU + donvidia "${nv_libdir}"/libvdpau_nvidia.so ${NV_SOVER} + + # GLES v2 libraries + insinto ${GL_ROOT} + doexe "${nv_libdir}"/libGLESv2.so.${PV} + dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2 + dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so + fi + + # NVIDIA monitoring library + if use kernel_linux ; then + donvidia "${nv_libdir}"/libnvidia-ml.so ${NV_SOVER} + fi + + # CUDA & OpenCL + if use kernel_linux; then + donvidia "${nv_libdir}"/libcuda.so ${NV_SOVER} + donvidia "${nv_libdir}"/libnvidia-compiler.so ${NV_SOVER} + donvidia "${nv_libdir}"/libOpenCL.so 1.0.0 ${CL_ROOT} + donvidia "${nv_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 +} |