Gentoo Archives: gentoo-commits

From: Jeroen Roovers <jer@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/
Date: Sat, 30 Jan 2016 11:18:25
Message-Id: 1454152685.41cac5acdd0d07eb014e814f96df05aef393cff3.jer@gentoo
1 commit: 41cac5acdd0d07eb014e814f96df05aef393cff3
2 Author: Jeroen Roovers <jer <AT> gentoo <DOT> org>
3 AuthorDate: Sat Jan 30 11:14:25 2016 +0000
4 Commit: Jeroen Roovers <jer <AT> gentoo <DOT> org>
5 CommitDate: Sat Jan 30 11:18:05 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=41cac5ac
7
8 x11-drivers/nvidia-drivers: Build tools from source (bug #562910 by Christian Strahl).
9
10 Package-Manager: portage-2.2.27
11
12 x11-drivers/nvidia-drivers/Manifest | 1 +
13 .../nvidia-drivers/nvidia-drivers-340.96-r2.ebuild | 515 +++++++++++++++++++++
14 2 files changed, 516 insertions(+)
15
16 diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
17 index 24cc8f1..13b7ae7 100644
18 --- a/x11-drivers/nvidia-drivers/Manifest
19 +++ b/x11-drivers/nvidia-drivers/Manifest
20 @@ -41,4 +41,5 @@ DIST NVIDIA-Linux-x86_64-358.16.run 77353969 SHA256 a942cdb29ed715ff1ce25beb06b6
21 DIST NVIDIA-Linux-x86_64-361.18.run 86447500 SHA256 94cccc3ff10ee9544f60bf1d32d04dddabc5103880b57895ea60e1167b89a155 SHA512 d307b50226b145761de69892c51af3cd4498b91f9c56b5d5bf7b1f4f00cc073af586008cb060a16c036426240853ed30d244e63d3f727eadf39338736a5c0b02 WHIRLPOOL 87e03bfe694f708d57fb548c01d853bbae1335a696bce225ce997000387189b55c27644922a051e9a50dfa94ec917bda14b6ed4b76f345c8adc8d8f54aebff97
22 DIST NVIDIA-Linux-x86_64-96.43.23-pkg2.run 15962375 SHA256 ce8d8253e7dab7da63fbdac449ebf190cd0c10cbfffea0f8d0165515f851bc64 SHA512 04bec1187a6024a2b9839f008ec829281f1f2602dae2e639030bc385943186506bcaa2b46a230b2ab87f9217190841abc62f9e2d6395ab5559623389c31c6563 WHIRLPOOL 0651c44a51a1a06fcff5bfddbf9c3e408977e03263c7fe806cb6c01f9fe92f716dfe4e5190ffe1048bde72fcffdc8bca8267e74dd43ba5c9dfb22b6201fcc2bb
23 DIST nvidia-settings-304.131.tar.bz2 1480447 SHA256 d36d2d1ae7c1bb72cd18e713470546d2aa7057624b1f61319daf559a94054d29 SHA512 9269f54f87581e29e6d7cabeaf989c70cb27aa55f6b8f5f1c71b8a14401326d06ea194710722b41283cca56f5808b90a9b1fb12158d48c6332cce15a701c5796 WHIRLPOOL be8e38a09a0bfa40267b9cdae2800a9ef00a89e28e618b743b7acb0cd9ece4b242b74ced32018d735989592300b49b2ee683caa11a1e161bcecf070a58952dfd
24 +DIST nvidia-settings-340.96.tar.bz2 1551011 SHA256 af7303b070a4b41e388a7be6dfae17f020a5cc197170d4815b9a291a3a98aaff SHA512 fc6096338e48c347e4e854d06e8f63d8edb6527953996e63f3f70619be59d0436176547b5197ef30d18a82cf5b58dd775dcca4a2624107b63cce1ae589f2b154 WHIRLPOOL e7266ca0395aa1a5666a43bf6e54e258706d4e76bfd15079485e2379b332d2d6ba0c97b32e49f5b041340bb2d3c0e11dace702754ffc952c149557e0ab9d820a
25 DIST nvidia-settings-361.18.tar.bz2 1570821 SHA256 5e821bf9c92931da7c4ac2cac4c61a83e7f74641902935232cad747511fab363 SHA512 1a19ebb6773b53564a7996c8f963c161df599ed8ca577f505fbed1181f144a5e53fa970e3fee7fceed16909bd012f74f9af74080314ae9de9356894df9b1be4d WHIRLPOOL 23ff413900fca81427d755ecb5889dbb69033e101cf7c2f3edea4971defd03aedee95f5488779f634c690c05bfabe0763baf3dbf6377de950cabe48ad9c72684
26
27 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-340.96-r2.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-340.96-r2.ebuild
28 new file mode 100644
29 index 0000000..edd77e8
30 --- /dev/null
31 +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-340.96-r2.ebuild
32 @@ -0,0 +1,515 @@
33 +# Copyright 1999-2015 Gentoo Foundation
34 +# Distributed under the terms of the GNU General Public License v2
35 +# $Id$
36 +
37 +EAPI=5
38 +
39 +inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
40 + portability toolchain-funcs unpacker user udev
41 +
42 +NV_URI="http://us.download.nvidia.com/XFree86/"
43 +X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
44 +AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
45 +X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
46 +AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
47 +
48 +DESCRIPTION="NVIDIA Accelerated Graphics Driver"
49 +HOMEPAGE="http://www.nvidia.com/"
50 +SRC_URI="
51 + amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
52 + amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
53 + x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
54 + x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
55 + tools? ( ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2 )
56 +"
57 +
58 +LICENSE="GPL-2 NVIDIA-r2"
59 +SLOT="0/${PV%.*}"
60 +KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
61 +IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools +X uvm"
62 +RESTRICT="bindist mirror strip"
63 +EMULTILIB_PKG="true"
64 +
65 +COMMON="
66 + app-eselect/eselect-opencl
67 + kernel_linux? ( >=sys-libs/glibc-2.6.1 )
68 + tools? (
69 + dev-libs/atk
70 + dev-libs/glib:2
71 + dev-libs/jansson
72 + x11-libs/gdk-pixbuf
73 + >=x11-libs/gtk+-2.4:2
74 + x11-libs/libX11
75 + x11-libs/libXext
76 + x11-libs/pango[X]
77 + )
78 + X? (
79 + >=app-eselect/eselect-opengl-1.0.9
80 + )
81 +"
82 +DEPEND="
83 + ${COMMON}
84 + app-arch/xz-utils
85 + kernel_linux? ( virtual/linux-sources )
86 +"
87 +RDEPEND="
88 + ${COMMON}
89 + acpi? ( sys-power/acpid )
90 + X? (
91 + <x11-base/xorg-server-1.18.99:=
92 + >=x11-libs/libvdpau-0.3-r1
93 + multilib? (
94 + >=x11-libs/libX11-1.6.2[abi_x86_32]
95 + >=x11-libs/libXext-1.3.2[abi_x86_32]
96 + )
97 + )
98 +"
99 +
100 +REQUIRED_USE="tools? ( X )"
101 +
102 +QA_PREBUILT="opt/* usr/lib*"
103 +
104 +S=${WORKDIR}/
105 +
106 +pkg_pretend() {
107 + if use amd64 && has_multilib_profile && \
108 + [ "${DEFAULT_ABI}" != "amd64" ]; then
109 + eerror "This ebuild doesn't currently support changing your default ABI"
110 + die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
111 + fi
112 +
113 + if use kernel_linux && kernel_is ge 4 4; then
114 + ewarn "Gentoo supports kernels which are supported by NVIDIA"
115 + ewarn "which are limited to the following kernels:"
116 + ewarn "<sys-kernel/gentoo-sources-4.4"
117 + ewarn "<sys-kernel/vanilla-sources-4.4"
118 + ewarn ""
119 + ewarn "You are free to utilize epatch_user to provide whatever"
120 + ewarn "support you feel is appropriate, but will not receive"
121 + ewarn "support as a result of those changes."
122 + ewarn ""
123 + ewarn "Do not file a bug report about this."
124 + ewarn ""
125 + fi
126 +
127 + # Since Nvidia ships many different series of drivers, we need to give the user
128 + # some kind of guidance as to what version they should install. This tries
129 + # to point the user in the right direction but can't be perfect. check
130 + # nvidia-driver.eclass
131 + nvidia-driver-check-warning
132 +
133 + # Kernel features/options to check for
134 + CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
135 + use x86 && CONFIG_CHECK+=" ~HIGHMEM"
136 +
137 + # Now do the above checks
138 + use kernel_linux && check_extra_config
139 +}
140 +
141 +pkg_setup() {
142 + # try to turn off distcc and ccache for people that have a problem with it
143 + export DISTCC_DISABLE=1
144 + export CCACHE_DISABLE=1
145 +
146 + if use kernel_linux; then
147 + MODULE_NAMES="nvidia(video:${S}/kernel)"
148 + use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel/uvm)"
149 +
150 + # This needs to run after MODULE_NAMES (so that the eclass checks
151 + # whether the kernel supports loadable modules) but before BUILD_PARAMS
152 + # is set (so that KV_DIR is populated).
153 + linux-mod_pkg_setup
154 +
155 + BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
156 + SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
157 +
158 + # linux-mod_src_compile calls set_arch_to_kernel, which
159 + # sets the ARCH to x86 but NVIDIA's wrapping Makefile
160 + # expects x86_64 or i386 and then converts it to x86
161 + # later on in the build process
162 + BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
163 + fi
164 +
165 + # set variables to where files are in the package structure
166 + if use kernel_FreeBSD; then
167 + use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
168 + use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
169 + NV_DOC="${S}/doc"
170 + NV_OBJ="${S}/obj"
171 + NV_SRC="${S}/src"
172 + NV_MAN="${S}/x11/man"
173 + NV_X11="${S}/obj"
174 + NV_SOVER=1
175 + elif use kernel_linux; then
176 + NV_DOC="${S}"
177 + NV_OBJ="${S}"
178 + NV_SRC="${S}/kernel"
179 + NV_MAN="${S}"
180 + NV_X11="${S}"
181 + NV_SOVER=${PV}
182 + else
183 + die "Could not determine proper NVIDIA package"
184 + fi
185 +}
186 +
187 +src_prepare() {
188 + # Please add a brief description for every added patch
189 +
190 + if use kernel_linux; then
191 + if kernel_is lt 2 6 9 ; then
192 + eerror "You must build this against 2.6.9 or higher kernels."
193 + fi
194 +
195 + # If greater than 2.6.5 use M= instead of SUBDIR=
196 +# convert_to_m "${NV_SRC}"/Makefile.kbuild
197 + fi
198 +
199 + if use pax_kernel; then
200 + ewarn "Using PAX patches is not supported. You will be asked to"
201 + ewarn "use a standard kernel should you have issues. Should you"
202 + ewarn "need support with these patches, contact the PaX team."
203 + epatch "${FILESDIR}"/${PN}-331.13-pax-usercopy.patch
204 + epatch "${FILESDIR}"/${PN}-337.12-pax-constify.patch
205 + fi
206 +
207 + # Allow user patches so they can support RC kernels and whatever else
208 + epatch_user
209 +}
210 +
211 +src_compile() {
212 + # This is already the default on Linux, as there's no toplevel Makefile, but
213 + # on FreeBSD there's one and triggers the kernel module build, as we install
214 + # it by itself, pass this.
215 +
216 + cd "${NV_SRC}"
217 + if use kernel_FreeBSD; then
218 + MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
219 + LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
220 + elif use kernel_linux; then
221 + use uvm && MAKEOPTS=-j1
222 + linux-mod_src_compile
223 + fi
224 +
225 + if use tools; then
226 + emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl clean
227 + emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
228 + AR="$(tc-getAR)" \
229 + CC="$(tc-getCC)" \
230 + RANLIB="$(tc-getRANLIB)" \
231 + libXNVCtrl.a
232 + emake -C "${S}"/nvidia-settings-${PV}/src \
233 + AR="$(tc-getAR)" \
234 + CC="$(tc-getCC)" \
235 + LD="$(tc-getCC)" \
236 + LIBDIR="$(get_libdir)" \
237 + NVML_ENABLED=0 \
238 + NV_USE_BUNDLED_LIBJANSSON=0 \
239 + NV_VERBOSE=1 \
240 + RANLIB="$(tc-getRANLIB)" \
241 + STRIP_CMD=true
242 + fi
243 +}
244 +
245 +# Install nvidia library:
246 +# the first parameter is the library to install
247 +# the second parameter is the provided soversion
248 +# the third parameter is the target directory if its not /usr/lib
249 +donvidia() {
250 + # Full path to library minus SOVER
251 + MY_LIB="$1"
252 +
253 + # SOVER to use
254 + MY_SOVER="$2"
255 +
256 + # Where to install
257 + MY_DEST="$3"
258 +
259 + if [[ -z "${MY_DEST}" ]]; then
260 + MY_DEST="/usr/$(get_libdir)"
261 + action="dolib.so"
262 + else
263 + exeinto ${MY_DEST}
264 + action="doexe"
265 + fi
266 +
267 + # Get just the library name
268 + libname=$(basename $1)
269 +
270 + # Install the library with the correct SOVER
271 + ${action} ${MY_LIB}.${MY_SOVER} || \
272 + die "failed to install ${libname}"
273 +
274 + # If SOVER wasn't 1, then we need to create a .1 symlink
275 + if [[ "${MY_SOVER}" != "1" ]]; then
276 + dosym ${libname}.${MY_SOVER} \
277 + ${MY_DEST}/${libname}.1 || \
278 + die "failed to create ${libname} symlink"
279 + fi
280 +
281 + # Always create the symlink from the raw lib to the .1
282 + dosym ${libname}.1 \
283 + ${MY_DEST}/${libname} || \
284 + die "failed to create ${libname} symlink"
285 +}
286 +
287 +src_install() {
288 + if use kernel_linux; then
289 + linux-mod_src_install
290 +
291 + # Add the aliases
292 + # This file is tweaked with the appropriate video group in
293 + # pkg_preinst, see bug #491414
294 + insinto /etc/modprobe.d
295 + newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
296 + use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
297 +
298 + # Ensures that our device nodes are created when not using X
299 + exeinto "$(get_udevdir)"
300 + newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
301 + udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
302 + elif use kernel_FreeBSD; then
303 + if use x86-fbsd; then
304 + insinto /boot/modules
305 + doins "${S}/src/nvidia.kld"
306 + fi
307 +
308 + exeinto /boot/modules
309 + doexe "${S}/src/nvidia.ko"
310 + fi
311 +
312 + # NVIDIA kernel <-> userspace driver config lib
313 + donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
314 +
315 + # NVIDIA framebuffer capture library
316 + donvidia ${NV_OBJ}/libnvidia-fbc.so ${NV_SOVER}
317 +
318 + # NVIDIA video encode/decode <-> CUDA
319 + if use kernel_linux; then
320 + donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
321 + donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
322 + fi
323 +
324 + if use X; then
325 + # Xorg DDX driver
326 + insinto /usr/$(get_libdir)/xorg/modules/drivers
327 + doins ${NV_X11}/nvidia_drv.so
328 +
329 + # Xorg GLX driver
330 + donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
331 + /usr/$(get_libdir)/opengl/nvidia/extensions
332 + fi
333 +
334 + # OpenCL ICD for NVIDIA
335 + if use kernel_linux; then
336 + insinto /etc/OpenCL/vendors
337 + doins ${NV_OBJ}/nvidia.icd
338 + fi
339 +
340 + # Documentation
341 + dohtml ${NV_DOC}/html/*
342 + if use kernel_FreeBSD; then
343 + dodoc "${NV_DOC}/README"
344 + use X && doman "${NV_MAN}/nvidia-xconfig.1"
345 + use tools && doman "${NV_MAN}/nvidia-settings.1"
346 + else
347 + # Docs
348 + newdoc "${NV_DOC}/README.txt" README
349 + dodoc "${NV_DOC}/NVIDIA_Changelog"
350 + doman "${NV_MAN}/nvidia-smi.1.gz"
351 + use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
352 + use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
353 + doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
354 + fi
355 +
356 + # Helper Apps
357 + exeinto /opt/bin/
358 +
359 + if use X; then
360 + doexe ${NV_OBJ}/nvidia-xconfig
361 + fi
362 +
363 + if use kernel_linux ; then
364 + doexe ${NV_OBJ}/nvidia-cuda-mps-control
365 + doexe ${NV_OBJ}/nvidia-cuda-mps-server
366 + doexe ${NV_OBJ}/nvidia-debugdump
367 + doexe ${NV_OBJ}/nvidia-persistenced
368 + doexe ${NV_OBJ}/nvidia-smi
369 +
370 + # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
371 + doexe ${NV_OBJ}/nvidia-modprobe
372 + fowners root:video /opt/bin/nvidia-modprobe
373 + fperms 4710 /opt/bin/nvidia-modprobe
374 + dosym /{opt,usr}/bin/nvidia-modprobe
375 +
376 + doman nvidia-cuda-mps-control.1.gz
377 + doman nvidia-modprobe.1.gz
378 + doman nvidia-persistenced.1.gz
379 + newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
380 + newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
381 + newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
382 + fi
383 +
384 + if use tools; then
385 + emake -C "${S}"/nvidia-settings-${PV}/src/ \
386 + DESTDIR="${D}" \
387 + LIBDIR="${D}/usr/$(get_libdir)" \
388 + PREFIX=/usr \
389 + NV_USE_BUNDLED_LIBJANSSON=0 \
390 + install
391 +
392 + use static-libs && \
393 + dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
394 +
395 + insinto /usr/include/NVCtrl
396 + doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
397 +
398 + insinto /usr/share/nvidia/
399 + doins nvidia-application-profiles-${PV}-key-documentation
400 +
401 + insinto /etc/nvidia
402 + newins \
403 + nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
404 +
405 + # There is no icon in the FreeBSD tarball.
406 + use kernel_FreeBSD || \
407 + newicon ${NV_OBJ}/nvidia-settings.png ${PN}-settings.png
408 +
409 + domenu "${FILESDIR}"/${PN}-settings.desktop
410 +
411 + exeinto /etc/X11/xinit/xinitrc.d
412 + doexe "${FILESDIR}"/95-nvidia-settings
413 +
414 + fi
415 +
416 + dobin ${NV_OBJ}/nvidia-bug-report.sh
417 +
418 + #doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
419 +
420 + if has_multilib_profile && use multilib ; then
421 + local OABI=${ABI}
422 + for ABI in $(get_install_abis) ; do
423 + src_install-libs
424 + done
425 + ABI=${OABI}
426 + unset OABI
427 + else
428 + src_install-libs
429 + fi
430 +
431 + is_final_abi || die "failed to iterate through all ABIs"
432 +
433 + readme.gentoo_create_doc
434 +}
435 +
436 +src_install-libs() {
437 + local inslibdir=$(get_libdir)
438 + local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
439 + local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
440 + local libdir=${NV_OBJ}
441 +
442 + if use kernel_linux && has_multilib_profile && \
443 + [[ ${ABI} == "x86" ]] ; then
444 + libdir=${NV_OBJ}/32
445 + fi
446 +
447 + if use X; then
448 + # The GLX libraries
449 + donvidia ${libdir}/libEGL.so ${NV_SOVER} ${GL_ROOT}
450 + donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
451 + donvidia ${libdir}/libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}
452 + donvidia ${libdir}/libnvidia-eglcore.so ${NV_SOVER}
453 + donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
454 + donvidia ${libdir}/libnvidia-glsi.so ${NV_SOVER}
455 + donvidia ${libdir}/libnvidia-ifr.so ${NV_SOVER}
456 + if use kernel_FreeBSD; then
457 + donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
458 + else
459 + donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
460 + fi
461 +
462 + # VDPAU
463 + donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
464 +
465 + # GLES v2 libraries
466 + insinto ${GL_ROOT}
467 + doexe ${libdir}/libGLESv2.so.${PV}
468 + dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
469 + dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
470 + fi
471 +
472 + # NVIDIA monitoring library
473 + if use kernel_linux ; then
474 + donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
475 + fi
476 +
477 + # CUDA & OpenCL
478 + if use kernel_linux; then
479 + donvidia ${libdir}/libcuda.so ${NV_SOVER}
480 + donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
481 + donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
482 + donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
483 + fi
484 +}
485 +
486 +pkg_preinst() {
487 + if use kernel_linux; then
488 + linux-mod_pkg_preinst
489 +
490 + local videogroup="$(egetent group video | cut -d ':' -f 3)"
491 + if [ -z "${videogroup}" ]; then
492 + eerror "Failed to determine the video group gid"
493 + die "Failed to determine the video group gid"
494 + else
495 + sed -i \
496 + -e "s:PACKAGE:${PF}:g" \
497 + -e "s:VIDEOGID:${videogroup}:" \
498 + "${D}"/etc/modprobe.d/nvidia.conf || die
499 + fi
500 + fi
501 +
502 + # Clean the dynamic libGL stuff's home to ensure
503 + # we dont have stale libs floating around
504 + if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
505 + rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
506 + fi
507 + # Make sure we nuke the old nvidia-glx's env.d file
508 + if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
509 + rm -f "${ROOT}"/etc/env.d/09nvidia
510 + fi
511 +}
512 +
513 +pkg_postinst() {
514 + use kernel_linux && linux-mod_pkg_postinst
515 +
516 + # Switch to the nvidia implementation
517 + use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
518 + "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
519 +
520 + readme.gentoo_print_elog
521 +
522 + if ! use X; then
523 + elog "You have elected to not install the X.org driver. Along with"
524 + elog "this the OpenGL libraries and VDPAU libraries were not"
525 + elog "installed. Additionally, once the driver is loaded your card"
526 + elog "and fan will run at max speed which may not be desirable."
527 + elog "Use the 'nvidia-smi' init script to have your card and fan"
528 + elog "speed scale appropriately."
529 + elog
530 + fi
531 + if ! use tools; then
532 + elog "USE=tools controls whether the nvidia-settings application"
533 + elog "is installed. If you would like to use it, enable that"
534 + elog "flag and re-emerge this ebuild. Optionally you can install"
535 + elog "media-video/nvidia-settings"
536 + elog
537 + fi
538 +}
539 +
540 +pkg_prerm() {
541 + use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
542 +}
543 +
544 +pkg_postrm() {
545 + use kernel_linux && linux-mod_pkg_postrm
546 + use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
547 +}