summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Goldstein <cardoe@gentoo.org>2008-12-17 01:00:23 +0000
committerDoug Goldstein <cardoe@gentoo.org>2008-12-17 01:00:23 +0000
commit3f8ad8ba7b0acbfb0c3449ac0bac9303c99c1023 (patch)
tree56bf4724da91acdbd10a8ccee21095d9d058e9b5 /x11-drivers
parentNew ebuild for apertium, bug #215833 (diff)
downloadhistorical-3f8ad8ba7b0acbfb0c3449ac0bac9303c99c1023.tar.gz
historical-3f8ad8ba7b0acbfb0c3449ac0bac9303c99c1023.tar.bz2
historical-3f8ad8ba7b0acbfb0c3449ac0bac9303c99c1023.zip
add 71.86.07 to the tree for 2.6.27 kernel support. This ebuild is refactored like my past refactoring of the ebuilds. More changes to come. Please report issues if you spot them in the ebuild, or suggest improvements.
Package-Manager: portage-2.1.6.1/cvs/Linux 2.6.27-gentoo-r2 x86_64
Diffstat (limited to 'x11-drivers')
-rw-r--r--x11-drivers/nvidia-drivers/ChangeLog11
-rw-r--r--x11-drivers/nvidia-drivers/Manifest11
-rw-r--r--x11-drivers/nvidia-drivers/nvidia-drivers-71.86.07.ebuild471
3 files changed, 488 insertions, 5 deletions
diff --git a/x11-drivers/nvidia-drivers/ChangeLog b/x11-drivers/nvidia-drivers/ChangeLog
index 3e4fb79183c0..b2eb56e83985 100644
--- a/x11-drivers/nvidia-drivers/ChangeLog
+++ b/x11-drivers/nvidia-drivers/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for x11-drivers/nvidia-drivers
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.117 2008/12/13 04:19:17 cardoe Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.118 2008/12/17 01:00:23 cardoe Exp $
+
+*nvidia-drivers-71.86.07 (17 Dec 2008)
+
+ 17 Dec 2008; Doug Goldstein <cardoe@gentoo.org>
+ +nvidia-drivers-71.86.07.ebuild:
+ add 71.86.07 to the tree for 2.6.27 kernel support. This ebuild is
+ refactored like my past refactoring of the ebuilds. More changes to come.
+ Please report issues if you spot them in the ebuild, or suggest
+ improvements.
13 Dec 2008; Doug Goldstein <cardoe@gentoo.org>
nvidia-drivers-71.86.06.ebuild, nvidia-drivers-96.43.07.ebuild,
diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
index 862264372300..997b48b7d62b 100644
--- a/x11-drivers/nvidia-drivers/Manifest
+++ b/x11-drivers/nvidia-drivers/Manifest
@@ -46,6 +46,7 @@ DIST NVIDIA-Linux-x86-177.70-pkg0.run 12373698 RMD160 5d461f6a6240969b9a69cfb81f
DIST NVIDIA-Linux-x86-177.80-pkg0.run 12743262 RMD160 ffeb2f6ed3c4ba4ae8678c502a78440abfdbebfb SHA1 b193ae0d386b88ee0e7dbecbb565bb7ae70c1e05 SHA256 7a0afe3e9bcdd5ec4cf078d38592f408f8cccfb2c50beca71cf47b53be1aa997
DIST NVIDIA-Linux-x86-177.82-pkg0.run 12747296 RMD160 1edf12487961bcf6c932797ea28db20dc48c3e19 SHA1 efca3d21433250221dcdee4d304e999a7cf20fae SHA256 947384416a991a583aa44dfb594e323858ecaedf4e6ad859849e43301c9f9515
DIST NVIDIA-Linux-x86-71.86.06-pkg0.run 5261179 RMD160 87541a06f384b567b5762bf5e01faee7c4983fc0 SHA1 744b7885dcb99b1cbc9d3f61a755644f149eb0c9 SHA256 bd89aa8656fbc49f0cf0b5e9d6975f2345d7363ca240f7b67d92690ad8e3e1d7
+DIST NVIDIA-Linux-x86-71.86.07-pkg0.run 5264394 RMD160 764111fb8413452ba23ff9c6488de6974257dd84 SHA1 1c71f68b7460f0ac0a8abe07f56ea7876b0496e3 SHA256 06019159b99fd4b7f983eaf8d4f9b5b15b389d328d8606eee2bb62f1b9b9341b
DIST NVIDIA-Linux-x86-96.43.07-pkg0.run 6595902 RMD160 beeb827c53dd8ad8712db9b39fda8219308ff05e SHA1 4820162119f81a30b665f37fd8d772545d921be4 SHA256 8a61ad352bc7f3aceebe3fd3fed39354fe13214bb13f7c4ddda557f5bc842515
DIST NVIDIA-Linux-x86_64-100.14.09-pkg2.run 11834257 RMD160 d8c7987c4053835ec4d23facee855ebc35d95da4 SHA1 001bce9cba1c8ba31b0e942e85b429a5533ca72c SHA256 554aa9e63f1ac9e5f2f218f8532a73b514783d5ea1c674bbf888500998877ec7
DIST NVIDIA-Linux-x86_64-100.14.11-pkg2.run 11838502 RMD160 d357c75e9043e1cb089b3136635af04c88420943 SHA1 d542b702fdf7835f5dc7ec767789b2c1ada60908 SHA256 3215f786838d2d05005ec53cc9e3a684d46939ae2ea8c8e6b3e20f092be3b5e1
@@ -65,6 +66,7 @@ DIST NVIDIA-Linux-x86_64-177.70-pkg2.run 19023159 RMD160 98fe3da90d479d2e5c7b12a
DIST NVIDIA-Linux-x86_64-177.80-pkg2.run 19409654 RMD160 e492240b2c6ce78edd8c1dfd856b98a477844bac SHA1 218e803705269498552c877e8d27316ef323c983 SHA256 877c1d70568d75ab34ded0e4eac97374d7cf19a20ac51860f27a5157d89da1cf
DIST NVIDIA-Linux-x86_64-177.82-pkg2.run 19416201 RMD160 82a7d9f38965a256d270f2e13a0a673b90247f61 SHA1 b99947e3732f11ddbad5bdcc033154ce55976fc3 SHA256 4235f3acc516cf209b91222c87ba768c5fdbef171c7737db9f1d6cc890f2737f
DIST NVIDIA-Linux-x86_64-71.86.06-pkg2.run 8380369 RMD160 dece285c6e02da8e788d977c2df114b3bbf8cc0f SHA1 518dd3e4d8ff484a6809184064d39afe0004ef45 SHA256 00f21f8ef75eeade437bb611fac98c4df6c4bef82293ad1d4506020f7004b57b
+DIST NVIDIA-Linux-x86_64-71.86.07-pkg2.run 8380439 RMD160 5ba261e0f5f25868236ca47768167dd913786a23 SHA1 de7c6951bfc524d2decbe729346e3af351f1d8cb SHA256 e42e004647225086cd2bceb207d3575974188133cb4d5e497188df967362cf39
DIST NVIDIA-Linux-x86_64-96.43.07-pkg2.run 10201418 RMD160 a8001232a5f2108a7ed8f2816487873317ebf018 SHA1 7c6e4f8050f1a8221efb458d350b6853f00d2cb4 SHA256 37efff3be9404fc936a074ce2c9e9a189568a02c3893d75bf438d5b45682051e
EBUILD nvidia-drivers-100.14.09.ebuild 14578 RMD160 1899b18d29723188c39cebd12ef5b00f0574798f SHA1 7fa7ce5dc76ae93a68737c067cf77fba51f8d35e SHA256 51f2864af118cd2d24dd8178c0d7f75c3a7da7d7304e5a6b39aa3d99f582c153
EBUILD nvidia-drivers-100.14.11.ebuild 14580 RMD160 b197ffe63f6a403471a6c00a686031ae8dfc6735 SHA1 2aab2ca8bfd89c724257dfe49f6f46a503b61d8e SHA256 3c829f7927a710d7cf95cddf953ec9b3baeb4f7a69d7f4936e5025fce9a6aea5
@@ -85,13 +87,14 @@ EBUILD nvidia-drivers-177.70.ebuild 15061 RMD160 b5ee71acfd6e991b45885013e4d9020
EBUILD nvidia-drivers-177.80.ebuild 15036 RMD160 57b73d99714953d8a0244ba8266a6a7f1a6bcade SHA1 c45d745a82a8e4ca6ac405a1a1d89a97a6fc1dd8 SHA256 c02fac30116db8790abd80eccecfc0ef8614ccb7c2532be099a6381987ab387b
EBUILD nvidia-drivers-177.82.ebuild 15036 RMD160 5981d6636a23cf6a3afc0d3344170c904667d2c9 SHA1 add1e9c0411f94be558e7ce7c2a7189645b05bb7 SHA256 8c0a9e5c712c78394f701dbbc3562562bfdbd0d24d7a1eb2b2be36c00007f05c
EBUILD nvidia-drivers-71.86.06.ebuild 14138 RMD160 2f713727f51ed4fdcf8e94fa629b8892fe3266b1 SHA1 9ac9d3ccae0978327e782c1ba52f506326d565dc SHA256 ea06b4cf57144afe3a08d0a266e0beced197aa53b88464e76d2f4cde9d62c123
+EBUILD nvidia-drivers-71.86.07.ebuild 14187 RMD160 9a52a2e665e9058b08762fde679f588d8c39da2a SHA1 b07f989ff64ea6fe59e1ec741e344ab1f08ca672 SHA256 f2adda772dad5338caebf0d882ea4eb6a6af1c6fe550e5866847d7e64233fe32
EBUILD nvidia-drivers-96.43.07.ebuild 14475 RMD160 35dc001755181bdda3e4d0c5be97879d579736a1 SHA1 c5b52dffd298e87c4cd78118bf5ada1f2af770d5 SHA256 07b82b5b503e61212104927ad79e4f75d082e39c0df807800bfaeb9e1874a98d
-MISC ChangeLog 26357 RMD160 7c05785d73808e8285d442dbfe2b79ad3bd3a5ab SHA1 cf199be71e072bab40a6c23679e1b5e8572a8854 SHA256 29cb3bbdd0ff6aa83d891b72967b7419f602951c8e9c8a78b5c7a226395382cf
+MISC ChangeLog 26710 RMD160 6a7bc951cf3767c5d65294607db7195dadade08c SHA1 929f22b1e5d22cc1e0030667d054cc751ab607a5 SHA256 fc0ccd805b0d663fcffb69f8ae0781bd40e6ee94db29de9e5e823ae8fb73a55b
MISC metadata.xml 453 RMD160 4e3149a2f84395713739fb8706ac956a03f581e6 SHA1 7631f2686bf4b40f814aa19e99eb94493659cab2 SHA256 ebf76bf6d7f6494241970099567b3292bb1e10f98ebdb9045ecdf92a44599ae6
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)
-iEUEARECAAYFAklDN+UACgkQoeSe8B0zEfw41QCeOjBd8EuAFFhnnELBXEZdB8R+
-CLgAlAuNwTZzf9HoVozEDpUWMh2Tr08=
-=OyMF
+iEYEARECAAYFAklITz0ACgkQoeSe8B0zEfz7/gCeMPdK0DSmfFrbbRS5VyV/N+94
+m40An1KWQEER63P2n7gPdFvOxTh+jECv
+=CJGt
-----END PGP SIGNATURE-----
diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-71.86.07.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-71.86.07.ebuild
new file mode 100644
index 000000000000..67b8869cf3ed
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-71.86.07.ebuild
@@ -0,0 +1,471 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-71.86.07.ebuild,v 1.1 2008/12/17 01:00:23 cardoe Exp $
+
+inherit eutils multilib versionator linux-mod flag-o-matic nvidia-driver
+
+X86_NV="Linux-x86"
+AMD64_NV="Linux-x86_64"
+X86_FBSD_NV="FreeBSD-x86"
+X86_NV_PACKAGE="NVIDIA-${X86_NV}-${PV}-pkg0"
+AMD64_NV_PACKAGE="NVIDIA-${AMD64_NV}-${PV}-pkg2"
+X86_FBSD_NV_PACKAGE="NVIDIA-${X86_FBSD_NV}-${PV}"
+
+DESCRIPTION="NVIDIA X11 driver and GLX libraries"
+HOMEPAGE="http://www.nvidia.com/"
+SRC_URI="x86? ( ftp://download.nvidia.com/XFree86/${X86_NV}/${PV}/${X86_NV_PACKAGE}.run )
+ amd64? ( ftp://download.nvidia.com/XFree86/${AMD64_NV}/${PV}/${AMD64_NV_PACKAGE}.run )"
+
+LICENSE="NVIDIA"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+IUSE="acpi custom-cflags gtk multilib kernel_FreeBSD kernel_linux userland_BSD"
+RESTRICT="strip"
+EMULTILIB_PKG="true"
+
+COMMON="<x11-base/xorg-server-1.4.99
+ multilib? ( app-emulation/emul-linux-x86-xlibs )
+ kernel_FreeBSD? ( !media-video/nvidia-freebsd )
+ !app-emulation/emul-linux-x86-nvidia
+ !x11-drivers/nvidia-legacy-drivers"
+DEPEND="${COMMON}
+ kernel_linux? ( virtual/linux-sources )
+ app-admin/eselect-opengl"
+RDEPEND="${COMMON}
+ kernel_linux? ( virtual/modutils )
+ media-libs/mesa
+ acpi? ( sys-power/acpid )"
+PDEPEND="gtk? ( media-video/nvidia-settings )"
+
+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/lib/libnvidia-cfg.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/lib/libnvidia-cfg.so.${PV}
+ 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/lib/libnvidia-cfg.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/lib/libnvidia-cfg.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"
+
+QA_EXECSTACK_amd64="usr/lib64/xorg/modules/drivers/nvidia_drv.so
+ usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
+ usr/lib64/opengl/nvidia/lib/libnvidia-cfg.so.${PV}
+ usr/lib64/opengl/nvidia/extensions/libglx.so
+ usr/lib64/libXvMCNVIDIA.so.${PV}
+ usr/bin/nvidia-xconfig"
+
+QA_EXECSTACK_x86="usr/lib/xorg/modules/drivers/nvidia_drv.so
+ usr/lib/opengl/nvidia/lib/libGL.so.${PV}
+ usr/lib/opengl/nvidia/lib/libnvidia-cfg.so.${PV}
+ usr/lib/opengl/nvidia/extensions/libglx.so
+ usr/lib/libXvMCNVIDIA.so.${PV}
+ usr/bin/nvidia-xconfig"
+
+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() {
+ # try to turn off distcc and ccache for people that have a problem with it
+ export DISTCC_DISABLE=1
+ export CCACHE_DISABLE=1
+
+ # use the right package
+ if use x86; then
+ NV_PACKAGE="${X86_NV_PACKAGE}"
+ elif use amd64; then
+ NV_PACKAGE="${AMD64_NV_PACKAGE}"
+ elif use x86-fbsd; then
+ NV_PACKAGE="${X86_FBSD_NV_PACKAGE}"
+ else
+ die "Could not determine proper NVIDIA package"
+ fi
+
+ # set variables to where files are in the package structure
+ if use kernel_FreeBSD; then
+ NV_DOC="${WORKDIR}/${NV_PACKAGE}/doc"
+ NV_EXEC="${WORKDIR}/${NV_PACKAGE}/obj"
+ NV_SRC="${WORKDIR}/${NV_PACKAGE}/src"
+ elif use kernel_linux; then
+ NV_DOC="${WORKDIR}/${NV_PACKAGE}/usr/share/doc"
+ NV_EXEC="${WORKDIR}/${NV_PACKAGE}/usr/bin"
+ NV_SRC="${WORKDIR}/${NV_PACKAGE}/usr/src/nv"
+ fi
+
+ 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:${NV_SRC})"
+ BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
+ SYSOUT=${KV_OUT_DIR} HOST_CC=$(tc-getBUILD_CC)"
+ mtrr_check
+ fi
+
+ # On BSD userland it wants real make command
+ use userland_BSD && MAKE="$(get_bmake)"
+
+ # Unknown why this needs to be set
+ 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
+}
+
+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 "${WORKDIR}/${NV_PACKAGE}"
+ cd "${WORKDIR}/${NV_PACKAGE}"
+ unpack_makeself
+ else
+ unpack ${A}
+ fi
+
+ # Patches go below here, add brief description
+ use x86-fbsd \
+ && cd "${NV_DOC}" \
+ || cd "${WORKDIR}/${NV_PACKAGE}"
+ # 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' \
+ "${WORKDIR}/${NV_PACKAGE}"/Makefile.kbuild
+
+ # If you set this then it's your own fault when stuff breaks :)
+ [[ -n ${USE_CRAZY_OPTS} ]] && 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
+ emake CC="$(tc-getCC)" LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" \
+ CFLAGS="-Wno-sign-compare" || die "Failed to compile"
+ else
+ linux-mod_src_compile
+ fi
+}
+
+src_install() {
+ cd "${WORKDIR}"/${NV_PACKAGE}
+
+ if ! use x86-fbsd; 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" ] || die "nvidia missing in FILESDIR"
+ sed -e 's:PACKAGE:'${PF}':g' \
+ -e 's:VIDEOGID:'${VIDEOGROUP}':' "${FILESDIR}"/nvidia > \
+ "${WORKDIR}"/nvidia
+ insinto /etc/modprobe.d
+ doins "${WORKDIR}"/nvidia || die
+ else
+ insinto /boot/modules
+ doins "${WORKDIR}/${NV_PACKAGE}/src/nvidia.kld" || die
+
+ exeinto /boot/modules
+ doexe "${WORKDIR}/${NV_PACKAGE}/src/nvidia.ko" || 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
+ 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
+
+ # Documentation
+ dodoc "${NV_DOC}"/{XF86Config.sample,README}
+ dohtml "${NV_DOC}"/html/*
+ if ! use x86-fbsd; then
+ dodoc "${NV_DOC}"/NVIDIA_Changelog
+ fi
+
+ # Helper Apps
+ dobin "${NV_EXEC}"/nvidia-bug-report.sh || die
+}
+
+# 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
+ 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 drvdir=${libdir}/modules/drivers
+ local extdir=${libdir}/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
+ # Install the .la file for libtool, to prevent e.g. bug #176423
+ [ -f "${FILESDIR}/libGL.la-r2" ] || die "libGL.la-r2 missing in FILESDIR"
+ 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 ${libdir}/modules/libnvidia-wfb.so.${sover} ]] && \
+ newexe ${libdir}/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() {
+ # 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 "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
+}
+
+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
+
+ if use x86 ; then
+ case ${CHOST/-*} in
+ i486|i586|i686) ;;
+ *) return 1 ;;
+ esac
+ fi
+
+ # If we've got nptl, we've got tls
+ built_with_use --missing true 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 kernel_linux; then
+ linux-mod_pkg_postrm
+ fi
+ eselect opengl set --use-old xorg-x11
+}