nvidia-drivers-340.17 added

This commit is contained in:
Kolan Sh 2014-06-10 11:13:08 +04:00
parent b828febdeb
commit b5effd0bce
2 changed files with 482 additions and 0 deletions

View File

@ -6,6 +6,7 @@ DIST NVIDIA-FreeBSD-x86-331.79.tar.gz 55893626 SHA256 fe74b414eb5d5d6675cc28fe58
DIST NVIDIA-FreeBSD-x86-334.16.tar.gz 56706965 SHA256 e2056730b3a2c3103e947f3a3008ea412dbdb504f2cebe167acb292741205942 SHA512 6719ce27fc96be114e12c96b672184f3dd1e115eca997d026a73d73d3d4a87d137e08ab3c667335c8add2305345a9326aa1401ab7b008fbd1b785153f20419e3 WHIRLPOOL 60accbe2ab9ddb082077b388fd8a29f0be997bb24fdf2d29559021d25feeae764d6f12702327e34285b606d13f2730ed1dc09a3e22e7761aa08cf130ac7c78df
DIST NVIDIA-FreeBSD-x86-334.21.tar.gz 56975582 SHA256 ddce7f8e23dd4070c53c7239ce1436c07e28a8bc9679fafba6748038767e8648 SHA512 9e421cac504f075bb80501e7815ada27182c66e6bc22324595da1824b49c00fc8b005028bd9f5d0428f0d9ee04af82e1c90bf1f6b77cf0d60b90dbac963c544b WHIRLPOOL 1ba6573f67be85efdc656063aab8d5cc9a51eb455946dcfdea1b368879d6279de214c7554359bfa2252925f338d597ac5178593f50cc073bb66bf952beffce5f
DIST NVIDIA-FreeBSD-x86-337.12.tar.gz 58111807 SHA256 e5156f1dc9e5bc35d76792154ae2e43d82f465d104398574bd7702ac4916e4ed SHA512 13ab2406207f983308279cc182f017ace23af0c070d8efcbe4319e174c6e60a6c9b76adc4ef20e80a5848634bc90859fe72318bea3255fe13b7839aef646e075 WHIRLPOOL 77246ab2fa8caf29efd29d8b2ec70647a5a5e15980fa76ed3f85df389726d8343b97efdb71f86bd9e0d7154256afc9b706d159f36ec14cf6f0c2709679272928
DIST NVIDIA-FreeBSD-x86-340.17.tar.gz 58965926 SHA256 9f404d61cafc77b81a3f6334c11fe6cddde71a2d2d4a762482f467f727ea57ae SHA512 96fae45d08b99fc5cda76be40438d3f7d4146cd8bcd2ff18d663ea59bea8b95a04471a5eb998ebea276e6b1d97508121b85b5bd7d43bcdd1215a21fad03360e9 WHIRLPOOL 1a070c5b85c305759531acb3209d669c2560dc6ffc302e183c1724cd01c933505b329ee01cf66c94e0ef2cec09fe051c5afd7b4a345f398d4a1768db9175c636
DIST NVIDIA-FreeBSD-x86_64-325.15.tar.gz 34590166 SHA256 92429119ca8e50baa06c6681ed2b9eb6c37cdf256a19ba4e1827be4b202a0569 SHA512 c9e4d41a5dcb02a280fb323fd4578bc7851d4242890f1d8e69a59e083a2a76cccdaba3ed55f8eb8f983e9c89326f0a9d7152bd7770230fbe45fc7b5865c486b6 WHIRLPOOL c54638af7fb6aaf63222ea75cc377e5e449dfaa80dd47a23aed2eec8da1c460c9e3c24627a2853287585a65b0f562e3efc7916fe985a4816d82aebc12bf7021b
DIST NVIDIA-FreeBSD-x86_64-331.13.tar.gz 46552607 SHA256 3f42aaf4b35bb04dedd4f9511e36bb473ae4174c7609ea100396d16ec532a17f SHA512 7daae19273f31a7802852dd4fa7726a1b6c828e0c868f7fa918f5c6378b1152223638d7556a7c4f02246bb1e0ed2d32d9118c67c9b651f2d792ccc796b09bbbd WHIRLPOOL aec73e407be9280fa160fcfac4b7652f7f21f684c1442c106eedc8b82c2f99a0c5a3b4ee82f3c41244d22f819e96b9752f4989ec37ed0e975a3c8fe724236c86
DIST NVIDIA-FreeBSD-x86_64-331.17.tar.gz 46516620 SHA256 4347179b55c6e9e2c0fbaa9fb8e87e316243eb8680d4182802326c1da01e7074 SHA512 7dbb5103924547bafb06a6b848c70e496570d34b583fc9f1d9e83697d0965c70495cf6942eebd612056e2c27e5db7595b6bd8c133a7fc00b1a94943092250bda WHIRLPOOL bad04990cee9df2a609495235c7ebc6260264535f95e0764e73cbb484b6f1ba86a46043dd7e8f3046ad2bf71c41fe2edd410f142bc4baa2304d96a7d7790c31d
@ -14,6 +15,7 @@ DIST NVIDIA-FreeBSD-x86_64-331.79.tar.gz 47007716 SHA256 2a6ce8fac79f6ce27edefd7
DIST NVIDIA-FreeBSD-x86_64-334.16.tar.gz 57457834 SHA256 3dfcbc7f4bb78d688a48b19df2f561f186c9e251bc0fbe353bbc002977cd751b SHA512 61821248b9f1f7e6c82fd667c9158dc422759ca35db3b6756fa1c65d619e36d9f8b2d11637d88fb1e2f8c97e6b1b01ccc751b5f5be1f217e2c2524d328a8fd64 WHIRLPOOL 8714c81a6b9315ac2d689fc809afec77bb340e019a164d807da3c9857b64f2700f76513adcdb8fe300a61f5e8adb1bb7a54115a853b12a95010c40fec9e7720f
DIST NVIDIA-FreeBSD-x86_64-334.21.tar.gz 57725419 SHA256 5f6c34f6cce4190631b9ffa64006b611c92c8e6af8f016f8c541561d50c0f5d0 SHA512 0a2dc4150b0fd2798438cf68205497c12c5019daca1dc1b3d0f29483220c5db4a5837547ce909f2248770fed8061ef32ace710c9cc5866a0d300bee2c9c2681d WHIRLPOOL 54b0f15bc53dee73a3d6d11eee6f780aa1880c3bacfb45ea75187388411669349a2928ef28d2113b74f87fc9ad825b2e5f5413c2a0a110eaa3e6c9e9a6e67ae0
DIST NVIDIA-FreeBSD-x86_64-337.12.tar.gz 58922101 SHA256 45baa872f7520b80110ea6d5196e8ed22c212473754ece03d1dd6be3033f5d33 SHA512 3e4f1cc1ef7c542498f807133e399d4741bcf151a257eb7c767a3ed316157633f60bbc5b130aa39c14c42acfb823f6b6e37dbd94c5752639e5090fc6eb87a406 WHIRLPOOL 780a7f4e8881bba5e7b9251e6effab7a9194c053fe428f1d053b1ba9ad8006187d2e87171eb2f9d52dc421ca0910e137685f1281827c72259eb0f8f35c83cb83
DIST NVIDIA-FreeBSD-x86_64-340.17.tar.gz 59755101 SHA256 76a798eb65fef7006819e3839b71e05070f72064e179a856a0289adb8f2b0529 SHA512 596f4f1bcc3b41950c22b117411c1fcc124769e0fe945e558f5f9ae4f2369cf901490d9518e56adf0b01f0eb0b59409a584beaac08dc4779509a3428cfd22c27 WHIRLPOOL 2556c55607cec051998b275f6d5101246343a38c71bf2af73b3f488af4f2ecf00083d5858ac1d950865f6132e6dbda5aaca6f1a4c403282351a83d4519cab7df
DIST NVIDIA-Linux-x86-325.15.run 27409286 SHA256 3d790e4bfed24641f7cc76879144ab5d52b12271012ba381b0d33aa1a2e08775 SHA512 48052c3daa8748a7c43de1c24e00fdd3f94cebbe7f5efbb185a0472a1d0bbab8adfe377359ccdc6cd8e437a80506fdd551408237b0842c194a3497c43cf3487e WHIRLPOOL 387fb8af1a31cc295abe7b15fee7d5bc01c515603b178abe7f50864dbbf0685ca50f88e67359adc4af8e90caaeb1fba95aa6af9f54e6fced46c82c5cfc094390
DIST NVIDIA-Linux-x86-331.13.run 36834516 SHA256 36d5402d9cca8eb24261e1141ecc67040a4120f5a9391de0481c68e9de9009be SHA512 97603a193e63dd747a38751e79dfb97425af2c9332d2a40bd0083ad82b35e003e602ba029d5c7b0683bbc4644af19e133214c72e72af0f23bf55976e61637151 WHIRLPOOL d7e18bf5f3725973b48dc57e6137c91c31c2654b90c28f8606ca193d40d970f61a2ec089bacee282753bc51673390c38b8704a9693d36c30a09cc5de7a0fbfa5
DIST NVIDIA-Linux-x86-331.17.run 36866490 SHA256 5c2edd5991964430f5ed16b6fee8d54a164eb3beb8eee4f7b8bb7f68baa4cc88 SHA512 acd2b5e5648c8f534b1eedc95302a0869a9786a79eed1d5312b817520782c46cd3075d2dba562dd111d34267cf22e5f8da94ac353e72c00c8a71a1d36b97db55 WHIRLPOOL 0c2fa3f399c9f28ee5b4516c230b948a1d54b61e4f853fd1a2cfc149c5748621c5ea2f0037a0b3dc87bd2e78a168c9ce5d710ecdaf8a67e38957963b6f224e4b
@ -22,6 +24,7 @@ DIST NVIDIA-Linux-x86-331.79.run 37031391 SHA256 344d3daaec8010ffe53fd132f706d87
DIST NVIDIA-Linux-x86-334.16.run 37562951 SHA256 e8e928d395d9e42978c549342241373a7376ee9ed679f379c33feee873a13fd2 SHA512 f94eeaab0a01b97126dc700b7f53e4366c34f18a9a477da2afcc868025bfc30d853fe9fcc3766d0fe5c13129711e2a914aed1cd506e46986b009b6a35296e9c3 WHIRLPOOL 012b831ad563b3df2fa69031e5c67f3c68d7e2eebef763a0fd591199f3d222820222e130b78b2ae6239b36b64a2f682c6f1e2f6ebfc952adea1fd7700ecafe89
DIST NVIDIA-Linux-x86-334.21.run 37740148 SHA256 ece6ac1d66b0de53b6db0ae92f72112f734c9ec4b7f1ffb1ec508d32f700df39 SHA512 b52a9f08fb91ef915c3c7ce2aa34ecdd93a5fd8731d7f4b9cb887289f931a4dc5e82afa259bc985be55964a8c788550683ef61306bed9a32a5614dcb2d64373d WHIRLPOOL 547862c1ef1b1f3c0684af38ddef9ecd37776e820a7d5c2a7e2ae2e71a5c7956fb1b5c87b78f60e0ce52b7bb7f37efdc27ee4f62a1d42699f48a69521ee42056
DIST NVIDIA-Linux-x86-337.12.run 37923578 SHA256 4780c4344e1dd77fbbc369fae818f8eaf4a32e5de152b810f2d6e9371b606eb9 SHA512 2ec35db2d66828093bbdd4458ebe441a6ef00cbc04b8c65f8e3a9be8830b7118d34654dff18f87c14bb941e2b43091a680f8d9f1681aed2b8bb0189531d016be WHIRLPOOL d9f828e8a2f5844f7889d6e95ec5f54a13b03f4676f2da39ff82342c8c08c10936062342baf7d0444881806c533e52481db28316d2914f1e0ecc4065b093557f
DIST NVIDIA-Linux-x86-340.17.run 38525211 SHA256 65118ee762114f47b94feb896461dc4f2f4ab31025c894a090c821ed4fa315af SHA512 a0e82659497b8d5adcf8f2b39cc13c19b7039f8b885b7b8d0b40a487946c94d66cb954d630b9f334195b07dd58cf24f7b3f530364a9004f8fd44ed05a5af885e WHIRLPOOL 75cb69963b2156ba15ec93c089b717c8cc0b4b0525beed39f0c3ed3f9baa1668972dd2a846982bc2b15e2124606978bb712de2cd4c701a1daa0e7434e7849299
DIST NVIDIA-Linux-x86_64-325.15.run 48034648 SHA256 01446fbd94f6eb3b2e1b3d3f2b06970bf470c3ee2cb1838b3d0c2416e6c74500 SHA512 323cbd8e6f3ce29a1556b83b2fb3456f919964ede1cbee4ddaa3539ab75eda7abe26b96ba500462eed2ade4163b8de20d1db6ea987af923710f0e1a60e432e83 WHIRLPOOL 7c05717a2cfcb003a8c1f9fc5f5e24cfd5216aca7167ee8f29b60c43262fc61afab9619147ee07cb2541aa1d55b13a730b52c90979b7970df709fb659fe782ff
DIST NVIDIA-Linux-x86_64-331.13.run 59835902 SHA256 571741b8ea153281916382d287849f99a9fa65b911aa54d678b48ef0091cc0cd SHA512 5c7c6a23a691b67ad5943c36829b9e4f0c5103f4e3d3b28fbdfd9ee9cd697bb69a7474239313feb67ff9e0499749b49aa6ee33aaf59c1f14c14bd14ea5b25d62 WHIRLPOOL 5587c94c050134d13076955c3bdd7e33aca86f61befa3b70522338bcd535bcd1902140b2564fecdff1dda4fce025a028bf6698c025c80939fe84970c507ed00d
DIST NVIDIA-Linux-x86_64-331.17.run 59878816 SHA256 22968b7bd6460456e99edcad18ec237ebe66fd19e349c9ec9c3d5a16c074eab4 SHA512 9d0f0c860622167ec5804eb4c8d8e58835ca6d4d0c8818824a66fd774f577f6c149612ab67a1f12e67b2a444c716d2254b6dfc91d53badb4233c0db3b2365f29 WHIRLPOOL a89fa9407b7cf92bc28a985112db2f268947f4032933163dfb78e0d9dc1cd955376a4ed2b041ddc681f488596e6d19e564436a7d89727bb5ac2285eede008298
@ -30,3 +33,4 @@ DIST NVIDIA-Linux-x86_64-331.79.run 60383762 SHA256 c3314bd7f1f722929a2b401e1230
DIST NVIDIA-Linux-x86_64-334.16.run 67546019 SHA256 59a930f7ed6391a1e57b9fc7683420facd1c4548757d4120b1c594479af759f7 SHA512 a864693d7e95f602a1ee3557b5e0666d792d7ea8a22195ff06733cab1162b63daf761d162168e740ff3cae97371121f66f8b570ecc97081809c84d0be0309a34 WHIRLPOOL 001789f06ab96102c0ecc713e5542542148b2da033093cfa14192fe05ad0a53443df8b723731439e815b988429bf00cacd52834cd9ac808f2ba3159252a0cdcb
DIST NVIDIA-Linux-x86_64-334.21.run 67906887 SHA256 dd35011967b815e096c267f80b36664e34d779bc33017f396dabbd1a1b86d057 SHA512 254500cbb83420df26c860df13a448aece837096db8374c41cc0a979c0102b848b5a6ad463e2daf4dc34ae5fcedf7921767e7bd7d86a97ceff4c683b7ee1c886 WHIRLPOOL c525946dc40b03ee5b395535ee278e09ecc400b833bd501a14ee0672ddfb61e1f3dfda305e9c1bdf70344dc34b6aeadfa68a636afba0a80e33a1da808c8f17b4
DIST NVIDIA-Linux-x86_64-337.12.run 68367946 SHA256 8fa588e0491e652a1cfd45aa01be9336c9b5bb5dd54bf45801a40d53d957e4b4 SHA512 56de594b902c81abcaa69e556ec7895f2446178621304dbe2861c055afd8f815a288acf1ba31c6079bfe324d3ad46a64b47a820c844e06911a4e33cf86009a83 WHIRLPOOL b1b6012d10dea80c69ededb1774c5b65d81763f5aacd4304d1f315f41795d3aea19fa00667da1fa25b7225952e94198633764701ad3355cc57bfbf7ec5fd85c6
DIST NVIDIA-Linux-x86_64-340.17.run 69668217 SHA256 b3311d4bc82dd1c58805f2ac29d20711f2b0c0978407bba138d603606e603662 SHA512 82bc5a7961f4bb96f55811bb550c1ad3a2544b63160c3dde9d4864dd3efe7aa95a15c0722ce759f6dc223298a38f2577ec36b651c5faa00e8a9360c30e92813d WHIRLPOOL 21e7c474c457d16b99fa0081a3b0498161a7d19dfef2918a127f49e0b4528d1ff86222deb099a486523fbf48408f34f600bf50132ac39eb62222d65535d4fa51

