summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Roovers <jer@gentoo.org>2010-11-19 05:55:52 +0000
committerJeroen Roovers <jer@gentoo.org>2010-11-19 05:55:52 +0000
commit6bbc94f1d73408e2b057e7658ba5302711fe8c8d (patch)
tree6f3d4d644ae897a07e641f46edbf6d030f1de4e8 /x11-drivers
parentBump to 0.10.30. Adds VP8 support and a bunch of fixes. (diff)
downloadhistorical-6bbc94f1d73408e2b057e7658ba5302711fe8c8d.tar.gz
historical-6bbc94f1d73408e2b057e7658ba5302711fe8c8d.tar.bz2
historical-6bbc94f1d73408e2b057e7658ba5302711fe8c8d.zip
Version bump by Miguel R. Caudevilla (bug #345929).
Package-Manager: portage-2.1.9.24/cvs/Linux i686
Diffstat (limited to 'x11-drivers')
-rw-r--r--x11-drivers/nvidia-drivers/ChangeLog7
-rw-r--r--x11-drivers/nvidia-drivers/Manifest6
-rw-r--r--x11-drivers/nvidia-drivers/nvidia-drivers-96.43.19.ebuild498
3 files changed, 509 insertions, 2 deletions
diff --git a/x11-drivers/nvidia-drivers/ChangeLog b/x11-drivers/nvidia-drivers/ChangeLog
index e4ae28fb2fa4..d55c1d75ab72 100644
--- a/x11-drivers/nvidia-drivers/ChangeLog
+++ b/x11-drivers/nvidia-drivers/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for x11-drivers/nvidia-drivers
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.258 2010/11/18 18:33:48 cardoe Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.259 2010/11/19 05:55:52 jer Exp $
+
+*nvidia-drivers-96.43.19 (19 Nov 2010)
+
+ 19 Nov 2010; Jeroen Roovers <jer@gentoo.org> +nvidia-drivers-96.43.19.ebuild:
+ Version bump by Miguel R. Caudevilla (bug #345929).
*nvidia-drivers-260.19.21 (18 Nov 2010)
diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index 6635388d0e0a..020bef2b3f9a 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -22,6 +22,7 @@ DIST NVIDIA-FreeBSD-x86-256.53.tar.gz 26347367 RMD160 c87f54dc7d9c005ab697cf0356
DIST NVIDIA-FreeBSD-x86-260.19.21.tar.gz 27196165 RMD160 bb3584195e607ddab1ba2def2dc9888cd2b9db72 SHA1 badedc91ad077c4ce7922c18b9b476766f15188d SHA256 a486171c3147fd3047971a8d7404f02bb2cf84827cab619e18a0f351c541e2a3
DIST NVIDIA-FreeBSD-x86-96.43.16.tar.gz 11842453 RMD160 c52b6c99b4745869d7f1de80009edbd57df52fc9 SHA1 fc74c5a65e69bcb50b1f9467f435f8001970b2a3 SHA256 38bf334284dc600d92d8436333c98d5577e34d69456ed71f1cccc75caa6dffcd
DIST NVIDIA-FreeBSD-x86-96.43.18.tar.gz 11841250 RMD160 ee0df712144ae68dfb1fa072a395ad7286c93c42 SHA1 36333977088c59f3f1c5aa9e49f1412bf3c5cf80 SHA256 89d4b1283f36c93641d9f0b177da9408089eb309c454940ebe7908fcbdb87cb1
+DIST NVIDIA-FreeBSD-x86-96.43.19.tar.gz 13352481 RMD160 376311eb6708f4b7f20b6326bb88d9a33e7b3d37 SHA1 72555f3da8a796e491eaa67192334ccefcdd2256 SHA256 b5dce181cc654a729ba06dd528a180d14a792b0328fcfbf86bb0f819285c0dd5
DIST NVIDIA-Linux-x86-173.14.25-pkg0.run 12265104 RMD160 0841a2ff500a85c539563da2ef2cb26ffc062fa5 SHA1 9e4dcae8163104a592b5f4e39081f6ba868c350d SHA256 403d730cc2135856980b2c3253fc2a715e80016028f4c087622658f98316762a
DIST NVIDIA-Linux-x86-173.14.27-pkg0.run 11446219 RMD160 0cfe74af74ecda273fe06ef9120d838e66589c38 SHA1 c41f4c620536a72c76e398ce2907e707ad9cbea0 SHA256 cb4ede9850cafec531855ac9ecdec18d14396ff07ebc1daadcc4a2a58ffe8322
DIST NVIDIA-Linux-x86-190.53-pkg0.run 14720222 RMD160 431efebaaf4d7a677df9bb3618d81210cd9e54eb SHA1 d8865bcaeb7f4c8c470828a3ed7dffb1bbc7a4eb SHA256 e9a985d485bbba11bf130a393a426f0eacd939e94705660d2b39ee8f1a25f57a
@@ -33,6 +34,7 @@ DIST NVIDIA-Linux-x86-256.53.run 25388956 RMD160 a538178866181aa252e8b4b7a62c098
DIST NVIDIA-Linux-x86-260.19.21.run 28463230 RMD160 f19a6e6e4b2b34d439cb2d21a588922dac908bc8 SHA1 2b3cefef5c99756b51751646301ba95768e5f382 SHA256 7706bbd63abfa6989f60424948809a91abedcddad5a098865a4c8678590c21bf
DIST NVIDIA-Linux-x86-96.43.16-pkg0.run 8441195 RMD160 3d1b09b87013d765e0fc602b9fe77aa96e650e70 SHA1 f17ff6c4862ba06b2208eb18e46c323927db65eb SHA256 243e458ccaf898c49794030cbbc59a0d740a4cefb2891ecc5721f6db79088ced
DIST NVIDIA-Linux-x86-96.43.18-pkg0.run 8443640 RMD160 b59b60709c74f466fb33ac0f260d3bd1772c66ae SHA1 392632fa8c6414e28a138caf1bb130eb28b486bc SHA256 dcab1421fbfb3d9557e457a0e02feb44b971530206b5ff7516543e5977c9542a
+DIST NVIDIA-Linux-x86-96.43.19-pkg0.run 9721273 RMD160 ca40f0572e36479bfdd4d921be45da7055692762 SHA1 dc5f0d5b068756991a7d7e50e17bfcf09684702f SHA256 e25810e809ea56ab33ebb3e79e885eb19784dcce2bb0102c0cb5daa372aaf1c8
DIST NVIDIA-Linux-x86_64-173.14.25-pkg2.run 17600598 RMD160 09b49035dbd28e797f7c085411ad1d2473d1a08c SHA1 10f51c25657b526d43237ea7b2a17dd0f36390d6 SHA256 fd0e331f41e48e34ac1dd1b96f913cb0a1f095611165732b499cff31be1ff835
DIST NVIDIA-Linux-x86_64-173.14.27-pkg2.run 16855116 RMD160 834022bfb90e53c42f04c240ef7f72a6abd65d40 SHA1 2fc29a8776f31542249146f2fd9112aacfacf101 SHA256 c096278701fc588e76eeb399b16d223a04b581af4a61c20cb3277a2b5f73ddf2
DIST NVIDIA-Linux-x86_64-190.53-pkg2.run 23111088 RMD160 7753b1a624a78e8c96ed7442157b8bfbdf1066bd SHA1 a80402aaaccae2d9ea5a974d837885e0d717ef11 SHA256 9e3d74e349767bbd1a87c19e082efe3a378e1bc2273b333ee8b1cc00254557fa
@@ -44,6 +46,7 @@ DIST NVIDIA-Linux-x86_64-256.53.run 42905128 RMD160 7a8229d42cd2ec2012c0f5badcd7
DIST NVIDIA-Linux-x86_64-260.19.21.run 47986632 RMD160 0794068ebd1b3392b47689d200f2acae914c11ca SHA1 367fa1948123a7036b1f72ef3a0b7cd3bede2435 SHA256 bf80147e94ab4c86dffe4529635e5f5b0caff5f6758a068d0e2d95ee466d2214
DIST NVIDIA-Linux-x86_64-96.43.16-pkg2.run 12337604 RMD160 fd7c586b53ff0b19034f8ef24dd24bec41940136 SHA1 b06a13d23565966821061c8d7cd1a636079ed1d8 SHA256 476538ffc3f7a5e964c7449d5242b0a684c95013d6fb1f5baa2324ef34aa5a73
DIST NVIDIA-Linux-x86_64-96.43.18-pkg2.run 12338886 RMD160 38cf91827e3011a35b00c064747bf98e965097a1 SHA1 b7811f14d86d4ed00c780351765580ec3d353968 SHA256 4644b1b3a78e651af079f85c8cf55b3666cca9ae466a43135d5857be31fa1ac8
+DIST NVIDIA-Linux-x86_64-96.43.19-pkg2.run 13829870 RMD160 c9b2edd825d30f8deea101d5dfd51f86dbf09ffe SHA1 f3cdb5d95c5bb9057d09331395e72fe8d5006f17 SHA256 81939f9ee45255cc137719a10b8947bc90cf5697da9e27991cee5a7061d5de19
EBUILD nvidia-drivers-173.14.25.ebuild 15359 RMD160 f76b8045fb57d3e39a8c880e0ec7b11a1c395838 SHA1 64b341c198d796892f5216efee84c142d48ee701 SHA256 247b753c685d09f124408ec687d1d9e5a492d87c3cd72ef42e7df409c1e3c114
EBUILD nvidia-drivers-173.14.27.ebuild 15389 RMD160 f482d1c91a23e197b97e8e48d0f53c880d4a3ca2 SHA1 26962c789ebea9fca1bad121b00626a40dec2710 SHA256 075db31110eba30d9fe791e17640023d33c2f8ee92559d3497292d7b21d6278f
EBUILD nvidia-drivers-190.53-r1.ebuild 15484 RMD160 9677efa6e2a0da095293798813baa67544c7de88 SHA1 da524d214695935095d6bfad67da1344cc152218 SHA256 66a541fdc9f837c9e5969e472eb5493324fe27affa7706c2a65f63ca14944832
@@ -56,5 +59,6 @@ EBUILD nvidia-drivers-256.53.ebuild 15724 RMD160 9d78ef0f6d2fa49bc29d798ac9b7396
EBUILD nvidia-drivers-260.19.21.ebuild 16188 RMD160 3a4adaaf4b15f5ae845fa62050861408000741bf SHA1 854f91585d862fc7db7cc66d96d179671140acf8 SHA256 67eed5f6bed420ef0f6665cc87ffbf76ba9d7846beb56b3c48d20b0b19f87765
EBUILD nvidia-drivers-96.43.16.ebuild 15375 RMD160 7f5c11269019caa7a32416a1762404487a17b76a SHA1 a78162fc120650cde3fe7078a481c24bad50df4f SHA256 9260a5e3421b9b9f7a704531bb965d7bd317e552fc3a35140faf3838ae78621e
EBUILD nvidia-drivers-96.43.18.ebuild 15371 RMD160 157df03ce0e958ac9f06aa602a762a5da23b4468 SHA1 677b245bbf68381db0ea3b03f03db2aa83bcc7c0 SHA256 7191c8ed7f3aa4682d312c7ad1973e9df94a195fada91340fc8e3450b416838a
-MISC ChangeLog 56234 RMD160 ab70a34b8487ca056c06e7e2e1a4a153c9b50e71 SHA1 0a3fca5ceee835be7dcb891da9aea25e7713055b SHA256 a8e63d5ae935ff7132383085d895901a25c8fbcd5c5cc0eb9df595057bbf57af
+EBUILD nvidia-drivers-96.43.19.ebuild 15371 RMD160 aac5886ac32f9b5aa29b980c2250f330b8a91da7 SHA1 251c391ea66ce1ff8aced0a75d75c4d2bc81e67d SHA256 be0103000896a6e888d33373e846280f89ef71cf86a78784e0c125971dad3ca5
+MISC ChangeLog 56406 RMD160 d951f324faf5fb230efb1d9e32fe3b0bfa85d1ce SHA1 23a1a71ca166e7871ec103f4d18f271cc3652186 SHA256 16ec18a4a6680a1438bc3cbabe45e3607b2f2efb28049cf3b69e0909e5606f89
MISC metadata.xml 549 RMD160 b6f8cfd5fe9668f4031b43d2167ba4712b3cb508 SHA1 c48be9c87aa8b237fa09848a53625f8312fa2056 SHA256 22653e2d8ee95e57ce47b6292a9988feecada431dde56c2c97198efd6f4b9354
diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-96.43.19.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-96.43.19.ebuild
new file mode 100644
index 000000000000..508af214572b
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-96.43.19.ebuild
@@ -0,0 +1,498 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-96.43.19.ebuild,v 1.1 2010/11/19 05:55:52 jer 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-opengl )
+ >=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 [[ -d ${S}/usr/include/cuda ]]; 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
+}