Version bump to latest version of the drivers.
authorChris Gianelloni <wolf31o2@gentoo.org>
Wed, 7 Mar 2007 23:14:54 +0000 (23:14 +0000)
committerChris Gianelloni <wolf31o2@gentoo.org>
Wed, 7 Mar 2007 23:14:54 +0000 (23:14 +0000)
Package-Manager: portage-2.1.2.1

x11-drivers/nvidia-drivers/ChangeLog
x11-drivers/nvidia-drivers/Manifest
x11-drivers/nvidia-drivers/files/digest-nvidia-drivers-1.0.9755 [new file with mode: 0644]
x11-drivers/nvidia-drivers/nvidia-drivers-1.0.9755.ebuild [new file with mode: 0644]

index a9c8a5e5d2059d9ab346a109cae7100460142669..71680026fda9e508182920d53a0d20585e527242 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for x11-drivers/nvidia-drivers
 # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.40 2007/02/19 22:45:06 wolf31o2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.41 2007/03/07 23:14:54 wolf31o2 Exp $
+
+*nvidia-drivers-1.0.9755 (07 Mar 2007)
+
+  07 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org>
+  +nvidia-drivers-1.0.9755.ebuild:
+  Version bump to latest version of the drivers.
 
   19 Feb 2007; Chris Gianelloni <wolf31o2@gentoo.org>
   nvidia-drivers-1.0.8776.ebuild, nvidia-drivers-1.0.9631.ebuild,
index 776459da849c441a688ee764f1c4d992e3b7479c..3775802cf55b1a3b1560a2f288655572109537f9 100644 (file)
@@ -32,12 +32,15 @@ SHA256 a5549cddd18ccd21099d1464fbf12846c280a698672575e67000037cb67d7162 files/nv
 DIST NVIDIA-FreeBSD-x86-1.0-8776.tar.gz 9448963 RMD160 d646e511978ac77fddb6600eabdfc1ea32146e00 SHA1 ef27e21c6117ba912c8c4351f4e89098d6672296 SHA256 404f25862031d8f3036de33d2a0fafc3c54821a9a08832c1c1616c145d93baa5
 DIST NVIDIA-FreeBSD-x86-1.0-9631.tar.gz 9667093 RMD160 2034f9086ad44ae222199e4949195dffc67274f1 SHA1 2cbeb4c732670b9eac8f95b5b5fb670ffdf03213 SHA256 2b467da57bc3bb8e2216ce3d02909cf077da045ebcf294474b784cb521a5d550
 DIST NVIDIA-FreeBSD-x86-1.0-9746.tar.gz 11152524 RMD160 8fe06d1a3af528c6fae9f94ff0e612d42e034ecd SHA1 b242fc70d8eea5825ba330dd5b1adc78df9184c4 SHA256 cf8be89d537423c0acc294e57cb659dae94463f6347f63c32b1de39c8051a5a7
+DIST NVIDIA-FreeBSD-x86-1.0-9755.tar.gz 11207740 RMD160 4ed7a96a36cd53acbe3d8fa4443634589da82635 SHA1 ca5f7dd0077559fe65ea02c2e02fbaa20ff5f0d8 SHA256 c064786952f7f06a91f487dd7f1b8be5531cb56d2a624f3774e7776410326544
 DIST NVIDIA-Linux-x86-1.0-8776-pkg0.run 6479231 RMD160 296dcc76c43fd65105f8d0c6f99295ee983b8872 SHA1 362902983e11e1b372a102359c6057ebb5aa7ef6 SHA256 0b25f9e407ea513cac8d600054d2dc28ca2e407caa535510210ad9fa5f45e8dc
 DIST NVIDIA-Linux-x86-1.0-9631-pkg0.run 6581907 RMD160 7fc0b394e0a9fbb772e43136528dbd3c2b7ac81e SHA1 52b85567907b2f32a3d3e0eef9a5a509013c05ab SHA256 d1a54248d55f2aecab735e40ae060928670a766a98dd652b2245ebd68085ca5a
 DIST NVIDIA-Linux-x86-1.0-9746-pkg0.run 7733466 RMD160 7968dba12e86ecf93470d2aa1442be0ca04c4bb0 SHA1 2e4a6a870f8eb5fe2fdfa75861dedce6c78b621f SHA256 11dd3fa562bb4695a65e69b45634b91d3fa6ab7181be5f0448afd3c7efce0756
