From 891017619a5b8d24e9505b2bb6d426e923238be0 Mon Sep 17 00:00:00 2001 From: Doug Goldstein Date: Tue, 4 Oct 2011 15:04:55 +0000 Subject: [PATCH] Version bump Package-Manager: portage-2.1.10.20/cvs/Linux x86_64 --- x11-drivers/nvidia-drivers/ChangeLog | 8 +- x11-drivers/nvidia-drivers/Manifest | 18 +- .../nvidia-drivers-285.05.09.ebuild | 542 ++++++++++++++++++ 3 files changed, 554 insertions(+), 14 deletions(-) create mode 100644 x11-drivers/nvidia-drivers/nvidia-drivers-285.05.09.ebuild diff --git a/x11-drivers/nvidia-drivers/ChangeLog b/x11-drivers/nvidia-drivers/ChangeLog index f34be1b55918..b51533167848 100644 --- a/x11-drivers/nvidia-drivers/ChangeLog +++ b/x11-drivers/nvidia-drivers/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for x11-drivers/nvidia-drivers # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.300 2011/09/18 21:47:55 maekke Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.301 2011/10/04 15:04:55 cardoe Exp $ + +*nvidia-drivers-285.05.09 (04 Oct 2011) + + 04 Oct 2011; Doug Goldstein + +nvidia-drivers-285.05.09.ebuild: + Version bump 18 Sep 2011; Markus Meier nvidia-drivers-275.09.07.ebuild: diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest index 7c72818c2feb..b5d9e58bcf57 100644 --- a/x11-drivers/nvidia-drivers/Manifest +++ b/x11-drivers/nvidia-drivers/Manifest @@ -1,6 +1,3 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA256 - AUX 09nvidia 61 RMD160 b69c3282ba6195112e312fe34bdcb12544aef8ca SHA1 05dd043f66f53409dfe511636d92a339edb4c765 SHA256 14702d6726cc9f0ad832a3cc90059999eb956f9e3a35397cb63cfa6347b33e39 AUX 195.30-unified-arch.patch 1525 RMD160 9872c270b4bb3d3010af3f2b83798631562c8d8f SHA1 06330376e9a25e3317a4bfe12f74af17e56f3448 SHA256 b6224e213820c698315a8645204d992b779f31e8c45c025e740bc189dc1f9bae AUX 256.35-unified-arch.patch 1380 RMD160 2612cad105f442d4232b99e3054124e8037860bb SHA1 d82433c0b3520c87e05f1013a59b243ec65ebe97 SHA256 5e84bb51e0f9b3ceba270d53ad2a739dc534861df9acd6ab6852670f5a1357d7 @@ -23,6 +20,7 @@ DIST NVIDIA-FreeBSD-x86-275.09.07.tar.gz 30304023 RMD160 aaa3ad3339fa1450612d8f7 DIST NVIDIA-FreeBSD-x86-275.28.tar.gz 30478616 RMD160 123a2e8cb3b783ddd6fa055d04e9a791ca90c165 SHA1 141ea0ad39c7d1ed8f768b270015c9e20cb092ee SHA256 5c11f7c1792476e8ac9b2e3a6f0bac4b9eff206972f0f4c1566fbcc4c7da918e DIST NVIDIA-FreeBSD-x86-280.13.tar.gz 29589886 RMD160 b5bc807f719835fff32d0795e5170835a88559fa SHA1 fb09c63d4ad9acd51d9c1a46e422463290323088 SHA256 2ad1882467a2d8a0b65dfa15e710e4938786e51f688e1d02d4d3343868b9239e DIST NVIDIA-FreeBSD-x86-285.03.tar.gz 30736992 RMD160 96e35fb251a65b27d8aa358bdc9d814e8fd90f72 SHA1 cfc4ce1b864580dc7221a479ba48fb798af4551d SHA256 872de331825e8d0326785a5559e49cd34b5c902be8a2f43cc4c342511807e30b +DIST NVIDIA-FreeBSD-x86-285.05.09.tar.gz 30697710 RMD160 e08981374a67a8e9e9bff42d5cbb5f5ecef0568c SHA1 d3e4cb6cac7af0392d0f294cf67b029456a48100 SHA256 d3ad51145cd57c70678ee659112a0973187b1b02e3062addadd0fe094b3c46fb DIST NVIDIA-FreeBSD-x86-96.43.19.tar.gz 13352481 RMD160 376311eb6708f4b7f20b6326bb88d9a33e7b3d37 SHA1 72555f3da8a796e491eaa67192334ccefcdd2256 SHA256 b5dce181cc654a729ba06dd528a180d14a792b0328fcfbf86bb0f819285c0dd5 DIST NVIDIA-FreeBSD-x86-96.43.20.tar.gz 14060884 RMD160 2323ef0e85c4383558ea61ff4906b28f85a5952c SHA1 1d7397eaf1e42866595144af550a1df84369fd80 SHA256 e75fce272e72644d53e6ad3c0957fe173735a4b621726ce227ba8ecf9bd9c5cf DIST NVIDIA-Linux-x86-173.14.30-pkg0.run 13407793 RMD160 8c0acf5738db9aeac079a128083437aec859878b SHA1 924a04cdcc30df27dca59f7fd20bfc371622c49b SHA256 ecb2ff94ca1b2a7498bc1fc37383194cfafa4198644308428ad7c09f2273f554 @@ -32,6 +30,7 @@ DIST NVIDIA-Linux-x86-275.09.07.run 30930605 RMD160 3543dd353b488f501899ce37ea03 DIST NVIDIA-Linux-x86-275.28.run 31102995 RMD160 d70becaa6fe2b58948519fc65c890edaa4559a70 SHA1 d747febac267a7dd39832af3dc579209626b9a74 SHA256 ba4ff7a7a3a5d4242621f9a104f64d4ab573619fcad7adf4657f82ab417553ea DIST NVIDIA-Linux-x86-280.13.run 32704856 RMD160 2b438729856e847ef3cca68fc682490b362918b7 SHA1 27d4228da677576b7c2b178cb0a3ce540444e6a2 SHA256 b222afe19c6310f1aa2a2574f27fa9e2b877738177daa60162bb5705758bac9b DIST NVIDIA-Linux-x86-285.03.run 33556616 RMD160 0b44943a1eea4c44ccf252ad92814665355deb95 SHA1 2487321c609679980bd63ce91a058d29d7175c9b SHA256 4cdc31f0edfa3e8cc67fb3d0388d908fb22f9505a1066ce1be79820cbc93b4f8 +DIST NVIDIA-Linux-x86-285.05.09.run 33592492 RMD160 e5fb559c3eb6f928649a94bfd73d80d0b1561dd3 SHA1 e42112d15ba217fc1c16afbae45f0493f795966c SHA256 ce03fa99b62081b52bd5dae3594ac5942413ed530cda3d76a82f4ab0afd36f96 DIST NVIDIA-Linux-x86-96.43.19-pkg0.run 9721273 RMD160 ca40f0572e36479bfdd4d921be45da7055692762 SHA1 dc5f0d5b068756991a7d7e50e17bfcf09684702f SHA256 e25810e809ea56ab33ebb3e79e885eb19784dcce2bb0102c0cb5daa372aaf1c8 DIST NVIDIA-Linux-x86-96.43.20-pkg0.run 10323541 RMD160 8e1a56ea7992018a405214aaa857cd932d7c3274 SHA1 714632bf918eaae50d46e9a4a5252ebbe9e6cfb1 SHA256 bc778062cf745ee4916de77a702f702312d33eeb3b6f379b63e4366fa5197517 DIST NVIDIA-Linux-x86_64-173.14.30-pkg2.run 18967055 RMD160 167137380c8f75530498c00302c80cb15adb4adf SHA1 93f10be314021adebcc5c0e675e0d83653adceb3 SHA256 aebf3655337d813d4a0cd779ac6b1fa5d3fee26b00188bad66914cd3f876a556 @@ -41,6 +40,7 @@ DIST NVIDIA-Linux-x86_64-275.09.07.run 51646025 RMD160 ea9bd2a3e960234a9a9e69a6a DIST NVIDIA-Linux-x86_64-275.28.run 51855215 RMD160 9f4d65c0a88bac60dd2389a53ae95d8b4b9365da SHA1 957a5fd0f4d43ba8cee72d765e9076c43fbc0be1 SHA256 fc1dfded42d21b08f40fa7f50589c6c0c4922cc0d30af71bf721ab8682b00648 DIST NVIDIA-Linux-x86_64-280.13.run 55011572 RMD160 6b0e82f57282ea689895a6a3b0501f847133ed6c SHA1 5f78984dfdbff6573b1c8899e3a8d71e32c33fed SHA256 98a08c7d943912a178a9bbe419db60634088e5262ae9053bf2fe730984e5a012 DIST NVIDIA-Linux-x86_64-285.03.run 56689227 RMD160 d8f387619d70bf9535c87370376622b5bd3fc94e SHA1 f301677f66d7d92d11654c8ec97a3c8d53ae429f SHA256 fc1e895635b9ea7171f4e7c549e6502f3853838cb4cc254a190b004579a1f919 +DIST NVIDIA-Linux-x86_64-285.05.09.run 56674677 RMD160 e178cc5109bbf254c80eb123acd6276bf34d7790 SHA1 26c99d119f39a9201943a4f44cdc110988ec2349 SHA256 7159a1f7e898b50dd49ea2273ac6facb870546ad5496bf70c6fbe1642d2c4970 DIST NVIDIA-Linux-x86_64-96.43.19-pkg2.run 13829870 RMD160 c9b2edd825d30f8deea101d5dfd51f86dbf09ffe SHA1 f3cdb5d95c5bb9057d09331395e72fe8d5006f17 SHA256 81939f9ee45255cc137719a10b8947bc90cf5697da9e27991cee5a7061d5de19 DIST NVIDIA-Linux-x86_64-96.43.20-pkg2.run 14572507 RMD160 51d5838d1c0e63a1abf479d155e4df3a854d98f6 SHA1 b5ab8b3e9f06418720971187d53837db90af5f8a SHA256 562107a262e250b836966e29851628f6162ee2857d53252221c780d9b201de18 EBUILD nvidia-drivers-173.14.30.ebuild 15341 RMD160 d11c47b7571d5e93da0365c064cb1bd399eadc49 SHA1 f92c475e600d7d4e68debe2425cb026b505a7264 SHA256 590f2b2d8fe546c2183704b761becc718ec294e05d6b91db66a89377bf4cf9c3 @@ -50,16 +50,8 @@ EBUILD nvidia-drivers-275.09.07.ebuild 16568 RMD160 376521daaf880dfe86d13dee9cba EBUILD nvidia-drivers-275.28.ebuild 16579 RMD160 1ae3cf165bf7c001e11755ccc778e531474a0b17 SHA1 750dd92aa3017a4937a02624200c217c6c3ff9eb SHA256 22548bb964b0228a15a55df830db881cb53433bb9256851e37618a294bda5ee2 EBUILD nvidia-drivers-280.13.ebuild 16579 RMD160 ee7ef34038363026397a0c620ace83b55ffed947 SHA1 ba5f1b0fc00786c3dbd4f8ea40f68701ca29584f SHA256 e123abdd82fc1a53c46aebadebefc434e8f512e31ca0e54de767cc3b57a888e4 EBUILD nvidia-drivers-285.03.ebuild 16579 RMD160 123352f6192b8f9185c7f384be6ab4b11944b213 SHA1 754480ef2b561489cca44b6567abd375dc1366ff SHA256 2d124468b42edfd08874c07d619fcfd46ff1cccdd23f6234ff8de48eea0578a5 +EBUILD nvidia-drivers-285.05.09.ebuild 16570 RMD160 a697c8e89f89751046a33b93f5a7495ba59f84e0 SHA1 1cbcd0514f8e075de30f1f7a1d6405f6cfbbfa71 SHA256 19fa369bd49b5f96319076e35cb0016715169049bcfa99305f7f29910fed1e29 EBUILD nvidia-drivers-96.43.19.ebuild 15643 RMD160 191d8bc638f28a713ad4aee08808ac9b41fbe6c5 SHA1 9dbee7e6497f06235325ba25cb245ba971a9bd53 SHA256 c05c182e870bd8b0363259edcf08d6c464696fb6221e9aeb4680664d171e1f8e EBUILD nvidia-drivers-96.43.20.ebuild 15584 RMD160 55c9da9be059793df879a2a4e4c376ba03bb6017 SHA1 bfe867ab82cc7e49b62f8db0b2198a0efec99764 SHA256 e63031c05251bb01d0c5adf930a969dfcb1009d3797647156f356b970d0af3c7 -MISC ChangeLog 64562 RMD160 659c10e00feb3c5e9e5f42f294a9dceb8f73ddc5 SHA1 46786f99c7cbf1918cf191d12d0e617b723c7624 SHA256 b2030286d8dba7d3ff52754095870e4ffdec0878c29223a852bbd706afb2e24c +MISC ChangeLog 64705 RMD160 200c929c2e4995f98d922ba88a224f016d3f4d30 SHA1 2935ad7f59ecde6db3b6e5d5511e1ac066af9521 SHA256 7962ce18885001266b938391ac2a8aa8536acd1d57448bf60bfe700bede236a6 MISC metadata.xml 528 RMD160 9724ce985619926e8c0d1a53bccd927ce9bbf9fc SHA1 3ced88c2bfed6fee774fae8ddf3b71ceb8cd0b8e SHA256 3651e308046ad88e101ed9d59fd0cd1adc82bfcc25f4f70738936466174e6264 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.18 (GNU/Linux) - -iJwEAQEIAAYFAk59uOEACgkQfXuS5UK5QB27tgQAjNeB5TnsruOCCjQrGY4hss4V -FAg+WYIHbnqE1+wYgp1BEJBGAFlvh4gBsBE3/K42Isku9dWKhqt2YQ/UC5M6rNxj -KSglzHqBGl1cE+3GylZeKynBG34Gddq7iRMipD/gsuflgF0VHXMPc9hf/J/9Jn3i -P3mT7a3kOfOU96ZQd1g= -=r9Vd ------END PGP SIGNATURE----- diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-285.05.09.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-285.05.09.ebuild new file mode 100644 index 000000000000..74a3ae49bdb7 --- /dev/null +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-285.05.09.ebuild @@ -0,0 +1,542 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-285.05.09.ebuild,v 1.1 2011/10/04 15:04:55 cardoe Exp $ + +EAPI="2" + +inherit eutils multilib versionator linux-mod flag-o-matic nvidia-driver + +X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}" +AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}" +X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}" + +DESCRIPTION="NVIDIA X11 driver and GLX libraries" +HOMEPAGE="http://www.nvidia.com/" +SRC_URI="x86? ( ftp://download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}.run ) + amd64? ( ftp://download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run ) + x86-fbsd? ( ftp://download.nvidia.com/XFree86/FreeBSD-x86/${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="=sys-libs/glibc-2.6.1 ) + multilib? ( app-emulation/emul-linux-x86-xlibs ) + >=app-admin/eselect-opengl-1.0.9 + !" + 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}/kernel)" + BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \ + SYSOUT=${KV_OUT_DIR} 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}" + NV_EXEC="${S}" + NV_LIB="${S}" + NV_SRC="${S}/kernel" + NV_MAN="${S}" + NV_X11="${S}" + NV_X11_DRV="${NV_X11}" + NV_X11_EXT="${NV_X11}" + 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 + cd "${S}" + unpack_makeself + else + unpack ${A} + fi +} + +src_prepare() { + # Please add a brief description for every added patch + use x86-fbsd && cd doc + + if use kernel_linux; then + # Quiet down warnings the user does not need to see + sed -i \ + -e 's:-Wsign-compare::g' \ + "${NV_SRC}"/Makefile.kbuild + + epatch "${FILESDIR}"/256.35-unified-arch.patch + + # 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" + dosym /usr/$(get_libdir)/libnvidia-cfg.so.${NV_SOVER} \ + /usr/$(get_libdir)/libnvidia-cfg.so || \ + die "failed to create libnvidia-cfg.so symlink" + + # NVIDIA monitoring library + dolib.so ${NV_LIB}/libnvidia-ml.so.${NV_SOVER} || \ + die "failed to install libnvidia-ml" + dosym /usr/$(get_libdir)/libnvidia-ml.so.${NV_SOVER} \ + /usr/$(get_libdir)/libnvidia-ml.so || \ + die "failed to create libnvidia-ml.so symlink" + + # NVIDIA video decode <-> CUDA + dolib.so ${NV_LIB}/libnvcuvid.so.${NV_SOVER} || \ + die "failed to install libnvcuvid.so" + dosym /usr/$(get_libdir)/libnvcuvid.so.${NV_SOVER} \ + /usr/$(get_libdir)/libnvcuvid.so || \ + die "failed to create libnvcuvid.so symlink" + + # 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" + + # OpenCL ICD for NVIDIA + if use kernel_linux; then + dodir /etc/OpenCL/vendors + insinto /etc/OpenCL/vendors + doins nvidia.icd + fi + + # Documentation + dohtml ${NV_DOC}/html/* + if use x86-fbsd; then + dodoc "${NV_DOC}/README" + doman "${NV_MAN}/nvidia-xconfig.1" + use gtk && 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" + doman "${NV_MAN}/nvidia-xconfig.1.gz" + use gtk && doman "${NV_MAN}/nvidia-settings.1.gz" + fi + + # Helper Apps + dobin ${NV_EXEC}/nvidia-xconfig || die + if use gtk; then + dobin ${NV_EXEC}/nvidia-settings || die + fi + dobin ${NV_EXEC}/nvidia-bug-report.sh || die + if use kernel_linux; then + dobin ${NV_EXEC}/nvidia-smi || die + fi + + # Desktop entries for nvidia-settings + if use gtk; then + sed -e 's:__UTILS_PATH__:/usr/bin:' \ + -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' \ + -i "${NV_EXEC}/nvidia-settings.desktop" + domenu ${NV_EXEC}/nvidia-settings.desktop + + doicon ${NV_EXEC}/nvidia-settings.png + 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=32 + else + libdir=. + 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 /usr/${inslibdir} ${libdir}/libnvidia-glcore.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 + + # VDPAU + donvidia /usr/${inslibdir} ${libdir}/libvdpau_nvidia.so ${sover} + + # CUDA & OpenCL + if use kernel_linux; then + donvidia /usr/${inslibdir} ${libdir}/libcuda.so ${sover} + donvidia /usr/${inslibdir} ${libdir}/libnvidia-compiler.so ${sover} + donvidia /usr/${inslibdir} ${libdir}/libOpenCL.so 1.0.0 + 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." + elog + + if ! use gtk; then + elog "USE=gtk 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. media-video/nvidia-settings" + elog "no longer installs nvidia-settings but only installs the" + elog "associated user space libraries." + fi +} + +pkg_postrm() { + if use kernel_linux; then + linux-mod_pkg_postrm + fi + eselect opengl set --use-old xorg-x11 +} -- 2.26.2