View File

@ -0,0 +1,478 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-340.17.ebuild,v 1.2 2014/06/09 15:16:40 jer Exp $
EAPI=5
inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
portability toolchain-funcs unpacker user udev
NV_URI="http://us.download.nvidia.com/XFree86/"
X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
DESCRIPTION="NVIDIA Accelerated Graphics Driver"
HOMEPAGE="http://www.nvidia.com/"
SRC_URI="
amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
"
LICENSE="GPL-2 NVIDIA-r2"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel +tools +X uvm"
RESTRICT="bindist mirror strip"
EMULTILIB_PKG="true"
COMMON="
app-admin/eselect-opencl
kernel_linux? ( >=sys-libs/glibc-2.6.1 )
X? (
>=app-admin/eselect-opengl-1.0.9
)
"
DEPEND="
${COMMON}
app-arch/xz-utils
kernel_linux? ( virtual/linux-sources )
"
RDEPEND="
${COMMON}
acpi? ( sys-power/acpid )
tools? (
dev-libs/atk
dev-libs/glib
x11-libs/gdk-pixbuf
>=x11-libs/gtk+-2.4:2
x11-libs/libX11
x11-libs/libXext
x11-libs/pango[X]
)
X? (
<x11-base/xorg-server-1.16.99
>=x11-libs/libvdpau-0.3-r1
multilib? (
|| (
(
x11-libs/libX11[abi_x86_32]
x11-libs/libXext[abi_x86_32]
)
app-emulation/emul-linux-x86-xlibs
)
)
)
"
REQUIRED_USE="tools? ( X )"
QA_PREBUILT="opt/* usr/lib*"
S=${WORKDIR}/
pkg_pretend() {
if use amd64 && has_multilib_profile && \
[ "${DEFAULT_ABI}" != "amd64" ]; then
eerror "This ebuild doesn't currently support changing your default ABI"
die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
fi
if use kernel_linux && kernel_is ge 3 16 ; then
ewarn "Gentoo supports kernels which are supported by NVIDIA"
ewarn "which are limited to the following kernels:"
ewarn "<sys-kernel/gentoo-sources-3.16"
ewarn "<sys-kernel/vanilla-sources-3.16"
ewarn ""
ewarn "You are free to utilize epatch_user to provide whatever"
ewarn "support you feel is appropriate, but will not receive"
ewarn "support as a result of those changes."
ewarn ""
ewarn "Do not file a bug report about this."
fi
# 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
# Kernel features/options to check for
CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
use x86 && CONFIG_CHECK+=" ~HIGHMEM"
# Now do the above checks
use kernel_linux && check_extra_config
}
pkg_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 kernel_linux; then
MODULE_NAMES="nvidia(video:${S}/kernel)"
use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel/uvm)"
# This needs to run after MODULE_NAMES (so that the eclass checks
# whether the kernel supports loadable modules) but before BUILD_PARAMS
# is set (so that KV_DIR is populated).
linux-mod_pkg_setup
BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
# linux-mod_src_compile calls set_arch_to_kernel, which
# sets the ARCH to x86 but NVIDIA's wrapping Makefile
# expects x86_64 or i386 and then converts it to x86
# later on in the build process
BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
fi
# set variables to where files are in the package structure
if use kernel_FreeBSD; then
use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
NV_DOC="${S}/doc"
NV_OBJ="${S}/obj"
NV_SRC="${S}/src"
NV_MAN="${S}/x11/man"
NV_X11="${S}/obj"
NV_SOVER=1
elif use kernel_linux; then
NV_DOC="${S}"
NV_OBJ="${S}"
NV_SRC="${S}/kernel"
NV_MAN="${S}"
NV_X11="${S}"
NV_SOVER=${PV}
else
die "Could not determine proper NVIDIA package"
fi
}
src_prepare() {
# Please add a brief description for every added patch
if use kernel_linux; then
if kernel_is lt 2 6 9 ; then
eerror "You must build this against 2.6.9 or higher kernels."
fi
# If greater than 2.6.5 use M= instead of SUBDIR=
# convert_to_m "${NV_SRC}"/Makefile.kbuild
fi
if use pax_kernel; then
ewarn "Using PAX patches is not supported. You will be asked to"
ewarn "use a standard kernel should you have issues. Should you"
ewarn "need support with these patches, contact the PaX team."
epatch "${FILESDIR}"/${PN}-331.13-pax-usercopy.patch
fi
# Allow user patches so they can support RC kernels and whatever else
epatch_user
}
src_compile() {
# This is already the default on Linux, as there's no toplevel Makefile, but
# on FreeBSD there's one and triggers the kernel module build, as we install
# it by itself, pass this.
cd "${NV_SRC}"
if use kernel_FreeBSD; then
MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
elif use kernel_linux; then
use uvm && MAKEOPTS=-j1
linux-mod_src_compile
fi
}
# Install nvidia library:
# the first parameter is the library to install
# the second parameter is the provided soversion
# the third parameter is the target directory if its not /usr/lib
donvidia() {
# Full path to library minus SOVER
MY_LIB="$1"
# SOVER to use
MY_SOVER="$2"
# Where to install
MY_DEST="$3"
if [[ -z "${MY_DEST}" ]]; then
MY_DEST="/usr/$(get_libdir)"
action="dolib.so"
else
exeinto ${MY_DEST}
action="doexe"
fi
# Get just the library name
libname=$(basename $1)
# Install the library with the correct SOVER
${action} ${MY_LIB}.${MY_SOVER} || \
die "failed to install ${libname}"
# If SOVER wasn't 1, then we need to create a .1 symlink
if [[ "${MY_SOVER}" != "1" ]]; then
dosym ${libname}.${MY_SOVER} \
${MY_DEST}/${libname}.1 || \
die "failed to create ${libname} symlink"
fi
# Always create the symlink from the raw lib to the .1
dosym ${libname}.1 \
${MY_DEST}/${libname} || \
die "failed to create ${libname} symlink"
}
src_install() {
if use kernel_linux; then
linux-mod_src_install
# Add the aliases
# This file is tweaked with the appropriate video group in
# pkg_preinst, see bug #491414
insinto /etc/modprobe.d
newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
# Ensures that our device nodes are created when not using X
exeinto "$(udev_get_udevdir)"
doexe "${FILESDIR}"/nvidia-udev.sh
udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
elif use kernel_FreeBSD; then
if use x86-fbsd; then
insinto /boot/modules
doins "${S}/src/nvidia.kld"
fi
exeinto /boot/modules
doexe "${S}/src/nvidia.ko"
fi
# NVIDIA kernel <-> userspace driver config lib
donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
# NVIDIA framebuffer capture library
donvidia ${NV_OBJ}/libnvidia-fbc.so ${NV_SOVER}
# NVIDIA video encode/decode <-> CUDA
if use kernel_linux; then
donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
fi
if use X; then
# Xorg DDX driver
insinto /usr/$(get_libdir)/xorg/modules/drivers
doins ${NV_X11}/nvidia_drv.so
# Xorg GLX driver
donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
/usr/$(get_libdir)/opengl/nvidia/extensions
fi
# OpenCL ICD for NVIDIA
if use kernel_linux; then
insinto /etc/OpenCL/vendors
doins ${NV_OBJ}/nvidia.icd
fi
# Documentation
dohtml ${NV_DOC}/html/*
if use kernel_FreeBSD; then
dodoc "${NV_DOC}/README"
use X && doman "${NV_MAN}/nvidia-xconfig.1"
use tools && doman "${NV_MAN}/nvidia-settings.1"
else
# Docs
newdoc "${NV_DOC}/README.txt" README
dodoc "${NV_DOC}/NVIDIA_Changelog"
doman "${NV_MAN}/nvidia-smi.1.gz"
use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
fi
# Helper Apps
exeinto /opt/bin/
if use X; then
doexe ${NV_OBJ}/nvidia-xconfig
fi
if use kernel_linux ; then
doexe ${NV_OBJ}/nvidia-cuda-mps-control
doexe ${NV_OBJ}/nvidia-cuda-mps-server
doexe ${NV_OBJ}/nvidia-debugdump
doexe ${NV_OBJ}/nvidia-persistenced
doexe ${NV_OBJ}/nvidia-smi
# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
doexe ${NV_OBJ}/nvidia-modprobe
fowners root:video /opt/bin/nvidia-modprobe
fperms 4710 /opt/bin/nvidia-modprobe
dosym /{opt,usr}/bin/nvidia-modprobe
doman nvidia-cuda-mps-control.1.gz
doman nvidia-modprobe.1.gz
doman nvidia-persistenced.1.gz
newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
fi
if use tools; then
doexe ${NV_OBJ}/nvidia-settings
fi
exeinto /usr/bin/
doexe ${NV_OBJ}/nvidia-bug-report.sh
# Desktop entries for nvidia-settings
if use tools ; then
# There is no icon in the FreeBSD tarball.
use kernel_FreeBSD || newicon ${NV_OBJ}/nvidia-settings.png ${PN}-settings.png
domenu "${FILESDIR}"/${PN}-settings.desktop
exeinto /etc/X11/xinit/xinitrc.d
doexe "${FILESDIR}"/95-nvidia-settings
fi
#doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
if has_multilib_profile && use multilib ; then
local OABI=${ABI}
for ABI in $(get_install_abis) ; do
src_install-libs
done
ABI=${OABI}
unset OABI
else
src_install-libs
fi
is_final_abi || die "failed to iterate through all ABIs"
readme.gentoo_create_doc
}
src_install-libs() {
local inslibdir=$(get_libdir)
local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
local libdir=${NV_OBJ}
if use kernel_linux && has_multilib_profile && \
[[ ${ABI} == "x86" ]] ; then
libdir=${NV_OBJ}/32
fi
if use X; then
# The GLX libraries
donvidia ${libdir}/libEGL.so ${NV_SOVER} ${GL_ROOT}
donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
donvidia ${libdir}/libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}
donvidia ${libdir}/libnvidia-eglcore.so ${NV_SOVER}
donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
donvidia ${libdir}/libnvidia-glsi.so ${NV_SOVER}
donvidia ${libdir}/libnvidia-ifr.so ${NV_SOVER}
if use kernel_FreeBSD; then
donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
else
donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
fi
# VDPAU
donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
# GLES v2 libraries
insinto ${GL_ROOT}
doexe ${libdir}/libGLESv2.so.${PV}
dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
fi
# NVIDIA monitoring library
if use kernel_linux ; then
donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
fi
# CUDA & OpenCL
if use kernel_linux; then
donvidia ${libdir}/libcuda.so ${NV_SOVER}
donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
fi
}
pkg_preinst() {
if use kernel_linux; then
linux-mod_pkg_preinst
local videogroup="$(egetent group video | cut -d ':' -f 3)"
if [ -z "${videogroup}" ]; then
eerror "Failed to determine the video group gid"
die "Failed to determine the video group gid"
else
sed -i \
-e "s:PACKAGE:${PF}:g" \
-e "s:VIDEOGID:${videogroup}:" \
"${D}"/etc/modprobe.d/nvidia.conf || die
fi
fi
# Clean the dynamic libGL stuff's home to ensure
# we dont have stale libs floating around
if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
fi
# Make sure we nuke the old nvidia-glx's env.d file
if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
rm -f "${ROOT}"/etc/env.d/09nvidia
fi
}
pkg_postinst() {
use kernel_linux && linux-mod_pkg_postinst
# Switch to the nvidia implementation
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
readme.gentoo_print_elog
if ! use X; then
elog "You have elected to not install the X.org driver. Along with"
elog "this the OpenGL libraries and VDPAU libraries were not"
elog "installed. Additionally, once the driver is loaded your card"
elog "and fan will run at max speed which may not be desirable."
elog "Use the 'nvidia-smi' init script to have your card and fan"
elog "speed scale appropriately."
elog
fi
if ! use tools; then
elog "USE=tools controls whether the nvidia-settings application"
elog "is installed. If you would like to use it, enable that"
elog "flag and re-emerge this ebuild. Optionally you can install"
elog "media-video/nvidia-settings"
elog
fi
}
pkg_prerm() {
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
}
pkg_postrm() {
use kernel_linux && linux-mod_pkg_postrm
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
}