+DIST NVIDIA-Linux-x86-1.0-9755-pkg0.run 7750628 RMD160 4a044add72957bfabfaac4fd19550dd4809873ee SHA1 486091e380faa85271d32f95e637dea3fbc6cdbd SHA256 5bba34a15101872d8ca339af3d4c97c83cb2a0ef81ff68a563517bc20bd29cb2
 DIST NVIDIA-Linux-x86_64-1.0-8776-pkg2.run 9982646 RMD160 5cba53392aa0fd27231d01883679e1a1dba7ee34 SHA1 2a6297b89f0586192f806a18271c5e58de4eed0b SHA256 6fc8dedf782fdfe408dc0196531c301bb3bafac6878520537807118f3a2f9384
 DIST NVIDIA-Linux-x86_64-1.0-9631-pkg2.run 10233636 RMD160 5e9c501fbfad27686651f64705854552be6c3f0c SHA1 add85f7b7d47c6657c1b53bbe6f8da0e1da0a1d7 SHA256 009d6e4171fa18580264ce0ace92c1c68f0702f009837f1214d77b6948223375
 DIST NVIDIA-Linux-x86_64-1.0-9746-pkg2.run 11743919 RMD160 b3a050ea487e627cdf2e9ba8dab8a178be6d0bfc SHA1 eee24a1db159c4cadc367f1ab2ed8306e23c89fe SHA256 22f9f09a5ceca852c20f12690ac396738f26e150713b2e56cbb42e752454abf9
+DIST NVIDIA-Linux-x86_64-1.0-9755-pkg2.run 11768823 RMD160 dbc5f34410294de21cadcd17216c45000a0464a1 SHA1 28fb1ac0948a583e8c760b541e19614f3f6ba0d4 SHA256 eaa467d3cde6fe61feb0cbe911316742e03e841d18a94c531caffa42457be785
 EBUILD nvidia-drivers-1.0.8776.ebuild 12578 RMD160 3d55da72a281503f2591d5c9bd44abe54d77390e SHA1 9b28e2b45689a4630de819e1e41f33ae363381c9 SHA256 fed6b4da3b333f6fcb46f93a06aeadaa6b2b0b5dbefd619dd8e387dd5acc2146
 MD5 ee1c5a2c1010d698b9c71f7b1b51615a nvidia-drivers-1.0.8776.ebuild 12578
 RMD160 3d55da72a281503f2591d5c9bd44abe54d77390e nvidia-drivers-1.0.8776.ebuild 12578
@@ -50,10 +53,14 @@ EBUILD nvidia-drivers-1.0.9746.ebuild 12906 RMD160 2b58a9ee6ddf900be0b82620ef1aa
 MD5 022352ef3e4d6ee12113079941d8983e nvidia-drivers-1.0.9746.ebuild 12906
 RMD160 2b58a9ee6ddf900be0b82620ef1aa41895231054 nvidia-drivers-1.0.9746.ebuild 12906
 SHA256 669b7d51d5c2a790d99d7c2594f06579a875855819a64ef523d1049f36fa8329 nvidia-drivers-1.0.9746.ebuild 12906
