diff options
author | Doug Goldstein <cardoe@gentoo.org> | 2009-11-13 20:39:56 +0000 |
---|---|---|
committer | Doug Goldstein <cardoe@gentoo.org> | 2009-11-13 20:39:56 +0000 |
commit | dc50457220841719213ba5899eee07c9c981e595 (patch) | |
tree | 5f758af90eb424b405ddcaacec4505e7ceed2593 /x11-drivers/nvidia-drivers | |
parent | Version bump, also fixing bug #293075. (diff) | |
download | historical-dc50457220841719213ba5899eee07c9c981e595.tar.gz historical-dc50457220841719213ba5899eee07c9c981e595.tar.bz2 historical-dc50457220841719213ba5899eee07c9c981e595.zip |
version bump for xorg-server 1.7 support. ebuild uses the refactored ebuild as a base
Package-Manager: portage-2.1.7.4/cvs/Linux x86_64
Diffstat (limited to 'x11-drivers/nvidia-drivers')
-rw-r--r-- | x11-drivers/nvidia-drivers/ChangeLog | 9 | ||||
-rw-r--r-- | x11-drivers/nvidia-drivers/Manifest | 12 | ||||
-rw-r--r-- | x11-drivers/nvidia-drivers/nvidia-drivers-173.14.22.ebuild | 498 |
3 files changed, 514 insertions, 5 deletions
diff --git a/x11-drivers/nvidia-drivers/ChangeLog b/x11-drivers/nvidia-drivers/ChangeLog index 3b46f9d18d12..07c4bb8f0bb8 100644 --- a/x11-drivers/nvidia-drivers/ChangeLog +++ b/x11-drivers/nvidia-drivers/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for x11-drivers/nvidia-drivers # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.202 2009/11/12 19:12:29 cardoe Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.203 2009/11/13 20:39:56 cardoe Exp $ + +*nvidia-drivers-173.14.22 (13 Nov 2009) + + 13 Nov 2009; Doug Goldstein <cardoe@gentoo.org> + +nvidia-drivers-173.14.22.ebuild: + version bump for xorg-server 1.7 support. ebuild uses the refactored + ebuild as a base 12 Nov 2009; Doug Goldstein <cardoe@gentoo.org> nvidia-drivers-190.42-r3.ebuild: diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest index 350ed123a16d..0d6aac83ad33 100644 --- a/x11-drivers/nvidia-drivers/Manifest +++ b/x11-drivers/nvidia-drivers/Manifest @@ -12,11 +12,13 @@ AUX libGL.la-r2 733 RMD160 479612ab30c04ca0683c7d9edaf9ab3de783e4a9 SHA1 88656b7 AUX nvidia 1510 RMD160 ca0d0e5375109d9edf682d9bdda743b7c693e4d4 SHA1 85cf9bff167dcc063ba61426523973e9598085f7 SHA256 b193cc3f6d6f39138720a2282d9f161fc8f2e8a15bc43d183a30eb879add06c5 AUX nvidia-169.07 639 RMD160 8baddb6fd1bf7f0e2688870a78e8ace051d62e3f SHA1 b30487ba2a24a6b1359d1fd831eeb1705060953c SHA256 a8c4860f008d53776fda7a17b59524f271236559af688e9a2c9845cbbcba1577 DIST NVIDIA-FreeBSD-x86-173.14.20.tar.gz 16211218 RMD160 4c5dabe1f6ab708c3dab6722889e44968ca492f0 SHA1 0dbf09c072fe706d4fd71fe817830305e6100955 SHA256 c5a27324d96391ada41b4ccbbf2a321c3d86693e54d1e9d1139d97c3132530f3 +DIST NVIDIA-FreeBSD-x86-173.14.22.tar.gz 16681759 RMD160 bd1e1321dd9f21c1642c1e155db29b78d4af0a3f SHA1 af97c1ff136924520d6738cbf0a376f63c297a18 SHA256 fac71118334ef32874daa5fd98e56c4af2f9fcdf56d63b20e6f92983a5f91c31 DIST NVIDIA-FreeBSD-x86-180.60.tar.gz 18594717 RMD160 f295b96305327c1d125709f35b7a863ad0dfa18e SHA1 a9051cd69a22748c88796a5903d893fcee24718d SHA256 7ddf39476b42ccf1f0585340ad6b384d5c7cdc5825cba33f81138156077bf89a DIST NVIDIA-FreeBSD-x86-185.18.36.tar.gz 19245550 RMD160 9fc751dca64c96fa3c3d54bde581a2a4fe37194b SHA1 7b982e4f43b754987e3654e93fd7108488658d4b SHA256 890b9543d3c81bccc72d60c653647a719c9037f8fc7a88144a18b2a012fbd4a7 DIST NVIDIA-FreeBSD-x86-190.42.tar.gz 20092575 RMD160 862f6f4fa3ebd5f09b216f2e959e3c0866440963 SHA1 1f3dd0a618d9703d4b7ab87603b002880b561fc3 SHA256 7512f1ce6a0d7202422be25ca9cb11e63f70e9097b048f2bfc6cc5d83598e9df DIST NVIDIA-FreeBSD-x86-96.43.13.tar.gz 11057193 RMD160 64c2182d2fb7b2fcb9552e7f6d23a2dfb325dc7e SHA1 c5104e3cbbd36b170c7057d1a7819e3d8cd85b69 SHA256 614396a11ab8b304c51721cd4b47fb82a5f75884ff77d3d414e0e5739835c738 DIST NVIDIA-Linux-x86-173.14.20-pkg0.run 11882316 RMD160 690fc0799c05166e35b9a3cafa143cdcea533468 SHA1 be25da830b9debde96bfcd15cfa9bebb576886a5 SHA256 fefca3fe64dd4ddd4f93920906aa36270c154e58e4271bae51b48dfcd308e5bd +DIST NVIDIA-Linux-x86-173.14.22-pkg0.run 12262547 RMD160 8fd540c277994caa6c7f0851f603f55c37e05440 SHA1 eb12529b586edb2e596054bef0701ae55eda014f SHA256 7e357a475771f538c01bd14776e7c43848a5ae3e30198f2173b10fb0a5d8023d DIST NVIDIA-Linux-x86-180.60-pkg0.run 13574190 RMD160 fd43b3a3bdd05b292b6f8f363c45b3ae677f5ad0 SHA1 d9a68f1536edb4f276634acd8ec2377ea252de69 SHA256 42706637c02dfe2aad5df69f5cc2b3ce0ad13021c6a9b49e42c6e5052eaa7d89 DIST NVIDIA-Linux-x86-185.18.36-pkg0.run 14146513 RMD160 ec8f2a4f44bf89304f6ab53fd3fe887463967260 SHA1 1565639460c2438753251a89b9beb1a5101816ec SHA256 985e49847ed2f8bc50fe379780e182afea26d052bd1189320ce226acd03d72c4 DIST NVIDIA-Linux-x86-190.42-pkg0.run 14696051 RMD160 9876e63299fd1f87e6f23939d42985277c325bc8 SHA1 c2b20032160f4b5803a04a1bf7bb67a200516a51 SHA256 e851b5daac4fa1c2ab1bdb86c967eaae6b5cfebc10529d2041a4c087b91b9271 @@ -24,6 +26,7 @@ DIST NVIDIA-Linux-x86-71.86.09-pkg0.run 5274589 RMD160 ca2cb1d370a15328925b0e2fb DIST NVIDIA-Linux-x86-71.86.11-pkg0.run 5275754 RMD160 efe88c673bc3ba665419fd63404aba7858a54993 SHA1 a7d67c9f054fe3fb5072d49ca799e21b030ebe85 SHA256 75a1471eee07c5ec5cec894bf5d331b4d578adb52b6ba7bbec5fe141f061134b DIST NVIDIA-Linux-x86-96.43.13-pkg0.run 7800793 RMD160 602ca9e6ca8658443ab7dcb79a315e8e88f6ff0e SHA1 6feb87c8182e7dbbe4fc2aa68f5903b9035fb4c6 SHA256 07d5bda66e8c25e6a3fa72ffdb8334e16364db655c1a84e553c2ef31230e1fd0 DIST NVIDIA-Linux-x86_64-173.14.20-pkg2.run 17154542 RMD160 252bb1f5218b2530efc148d08ed9fe2422224ca2 SHA1 0300144c6955e296b134cadf3337c0d2b8266cda SHA256 ac855812b4eebe8646540ebbc6fea29731e0d93e44b19724c98fb4fdbc8c6baf +DIST NVIDIA-Linux-x86_64-173.14.22-pkg2.run 17600840 RMD160 f4c55ebd0d8a31cb0c1a8caf5ad007e9447f25f5 SHA1 d42694e59c67e779e9ab79b95df81ca5350cf101 SHA256 a2a9e973117fc1d92cf7357db42477727c30c34fc0a2ff54b074e6a392bc3f6d DIST NVIDIA-Linux-x86_64-180.60-pkg2.run 21479961 RMD160 150d7841814b58b7e1f570264ef7a3b06df7ad84 SHA1 606b6a9b1cd9fae7d3e3cd11de64b8c6f97b4518 SHA256 69eee4532031cb4107ea5d67743e8a210f83e2e3aa688d50c7f2f0bc8cc95933 DIST NVIDIA-Linux-x86_64-185.18.36-pkg2.run 22245788 RMD160 0ffbc35dd13d2ccff87f20e0d6a8b8622c497ec7 SHA1 0ec535765bf07dc7ff47bbede831a89617105ac1 SHA256 c9b413910a26cc55829e018f71e12981fa4140b5e0f7a81bb5e1a1b3d353ef8b DIST NVIDIA-Linux-x86_64-190.42-pkg2.run 23045797 RMD160 8858aaf1c089a6ad514d68c70db9dac312a3b17c SHA1 cf0a7a8a79cd77ad1363f0568e46866fa528e06f SHA256 3e95f80cbf388a03f0052efdb02cff87e201470c890edead8755fbe7b3368060 @@ -34,6 +37,7 @@ DIST nvdrivers_2.3_linux_32_190.29.run 29498221 RMD160 c5ba3e408c76c0a314e01f7c5 DIST nvdrivers_2.3_linux_64_190.29.run 28281390 RMD160 2bb0ef67036f684e102f46bd63f1d2187e645b56 SHA1 35730ace45a5320673c58ed458a0d020eeb7e540 SHA256 2f6679e5fb8101628f3e10818094aded6f7e4918309084e9daf4bfafa4938d39 EBUILD nvidia-drivers-173.14.20-r1.ebuild 15104 RMD160 ccd7823ad59c641124325d557713c5adf64d35f1 SHA1 5579043c6124e725a66dd650f7bb412ba5895b0f SHA256 0505d1fe949e7eaae0b9cadb0795794c061391639b5e88afb5cc561471c88d95 EBUILD nvidia-drivers-173.14.20.ebuild 14932 RMD160 fc466fc4d664e3ba028c916f83c401e10bd5bb9f SHA1 861b77a5b3d8524b3dc0440fec19c974eb199dec SHA256 423c59bad3f43de6df700e3511bbcf15b58e3e56114d5fb59b497be18e117723 +EBUILD nvidia-drivers-173.14.22.ebuild 15357 RMD160 ceda356dd1e14640d7e0c3d3ed6557433c99035a SHA1 47e40cd8c9460d7fe909e194a2593c77d6419ffe SHA256 1d4d2367869a05c4cdc34e74e761229b6679036881b159d574ff648f7c7cdc64 EBUILD nvidia-drivers-180.60.ebuild 16498 RMD160 350d810e70913d1c29ce527efc18b5cfc79fac10 SHA1 6d28f663441d64fa47b41d63bdf5f46616cb71ef SHA256 a4b527c2831e37d969abaafcc5af7ca5742a298560612ffb3581b1099f16b45b EBUILD nvidia-drivers-185.18.36-r1.ebuild 16288 RMD160 18eae7b4dc22ab5c1dd05d9b3d56832ca4b855eb SHA1 54af90a1af63003e0dc8be86b13f37308cbbb2a7 SHA256 49b183d595319696dc51ed805603b5be8d58f76ec795a1f4cfdb3048f870bb0e EBUILD nvidia-drivers-185.18.36.ebuild 16618 RMD160 485fcb2bcb54c50677c4876c580799c1245ead8a SHA1 542093c2f97fb0dcc17a5150b3dbe6392dfd0f5d SHA256 ff22712974def26c094959503a8d206e225faf457f91704f587ff72d7661fa53 @@ -43,12 +47,12 @@ EBUILD nvidia-drivers-190.42-r3.ebuild 15285 RMD160 8bd81349e282ac3817ddff631783 EBUILD nvidia-drivers-71.86.09.ebuild 14141 RMD160 2e5f2187b9ed1e187c911ef14d695cbbb57fbb5b SHA1 4c39f467cc23265efebcf021ae5af8a0e5c4bb84 SHA256 87084b0ce8a5ba967bfa73eeaf7fff2ba6e47eb063a723d7486e8643d80cc07a EBUILD nvidia-drivers-71.86.11.ebuild 14143 RMD160 82d24dc392482f0c9e9f0c79f03207bbe33b95f2 SHA1 9b71d5f0558bf5b6cb286c703ce1ab6bb1561a83 SHA256 f6ed960f992cef05c6e1ecc9c2f5f6c878a22d24018a5a4c2b16f15fad04f423 EBUILD nvidia-drivers-96.43.13.ebuild 14468 RMD160 4c0bbeb1f06cb7df7900d2d2d5ac08703345f548 SHA1 375a2babdcd5ace77ac4b436b6591cf9a1a2f66a SHA256 28ad4cf84b0f6e2f9c8b5aa274c90747bfaff6d91a1778e2d6109a3de668e6d3 -MISC ChangeLog 45895 RMD160 a5975d65a1d5c01dcc4159877eab33d1cb5003e1 SHA1 e7102b7fcfa8a67a534ab889f261aa15d6577683 SHA256 43aae4e4d03aafa24cbc32a22524bbd17ca896c5e0c32c507abe9982e5823242 +MISC ChangeLog 46113 RMD160 9168676f2198fd06833ac31e461974e89bd5f608 SHA1 adc722d7e412715d07002786d86956cf2b981165 SHA256 5eca1089ba53da0a76ca4827fa156d98d9b11e7b8ea96a8e1ff1ff03facbd383 MISC metadata.xml 608 RMD160 69923c951a3b11d3632338cd673430c1335f78cd SHA1 febe635634c122bf9fb5fd83fd486ab5a25282b3 SHA256 6b13dc244ff827b23a6f1de01eef3a7f607917573fb36b7316a1a629c78cc6bd -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.13 (GNU/Linux) -iEYEARECAAYFAkr8XiMACgkQoeSe8B0zEfynDgCfW+giaA2VGaKXLBt3f3buRIKe -vssAniJVJIOUFryP7THnfJ1CjpYss1WL -=U5jd +iEYEARECAAYFAkr9xCcACgkQoeSe8B0zEfzK5ACeO2L24Ir6WRqboNloxLbknURA +6cQAn2Hq/Trd6CVdYJB9Tqw0xrt6LjR7 +=82cC -----END PGP SIGNATURE----- diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-173.14.22.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-173.14.22.ebuild new file mode 100644 index 000000000000..3390ee709ff2 --- /dev/null +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-173.14.22.ebuild @@ -0,0 +1,498 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-173.14.22.ebuild,v 1.1 2009/11/13 20:39:56 cardoe Exp $ + +EAPI="2" + +inherit eutils multilib versionator linux-mod flag-o-matic nvidia-driver + +X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}" +AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}" +X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}" + +DESCRIPTION="NVIDIA X11 driver and GLX libraries" +HOMEPAGE="http://www.nvidia.com/" +SRC_URI="x86? ( ftp://download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}-pkg0.run ) + amd64? ( ftp://download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}-pkg2.run ) + x86-fbsd? ( ftp://download.nvidia.com/freebsd/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )" + +LICENSE="NVIDIA" +SLOT="0" +KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd" +IUSE="acpi custom-cflags gtk multilib kernel_linux" +RESTRICT="strip" +EMULTILIB_PKG="true" + +COMMON="<x11-base/xorg-server-1.7.99 + kernel_linux? ( >=sys-libs/glibc-2.6.1 ) + multilib? ( app-emulation/emul-linux-x86-xlibs ) + >=app-admin/eselect-opengl-1.0.9" +DEPEND="${COMMON} + kernel_linux? ( virtual/linux-sources )" +RDEPEND="${COMMON} + kernel_linux? ( virtual/modutils ) + acpi? ( sys-power/acpid )" +PDEPEND="gtk? ( media-video/nvidia-settings )" + +QA_TEXTRELS_x86="usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV} + usr/lib/opengl/nvidia/lib/libGL.so.${PV} + usr/lib/opengl/nvidia/lib/libGLcore.so.${PV} + usr/lib/opengl/nvidia/extensions/libglx.so.${PV} + usr/lib/xorg/modules/drivers/nvidia_drv.so + usr/lib/libcuda.so.${PV} + usr/lib/libnvidia-cfg.so.${PV} + usr/lib/libvdpau_nvidia.so.${PV} + usr/lib/libXvMCNVIDIA.so.${PV}" + +QA_TEXTRELS_x86_fbsd="boot/modules/nvidia.ko + usr/lib/opengl/nvidia/lib/libGL.so.1 + usr/lib/opengl/nvidia/lib/libGLcore.so.1 + usr/lib/libnvidia-cfg.so.1 + usr/lib/opengl/nvidia/extensions/libglx.so.1 + usr/lib/xorg/modules/drivers/nvidia_drv.so" + +QA_TEXTRELS_amd64="usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV} + usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV} + usr/lib32/opengl/nvidia/lib/libGL.so.${PV} + usr/lib32/libcuda.so.${PV} + usr/lib32/libvdpau_nvidia.so.${PV}" + +QA_EXECSTACK_x86="usr/lib/opengl/nvidia/lib/libGL.so.${PV} + usr/lib/opengl/nvidia/lib/libGLcore.so.${PV} + usr/lib/opengl/nvidia/extensions/libglx.so.${PV} + usr/lib/xorg/modules/drivers/nvidia_drv.so + usr/lib/libXvMCNVIDIA.a:NVXVMC.o" + +QA_EXECSTACK_amd64="usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV} + usr/lib32/opengl/nvidia/lib/libGL.so.${PV} + usr/lib64/libnvcompiler.so.${PV} + usr/lib64/libXvMCNVIDIA.so.${PV} + usr/lib64/libXvMCNVIDIA.a:NVXVMC.o + usr/lib64/libnvidia-cfg.so.${PV} + usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV} + usr/lib64/opengl/nvidia/lib/libGL.so.${PV} + usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV} + usr/lib64/opengl/nvidia/extensions/libglx.so.${PV} + usr/lib64/xorg/modules/drivers/nvidia_drv.so + usr/bin/nvidia-smi + usr/bin/nvidia-xconfig" + +QA_WX_LOAD_x86="usr/lib/opengl/nvidia/lib/libGLcore.so.${PV} + usr/lib/opengl/nvidia/lib/libGL.so.${PV} + usr/lib/opengl/nvidia/extensions/libglx.so.${PV} + usr/lib/libXvMCNVIDIA.a" + +QA_WX_LOAD_amd64="usr/lib32/opengl/nvidia/lib/libGL.so.${PV} + usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV} + usr/lib64/opengl/nvidia/lib/libGL.so.${PV} + usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV} + usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}" + +QA_SONAME_amd64="usr/lib64/libnvcompiler.so.${PV}" + +QA_DT_HASH_amd64="usr/lib32/libcuda.so.${PV} + usr/lib32/opengl/nvidia/lib/libGL.so.${PV} + usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV} + usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV} + usr/lib32/libvdpau_nvidia.so.${PV} + usr/lib64/libXvMCNVIDIA.so.${PV} + usr/lib64/libcuda.so.${PV} + usr/lib64/libnvidia-cfg.so.${PV} + usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV} + usr/lib64/opengl/nvidia/lib/libGL.so.${PV} + usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV} + usr/lib64/opengl/nvidia/extensions/libglx.so.${PV} + usr/lib64/xorg/modules/drivers/nvidia_drv.so + usr/lib64/libvdpau_nvidia.so.${PV} + usr/bin/nvidia-smi + usr/bin/nvidia-xconfig" + +QA_DT_HASH_x86="usr/lib/libcuda.so.${PV} + usr/lib/libnvidia-cfg.so.${PV} + usr/lib/opengl/nvidia/lib/libGLcore.so.${PV} + usr/lib/opengl/nvidia/lib/libGL.so.${PV} + usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV} + usr/lib/opengl/nvidia/extensions/libglx.so.${PV} + usr/lib/xorg/modules/drivers/nvidia_drv.so + usr/lib/libXvMCNVIDIA.so.${PV} + usr/lib/libvdpau_nvidia.so.${PV} + usr/bin/nvidia-smi + usr/bin/nvidia-xconfig" + +if use x86; then + PKG_V="-pkg0" + NV_PACKAGE="${X86_NV_PACKAGE}" +elif use amd64; then + PKG_V="-pkg2" + NV_PACKAGE="${AMD64_NV_PACKAGE}" +elif use x86-fbsd; then + PKG_V="" + NV_PACKAGE="${X86_FBSD_NV_PACKAGE}" +fi + +S="${WORKDIR}/${NV_PACKAGE}${PKG_V}" + +mtrr_check() { + ebegin "Checking for MTRR support" + linux_chkconfig_present MTRR + eend $? + + if [[ $? -ne 0 ]] ; then + eerror "Please enable MTRR support in your kernel config, found at:" + eerror + eerror " Processor type and features" + eerror " [*] MTRR (Memory Type Range Register) support" + eerror + eerror "and recompile your kernel ..." + die "MTRR support not detected!" + fi +} + +lockdep_check() { + if linux_chkconfig_present LOCKDEP; then + eerror "You've enabled LOCKDEP -- lock tracking -- in the kernel." + eerror "Unfortunately, this option exports the symbol 'lockdep_init_map' as GPL-only" + eerror "which will prevent ${P} from compiling." + eerror "Please make sure the following options have been unset:" + eerror " Kernel hacking --->" + eerror " [ ] Lock debugging: detect incorrect freeing of live locks" + eerror " [ ] Lock debugging: prove locking correctness" + eerror " [ ] Lock usage statistics" + eerror "in 'menuconfig'" + die "LOCKDEP enabled" + fi +} + +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 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; then + linux-mod_pkg_setup + MODULE_NAMES="nvidia(video:${S}/usr/src/nv)" + BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \ + SYSOUT=${KV_OUT_DIR} HOST_CC=$(tc-getBUILD_CC)" + mtrr_check + lockdep_check + fi + + # On BSD userland it wants real make command + use userland_BSD && MAKE="$(get_bmake)" + + export _POSIX2_VERSION="199209" + + # 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 + + # set variables to where files are in the package structure + if use kernel_FreeBSD; then + NV_DOC="${S}/doc" + NV_EXEC="${S}/obj" + NV_LIB="${S}/obj" + NV_SRC="${S}/src" + NV_MAN="${S}/x11/man" + NV_X11="${S}/obj" + NV_X11_DRV="${NV_X11}" + NV_X11_EXT="${NV_X11}" + NV_SOVER=1 + elif use kernel_linux; then + NV_DOC="${S}/usr/share/doc" + NV_EXEC="${S}/usr/bin" + NV_LIB="${S}/usr/lib" + NV_SRC="${S}/usr/src/nv" + NV_MAN="${S}/usr/share/man/man1" + NV_X11="${S}/usr/X11R6/lib" + NV_X11_DRV="${NV_X11}/modules/drivers" + NV_X11_EXT="${NV_X11}/modules/extensions" + NV_SOVER=${PV} + else + die "Could not determine proper NVIDIA package" + fi +} + +src_unpack() { + if use kernel_linux && kernel_is lt 2 6 7; then + echo + ewarn "Your kernel version is ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" + ewarn "This is not officially supported for ${P}. It is likely you" + ewarn "will not be able to compile or use the kernel module." + ewarn "It is recommended that you upgrade your kernel to a version >= 2.6.7" + echo + ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored." + fi + + if ! use x86-fbsd; then + mkdir "${S}" + cd "${S}" + unpack_makeself + else + unpack ${A} + fi +} + +src_prepare() { + # Please add a brief description for every added patch + use x86-fbsd && cd doc + + # Use the correct defines to make gtkglext build work + epatch "${FILESDIR}"/NVIDIA_glx-defines.patch + # Use some more sensible gl headers and make way for new glext.h + epatch "${FILESDIR}"/NVIDIA_glx-glheader.patch + + if use kernel_linux; then + # Quiet down warnings the user does not need to see + sed -i \ + -e 's:-Wpointer-arith::g' \ + -e 's:-Wsign-compare::g' \ + "${NV_SRC}"/Makefile.kbuild + + # If you set this then it's your own fault when stuff breaks :) + use custom-cflags && sed -i "s:-O:${CFLAGS}:" "${NV_SRC}"/Makefile.* + + # If greater than 2.6.5 use M= instead of SUBDIR= + convert_to_m "${NV_SRC}"/Makefile.kbuild + fi +} + +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 x86-fbsd; 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 +} + +src_install() { + if use kernel_linux; then + linux-mod_src_install + + 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." + fi + + # Add the aliases + [ -f "${FILESDIR}/nvidia-169.07" ] || die "nvidia missing in FILESDIR" + sed -e 's:PACKAGE:'${PF}':g' \ + -e 's:VIDEOGID:'${VIDEOGROUP}':' "${FILESDIR}"/nvidia-169.07 > \ + "${WORKDIR}"/nvidia + insinto /etc/modprobe.d + newins "${WORKDIR}"/nvidia nvidia.conf || die + elif use x86-fbsd; then + insinto /boot/modules + doins "${WORKDIR}/${NV_PACKAGE}/src/nvidia.kld" || die + + exeinto /boot/modules + doexe "${WORKDIR}/${NV_PACKAGE}/src/nvidia.ko" || die + fi + + # NVIDIA kernel <-> userspace driver config lib + dolib.so ${NV_LIB}/libnvidia-cfg.so.${NV_SOVER} || \ + die "failed to install libnvidia-cfg" + + # Xorg DDX driver + insinto /usr/$(get_libdir)/xorg/modules/drivers + doins ${NV_X11_DRV}/nvidia_drv.so || die "failed to install nvidia_drv.so" + + # Xorg GLX driver + insinto /usr/$(get_libdir)/opengl/nvidia/extensions + doins ${NV_X11_EXT}/libglx.so.${NV_SOVER} || \ + die "failed to install libglx.so" + dosym /usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so.${NV_SOVER} \ + /usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so || \ + die "failed to create libglx.so symlink" + + # XvMC driver + dolib.a ${NV_X11}/libXvMCNVIDIA.a || \ + die "failed to install libXvMCNVIDIA.so" + dolib.so ${NV_X11}/libXvMCNVIDIA.so.${NV_SOVER} || \ + die "failed to install libXvMCNVIDIA.so" + dosym libXvMCNVIDIA.so.${NV_SOVER} /usr/$(get_libdir)/libXvMCNVIDIA.so || \ + die "failed to create libXvMCNVIDIA.so symlink" + + # CUDA headers (driver to come) + if use kernel_linux; then + dodir /usr/include/cuda + insinto /usr/include/cuda + doins usr/include/cuda/*.h || die "failed to install cuda headers" + fi + + # OpenCL headers (driver to come) + if [[ -d ${S}/usr/include/CL ]]; then + dodir /usr/include/CL + insinto /usr/include/CL + doins usr/include/CL/*.h || die "failed to install OpenCL headers" + fi + + # Documentation + dodoc ${NV_DOC}/XF86Config.sample + dohtml ${NV_DOC}/html/* + if use x86-fbsd; then + dodoc "${NV_DOC}/README" + doman "${NV_MAN}/nvidia-xconfig.1" + else + # Docs + newdoc "${NV_DOC}/README.txt" README + dodoc "${NV_DOC}/NVIDIA_Changelog" +# doman "${NV_MAN}/nvidia-smi.1.gz" + doman "${NV_MAN}/nvidia-xconfig.1.gz" + fi + + # Helper Apps + dobin ${NV_EXEC}/nvidia-xconfig || die + dobin ${NV_EXEC}/nvidia-bug-report.sh || die + if use kernel_linux; then + dobin ${NV_EXEC}/nvidia-smi || die + fi + + if has_multilib_profile ; 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" +} + +# Install nvidia library: +# the first parameter is the place where to install it +# the second parameter is the base name of the library +# the third parameter is the provided soversion +donvidia() { + dodir $1 + exeinto $1 + + libname=$(basename $2) + + doexe $2.$3 || die "failed to install $2" + dosym ${libname}.$3 $1/${libname} || die "failed to symlink $2" + [[ $3 != "1" ]] && dosym ${libname}.$3 $1/${libname}.1 +} + +src_install-libs() { + local inslibdir=$(get_libdir) + local NV_ROOT="/usr/${inslibdir}/opengl/nvidia" + local libdir= sover= + + if use kernel_linux; then + if has_multilib_profile && [[ ${ABI} == "x86" ]] ; then + libdir=usr/lib32 + else + libdir=usr/lib + fi + sover=${PV} + else + libdir=obj + # on FreeBSD it has just .1 suffix + sover=1 + fi + + # The GLX libraries + donvidia ${NV_ROOT}/lib ${libdir}/libGL.so ${sover} + donvidia ${NV_ROOT}/lib ${libdir}/libGLcore.so ${sover} + if use x86-fbsd; then + donvidia ${NV_ROOT}/lib ${libdir}/libnvidia-tls.so ${sover} + else + donvidia ${NV_ROOT}/lib ${libdir}/tls/libnvidia-tls.so ${sover} + fi + + #cuda + if [[ -f ${libdir}/libcuda.so.${sover} ]]; then + dolib.so ${libdir}/libcuda.so.${sover} + [[ "${sover}" != "1" ]] && dosym libcuda.so.${sover} /usr/${inslibdir}/libcuda.so.1 + dosym libcuda.so.1 /usr/${inslibdir}/libcuda.so + fi + + #vdpau + if [[ -f ${libdir}/libvdpau_nvidia.so.${sover} ]]; then + dolib.so ${libdir}/libvdpau_nvidia.so.${sover} + dosym libvdpau_nvidia.so.${sover} /usr/${inslibdir}/libvdpau_nvidia.so + fi + + # OpenCL + # NOTE: This isn't currently available in the publicly released drivers. + if [[ -f ${libdir}/libOpenCL.so.1.0.0 ]]; then + + dolib.so ${libdir}/libnvcompiler.so.${sover} + [[ "${sover}" != "1" ]] && dosym libnvcompiler.so.${sover} /usr/${inslibdir}/libnvcompiler.so.1 + dosym libnvcompiler.so.1 /usr/${inslibdir}/libnvcompiler.so + + dolib.so ${libdir}/libOpenCL.so.1.0.0 + dosym libOpenCL.so.1.0.0 /usr/${inslibdir}/libOpenCL.so.1 + dosym libOpenCL.so.1 /usr/${inslibdir}/libOpenCL.so + fi +} + +pkg_preinst() { + if use kernel_linux; then + linux-mod_pkg_postinst + 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() { + if use kernel_linux; then + linux-mod_pkg_postinst + fi + + # Switch to the nvidia implementation + eselect opengl set --use-old nvidia + + echo + elog "You must be in the video group to use the NVIDIA device" + elog "For more info, read the docs at" + elog "http://www.gentoo.org/doc/en/nvidia-guide.xml#doc_chap3_sect6" + elog + + elog "This ebuild installs a kernel module and X driver. Both must" + elog "match explicitly in their version. This means, if you restart" + elog "X, you must modprobe -r nvidia before starting it back up" + elog + + elog "To use the NVIDIA GLX, run \"eselect opengl set nvidia\"" + elog + elog "NVIDIA has requested that any bug reports submitted have the" + elog "output of /usr/bin/nvidia-bug-report.sh included." + elog + elog "To work with compiz, you must enable the AddARGBGLXVisuals option." + elog + elog "If you are having resolution problems, try disabling DynamicTwinView." + echo +} + +pkg_postrm() { + if use kernel_linux; then + linux-mod_pkg_postrm + fi + eselect opengl set --use-old xorg-x11 +} |