-MISC ChangeLog 9181 RMD160 dab0a07bafdff64f2790524f3f1d1c7c9859e136 SHA1 aa15b15f5c89375c91624c194cb3fa12995a68a5 SHA256 06ccab48334ded6d2921af0c06e00e6583f29cb17286090a96c04e88a020d58d
-MD5 697047d95abe22b2374b99d7a90eff1c ChangeLog 9181
-RMD160 dab0a07bafdff64f2790524f3f1d1c7c9859e136 ChangeLog 9181
-SHA256 06ccab48334ded6d2921af0c06e00e6583f29cb17286090a96c04e88a020d58d ChangeLog 9181
+EBUILD nvidia-drivers-1.0.9755.ebuild 12906 RMD160 b37e36f7fd6309160ecf8e85a7b59380c0da0e23 SHA1 7eff4a50075cee7eb23b0d5053491338d86dab9c SHA256 40266b309b7036a5ba63c0f487a7ab3f530a805679ca284926b620226f27020a
+MD5 7c4d8bf4afdada4ccfeb98fdeaaed600 nvidia-drivers-1.0.9755.ebuild 12906
+RMD160 b37e36f7fd6309160ecf8e85a7b59380c0da0e23 nvidia-drivers-1.0.9755.ebuild 12906
+SHA256 40266b309b7036a5ba63c0f487a7ab3f530a805679ca284926b620226f27020a nvidia-drivers-1.0.9755.ebuild 12906
+MISC ChangeLog 9360 RMD160 4c044a2fc5a280028ae73673cb3ce61cea69d68c SHA1 0fc6a8f6233b0e3c6537585d187e981347064393 SHA256 c90cc615212351124b1c897e5addd30de02e516c5132a50b03f4ae2406418937
+MD5 37e59d3fd02b5e46ab193d120e6cce7f ChangeLog 9360
+RMD160 4c044a2fc5a280028ae73673cb3ce61cea69d68c ChangeLog 9360
+SHA256 c90cc615212351124b1c897e5addd30de02e516c5132a50b03f4ae2406418937 ChangeLog 9360
 MISC metadata.xml 302 RMD160 66c75d5895f747b8ce5af0f80b90af8fea1d07d7 SHA1 47dde751e4e0c833a65f32e106e594f449fe58a2 SHA256 0aa0f01ad14674164a2898387b83ded31b2b67a12757165debe6b03ee2fd692f
 MD5 643cec14f7f1dda9a26f163853dbf080 metadata.xml 302
 RMD160 66c75d5895f747b8ce5af0f80b90af8fea1d07d7 metadata.xml 302
@@ -67,10 +74,13 @@ SHA256 7d920f7b6cae52a27fa4c0e9194e1e96565862955c2ceba136327bb92564c748 files/di
 MD5 288c8bcf08292abe4f7ec43168890bf4 files/digest-nvidia-drivers-1.0.9746 873
 RMD160 030aedf4c386fb0df0568fb35f62a36db9697901 files/digest-nvidia-drivers-1.0.9746 873
 SHA256 7a5e7a36e96d0a168150703a0d7c9d5d6604a66046b50d9a81a34f3066bf0c2d files/digest-nvidia-drivers-1.0.9746 873
+MD5 b5eee0015ba9c577cc726a3d2c12ae31 files/digest-nvidia-drivers-1.0.9755 873
+RMD160 f8491760b7f68c1ab846c55517131773f14e0c83 files/digest-nvidia-drivers-1.0.9755 873
+SHA256 8950b102eca59ec72c39db57778a0c47ea65f8bd29abe4c00307fd8bfd64afd3 files/digest-nvidia-drivers-1.0.9755 873
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.2 (GNU/Linux)
 
-iD8DBQFF2ih7kT4lNIS36YERAjjaAJ4+YsianxNJYsUa7QEjDinoWsPDigCgjwbz
-qzKqq5jz2MdW8LVOxOD2U2E=
-=WAYs
+iD8DBQFF70d2kT4lNIS36YERAhKcAKCoKPZ/mT0nGg7f0nDrxT7ECOExRwCggacO
+38c3BXYK2iET58oME2P5hVM=
+=hrX7
 -----END PGP SIGNATURE-----
diff --git a/x11-drivers/nvidia-drivers/files/digest-nvidia-drivers-1.0.9755 b/x11-drivers/nvidia-drivers/files/digest-nvidia-drivers-1.0.9755
new file mode 100644 (file)
index 0000000..0d2023e
--- /dev/null
@@ -0,0 +1,9 @@
+MD5 24c26e0b17da7c8b2a7c82ce835adb61 NVIDIA-FreeBSD-x86-1.0-9755.tar.gz 11207740
+RMD160 4ed7a96a36cd53acbe3d8fa4443634589da82635 NVIDIA-FreeBSD-x86-1.0-9755.tar.gz 11207740
+SHA256 c064786952f7f06a91f487dd7f1b8be5531cb56d2a624f3774e7776410326544 NVIDIA-FreeBSD-x86-1.0-9755.tar.gz 11207740
+MD5 991e03ceaff94fa8113ac04a541ec576 NVIDIA-Linux-x86-1.0-9755-pkg0.run 7750628
+RMD160 4a044add72957bfabfaac4fd19550dd4809873ee NVIDIA-Linux-x86-1.0-9755-pkg0.run 7750628
+SHA256 5bba34a15101872d8ca339af3d4c97c83cb2a0ef81ff68a563517bc20bd29cb2 NVIDIA-Linux-x86-1.0-9755-pkg0.run 7750628
+MD5 88eb6b856ab201dc00663165e10109f9 NVIDIA-Linux-x86_64-1.0-9755-pkg2.run 11768823
+RMD160 dbc5f34410294de21cadcd17216c45000a0464a1 NVIDIA-Linux-x86_64-1.0-9755-pkg2.run 11768823
+SHA256 eaa467d3cde6fe61feb0cbe911316742e03e841d18a94c531caffa42457be785 NVIDIA-Linux-x86_64-1.0-9755-pkg2.run 11768823
diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-1.0.9755.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-1.0.9755.ebuild
new file mode 100644 (file)
index 0000000..0ddde32
--- /dev/null
@@ -0,0 +1,441 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-1.0.9755.ebuild,v 1.1 2007/03/07 23:14:54 wolf31o2 Exp $
+
+inherit eutils multilib versionator linux-mod flag-o-matic
+
+NV_V="${PV/1.0./1.0-}"
+X86_NV_PACKAGE="NVIDIA-Linux-x86-${NV_V}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${NV_V}"
+X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${NV_V}"
+
+DESCRIPTION="NVIDIA X11 driver and GLX libraries"
+HOMEPAGE="http://www.nvidia.com/"
+SRC_URI="x86? ( http://us.download.nvidia.com/XFree86/Linux-x86/${NV_V}/${X86_NV_PACKAGE}-pkg0.run )
+        amd64? ( http://us.download.nvidia.com/XFree86/Linux-x86_64/${NV_V}/${AMD64_NV_PACKAGE}-pkg2.run )
+        x86-fbsd? ( http://us.download.nvidia.com/freebsd/${NV_V}/${X86_FBSD_NV_PACKAGE}.tar.gz )"
+
+LICENSE="NVIDIA"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
+IUSE=""
+RESTRICT="strip multilib-pkg-force"
+
+DEPEND="kernel_linux? ( virtual/linux-sources )"
+RDEPEND="kernel_linux? ( virtual/modutils )
+       x11-base/xorg-server
+       media-libs/mesa
+       app-admin/eselect-opengl
+       kernel_FreeBSD? ( !media-video/nvidia-freebsd )
+       !app-emulation/emul-linux-x86-nvidia
+       !x11-drivers/nvidia-legacy-drivers"
+
+QA_TEXTRELS_x86="usr/lib/xorg/libXvMCNVIDIA.so.${PV}
+       usr/lib/opengl/nvidia/lib/libGL.so.${PV}
+       usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}
+       usr/lib/opengl/nvidia/tls/libnvidia-tls.so.${PV}
+       usr/lib/opengl/nvidia/no-tls/libnvidia-tls.so.${PV}
+       usr/lib/libXvMCNVIDIA.so.${PV}
+       usr/lib/xorg/modules/drivers/nvidia_drv.so
+       usr/lib/opengl/nvidia/extensions/libglx.so"
+
+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/opengl/nvidia/no-tls/libnvidia-tls.so.1
+       usr/lib/opengl/nvidia/extensions/libglx.so
+       usr/lib/xorg/modules/drivers/nvidia_drv.so"
+
+QA_WX_LOAD_x86="usr/lib/opengl/nvidia/lib/libGL.so.${PV}
+       usr/lib/opengl/nvidia/lib/libGLcore.so.${PV}
+       usr/lib/opengl/nvidia/extensions/libglx.so"
+
+QA_TEXTRELS_amd64="usr/lib64/xorg/libXvMCNVIDIA.so.${PV}
+       usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
+       usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV}
+       usr/lib64/opengl/nvidia/tls/libnvidia-tls.so.${PV}
+       usr/lib64/opengl/nvidia/no-tls/libnvidia-tls.so.${PV}
+       usr/lib64/libXvMCNVIDIA.so.${PV}
+       usr/lib64/xorg/modules/drivers/nvidia_drv.so
+       usr/lib64/opengl/nvidia/extensions/libglx.so
+       usr/lib32/xorg/libXvMCNVIDIA.so.${PV}
+       usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
+       usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}
+       usr/lib32/opengl/nvidia/tls/libnvidia-tls.so.${PV}
+       usr/lib32/opengl/nvidia/no-tls/libnvidia-tls.so.${PV}
+       usr/lib32/libXvMCNVIDIA.so.${PV}
+       usr/lib32/xorg/modules/drivers/nvidia_drv.so
+       usr/lib32/opengl/nvidia/extensions/libglx.so"
+
+QA_WX_LOAD_amd64="usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
+       usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV}
+       usr/lib64/opengl/nvidia/extensions/libglx.so
+       usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
+       usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV}
+       usr/lib32/opengl/nvidia/extensions/libglx.so"
+
+export _POSIX2_VERSION="199209"
+
+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}/usr/src/nv"
+
+# On BSD userland it wants real make command
+MAKE="make"
+
+mtrr_check() {
+       ebegin "Checking for MTRR support"
+       linux_chkconfig_present MTRR
+       eend $?
+
+       if [[ $? -ne 0 ]] ; then
+               eerror "This version needs MTRR support for most chipsets!"
+               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
+}
+
+pkg_setup() {
+       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 x86-fbsd; then
+               linux-mod_pkg_setup
+               MODULE_NAMES="nvidia(video:${S})"
+               BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} SYSOUT=${KV_OUT_DIR}"
+               mtrr_check
+       fi
+}
+
+src_unpack() {
+       local NV_PATCH_PREFIX="${FILESDIR}/${PV}/NVIDIA-${PV}"
+
+       if ! use x86-fbsd; then
+               if [[ ${KV_MINOR} -eq 6 && ${KV_PATCH} -lt 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
+       fi
+
+       if ! use x86-fbsd; then
+               cd "${WORKDIR}"
+               bash ${DISTDIR}/${NV_PACKAGE}${PKG_V}.run --extract-only
+       else
+               unpack ${A}
+       fi
+
+       # Patches go below here, add breif description
+       use x86-fbsd \
+               && cd "${WORKDIR}/${NV_PACKAGE}${PKG_V}/doc" \
+               || cd "${WORKDIR}/${NV_PACKAGE}${PKG_V}"
+       # 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 x86-fbsd; then
+               # Quiet down warnings the user do not need to see
+               sed -i \
+                       -e 's:-Wpointer-arith::g' \
+                       -e 's:-Wsign-compare::g' \
+                       "${S}"/Makefile.kbuild
+
+               # If you set this then it's your own fault when stuff breaks :)
+               [[ -n ${USE_CRAZY_OPTS} ]] && sed -i "s:-O:${CFLAGS}:" Makefile.*
+
+               # If greater than 2.6.5 use M= instead of SUBDIR=
+               cd "${S}"; convert_to_m 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.
+       if use x86-fbsd; then
+               cd "${WORKDIR}/${NV_PACKAGE}${PKG_V}/src"
+               echo LDFLAGS="$(raw-ldflags)"
+               MAKE="$(get_bmake)" emake CC="$(tc-getCC)" LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
+       else
+               linux-mod_src_compile
+       fi
+}
+
+src_install() {
+       local MLTEST=$(type dyn_unpack)
+
+       cd "${WORKDIR}"/${NV_PACKAGE}${PKG_V}
+
+       if ! use x86-fbsd; then
+               linux-mod_src_install
+
+               # Add the aliases
+               sed -e 's:\${PACKAGE}:'${PF}':g' "${FILESDIR}"/nvidia > "${WORKDIR}"/nvidia
+               insinto /etc/modules.d
+               newins "${WORKDIR}"/nvidia nvidia || die
+       else
+               insinto /boot/modules
+               doins "${WORKDIR}/${X86_FBSD_NV_PACKAGE}/src/nvidia.kld"
+
+               exeinto /boot/modules
+               doexe "${WORKDIR}/${X86_FBSD_NV_PACKAGE}/src/nvidia.ko"
+       fi
+
+       if [[ "${MLTEST/set_abi}" == "${MLTEST}" ]] && has_multilib_profile ; then
+               local OABI=${ABI}
+               for ABI in $(get_install_abis) ; do
+                       src_install-libs
+               done
+               ABI=${OABI}
+               unset OABI
+       elif use amd64 ; then
+               src_install-libs lib32 $(get_multilibdir)
+               src_install-libs lib $(get_libdir)
+
+               rm -rf "${D}"/usr/$(get_multilibdir)/opengl/nvidia/include
+               rm -rf "${D}"/usr/$(get_multilibdir)/opengl/nvidia/extensions
+       else
+               src_install-libs
+       fi
+
+       is_final_abi || return 0
+
+       if ! use x86-fbsd; then
+               # Docs, remove nvidia-settings as provided by media-video/nvidia-settings
+               newdoc usr/share/doc/README.txt README
+               dodoc usr/share/doc/Copyrights usr/share/doc/NVIDIA_Changelog
+               dodoc usr/share/doc/XF86Config.sample
+               dohtml usr/share/doc/html/*
+               # nVidia want bug reports using this script
+               dobin usr/bin/nvidia-bug-report.sh
+       else
+               dodoc doc/{README,XF86Config.sample,Copyrights}
+               dohtml doc/html/*
+       fi
+}
+
+# Install nvidia library:
+# the first parameter is the place where to install it
+# the second paramis the base name of the library
+# the third parameter is the provided soversion
+donvidia() {
+       dodir $1
+       exeinto $1
+
+       libname=$(basename $2)
+
+       doexe $2.$3
+       dosym ${libname}.$3 $1/${libname}
+
+       [[ $3 != "1" ]] && dosym ${libname}.$3 $1/${libname}.1
+}
+
+src_install-libs() {
+       local pkglibdir=lib
+       local inslibdir=$(get_libdir)
+
+       if [[ ${#} -eq 2 ]] ; then
+               pkglibdir=${1}
+               inslibdir=${2}
+       elif has_multilib_profile && [[ ${ABI} == "x86" ]] ; then
+               pkglibdir=lib32
+       fi
+
+       local usrpkglibdir=usr/${pkglibdir}
+       local libdir=usr/X11R6/${pkglibdir}
+       local modules=${libdir}/modules
+       local drvdir=${modules}/drivers
+       local extdir=${modules}/extensions
+       local incdir=usr/include/GL
+       local sover=${PV}
+       local NV_ROOT="/usr/${inslibdir}/opengl/nvidia"
+       local NO_TLS_ROOT="${NV_ROOT}/no-tls"
+       local TLS_ROOT="${NV_ROOT}/tls"
+       local X11_LIB_DIR="/usr/${inslibdir}/xorg"
+
+       if ! has_version x11-base/xorg-server ; then
+               X11_LIB_DIR="/usr/${inslibdir}"
+       fi
+
+       if use x86-fbsd; then
+               # on FreeBSD everything is on obj/
+               pkglibdir=obj
+               usrpkglibdir=obj
+               x11pkglibdir=obj
+               drvdir=obj
+               extdir=obj
+
+               # don't ask me why the headers are there.. glxext.h is missing
+               incdir=doc
+
+               # on FreeBSD it has just .1 suffix
+               sover=1
+       fi
+
+       # The GLX libraries
+       donvidia ${NV_ROOT}/lib ${usrpkglibdir}/libGL.so ${sover}
+       donvidia ${NV_ROOT}/lib ${usrpkglibdir}/libGLcore.so ${sover}
+
+       dodir ${NO_TLS_ROOT}
+       donvidia ${NO_TLS_ROOT} ${usrpkglibdir}/libnvidia-tls.so ${sover}
+
+       if ! use x86-fbsd; then
+               donvidia ${TLS_ROOT} ${usrpkglibdir}/tls/libnvidia-tls.so ${sover}
+       fi
+
+       if want_tls ; then
+               dosym ../tls/libnvidia-tls.so ${NV_ROOT}/lib
+               dosym ../tls/libnvidia-tls.so.1 ${NV_ROOT}/lib
+               dosym ../tls/libnvidia-tls.so.${sover} ${NV_ROOT}/lib
+       else
+               dosym ../no-tls/libnvidia-tls.so ${NV_ROOT}/lib
+               dosym ../no-tls/libnvidia-tls.so.1 ${NV_ROOT}/lib
+               dosym ../no-tls/libnvidia-tls.so.${sover} ${NV_ROOT}/lib
+       fi
+
+       if ! use x86-fbsd; then
+               # Not sure whether installing the .la file is neccessary;
+               # this is adopted from the `nvidia' ebuild
+               local ver1=$(get_version_component_range 1)
+               local ver2=$(get_version_component_range 2)
+               local ver3=$(get_version_component_range 3)
+               sed -e "s:\${PV}:${PV}:"     \
+                       -e "s:\${ver1}:${ver1}:" \
+                       -e "s:\${ver2}:${ver2}:" \
+                       -e "s:\${ver3}:${ver3}:" \
+                       -e "s:\${libdir}:${inslibdir}:" \
+                       "${FILESDIR}"/libGL.la-r2 > "${D}"/${NV_ROOT}/lib/libGL.la
+       fi
+
+       exeinto ${X11_LIB_DIR}/modules/drivers
+
+       [[ -f ${drvdir}/nvidia_drv.so ]] && \
+               doexe ${drvdir}/nvidia_drv.so
+
+       insinto /usr/${inslibdir}
+       [[ -f ${libdir}/libXvMCNVIDIA.a ]] && \
+               doins ${libdir}/libXvMCNVIDIA.a
+       exeinto /usr/${inslibdir}
+       # fix Bug 131315
+       [[ -f ${libdir}/libXvMCNVIDIA.so.${PV} ]] && \
+               doexe ${libdir}/libXvMCNVIDIA.so.${PV} && \
+               dosym libXvMCNVIDIA.so.${PV} \
+                       /usr/${inslibdir}/libXvMCNVIDIA.so
+
+       exeinto ${NV_ROOT}/extensions
+       [[ -f ${modules}/libnvidia-wfb.so.${sover} ]] && \
+               newexe ${modules}/libnvidia-wfb.so.${sover} libwfb.so
+       [[ -f ${extdir}/libglx.so.${sover} ]] && \
+               newexe ${extdir}/libglx.so.${sover} libglx.so
+
+       # Includes
+       insinto ${NV_ROOT}/include
+       doins ${incdir}/*.h
+}
+
+pkg_preinst() {
+       # Can we make up our minds ?!?!?
+       local NV_D=${IMAGE:-${D}}
+
+       if ! has_version x11-base/xorg-server ; then
+               for dir in lib lib32 lib64 ; do
+                       if [[ -d ${NV_D}/usr/${dir}/xorg ]] ; then
+                               mv ${NV_D}/usr/${dir}/xorg/* ${NV_D}/usr/${dir}
+                               rmdir ${NV_D}/usr/${dir}/xorg
+                       fi
+               done
+       fi
+
+       # Clean the dinamic 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 x86-fbsd; then
+               linux-mod_pkg_postinst
+       fi
+
+       #switch to the nvidia implementation
+       eselect opengl set --use-old nvidia
+
+       echo
+       elog "To use the Nvidia GLX, run \"eselect opengl set nvidia\""
+       echo
+       einfo "You may also be interested in media-video/nvidia-settings"
+       echo
+       elog "nVidia has requested that any bug reports submitted have the"
+       elog "output of /usr/bin/nvidia-bug-report.sh included."
+       echo
+       elog "To work with compiz, you must enable the AddARGBGLXVisuals option."
+       echo
+       elog "If you are having resolution problems, try disabling DynamicTwinView."
+       echo
+}
+
+want_tls() {
+       # For uclibc or anything non glibc, return false
+       has_version sys-libs/glibc || return 1
+
+       # Old versions of glibc were lt/no-tls only
+       has_version '<sys-libs/glibc-2.3.2' && return 1
+
+       local valid_chost="true"
+       if use x86 ; then
+               case ${CHOST/-*} in
+                       i486|i586|i686) ;;
+                       *) valid_chost="false"
+               esac
+       fi
+
+       [[ ${valid_chost} == "false" ]] && return 1
+
+       # If we've got nptl, we've got tls
+       built_with_use sys-libs/glibc nptl && return 0
+
+       # 2.3.5 turned off tls for linuxthreads glibc on i486 and i586
+       if use x86 && has_version '>=sys-libs/glibc-2.3.5' ; then
+               case ${CHOST/-*} in
+                       i486|i586) return 1 ;;
+               esac
+       fi
+
+       # These versions built linuxthreads version to support tls, too
+       has_version '>=sys-libs/glibc-2.3.4.20040619-r2' && return 0
+
+       return 1
+}
+
+pkg_postrm() {
+       if ! use x86-fbsd; then
+               linux-mod_pkg_postrm
+       fi
+       eselect opengl set --use-old xorg-x11
+}