Gentoo Archives: gentoo-commits

From: "Doug Goldstein (cardoe)" <cardoe@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in x11-drivers/nvidia-drivers: nvidia-drivers-295.75.ebuild ChangeLog
Date: Sun, 30 Sep 2012 03:11:20
Message-Id: 20120930031109.3B35F21601@flycatcher.gentoo.org
1 cardoe 12/09/30 03:11:09
2
3 Modified: ChangeLog
4 Added: nvidia-drivers-295.75.ebuild
5 Log:
6 Version bump in the 295.x series.
7
8 (Portage version: 2.1.11.9/cvs/Linux x86_64)
9
10 Revision Changes Path
11 1.399 x11-drivers/nvidia-drivers/ChangeLog
12
13 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog?rev=1.399&view=markup
14 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog?rev=1.399&content-type=text/plain
15 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog?r1=1.398&r2=1.399
16
17 Index: ChangeLog
18 ===================================================================
19 RCS file: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v
20 retrieving revision 1.398
21 retrieving revision 1.399
22 diff -u -r1.398 -r1.399
23 --- ChangeLog 25 Sep 2012 16:47:34 -0000 1.398
24 +++ ChangeLog 30 Sep 2012 03:11:08 -0000 1.399
25 @@ -1,6 +1,12 @@
26 # ChangeLog for x11-drivers/nvidia-drivers
27 # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
28 -# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.398 2012/09/25 16:47:34 cardoe Exp $
29 +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.399 2012/09/30 03:11:08 cardoe Exp $
30 +
31 +*nvidia-drivers-295.75 (30 Sep 2012)
32 +
33 + 30 Sep 2012; Doug Goldstein <cardoe@g.o>
34 + +nvidia-drivers-295.75.ebuild:
35 + Version bump in the 295.x series.
36
37 *nvidia-drivers-304.51 (25 Sep 2012)
38
39
40
41
42 1.1 x11-drivers/nvidia-drivers/nvidia-drivers-295.75.ebuild
43
44 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-295.75.ebuild?rev=1.1&view=markup
45 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-295.75.ebuild?rev=1.1&content-type=text/plain
46
47 Index: nvidia-drivers-295.75.ebuild
48 ===================================================================
49 # Copyright 1999-2012 Gentoo Foundation
50 # Distributed under the terms of the GNU General Public License v2
51 # $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-295.75.ebuild,v 1.1 2012/09/30 03:11:08 cardoe Exp $
52
53 EAPI="2"
54
55 inherit eutils flag-o-matic linux-mod multilib nvidia-driver portability \
56 unpacker user versionator
57
58 X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
59 AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
60 X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
61 AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
62
63 DESCRIPTION="NVIDIA X11 driver and GLX libraries"
64 HOMEPAGE="http://www.nvidia.com/"
65 SRC_URI="x86? ( http://us.download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
66 amd64? ( http://us.download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
67 amd64-fbsd? ( http://us.download.nvidia.com/XFree86/FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
68 x86-fbsd? ( http://us.download.nvidia.com/XFree86/FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )"
69
70 LICENSE="NVIDIA"
71 SLOT="0"
72 KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
73 IUSE="acpi multilib kernel_FreeBSD kernel_linux +tools"
74 RESTRICT="strip"
75 EMULTILIB_PKG="true"
76
77 COMMON="<x11-base/xorg-server-1.12.99
78 kernel_linux? ( >=sys-libs/glibc-2.6.1 )
79 multilib? ( app-emulation/emul-linux-x86-xlibs )
80 >=app-admin/eselect-opengl-1.0.9
81 app-admin/eselect-opencl"
82 DEPEND="${COMMON}
83 kernel_linux? ( virtual/linux-sources )"
84 RDEPEND="${COMMON}
85 x11-libs/libXvMC
86 acpi? ( sys-power/acpid )
87 tools? (
88 dev-libs/atk
89 dev-libs/glib
90 x11-libs/gdk-pixbuf
91 x11-libs/gtk+:2
92 x11-libs/libX11
93 x11-libs/libXext
94 x11-libs/pango[X]
95 )"
96 PDEPEND=">=x11-libs/libvdpau-0.3-r1"
97
98 QA_TEXTRELS_x86="
99 usr/lib/OpenCL/vendors/nvidia/libOpenCL.so.1.0.0
100 usr/lib/libXvMCNVIDIA.so.${PV}
101 usr/lib/libcuda.so.${PV}
102 usr/lib/libnvcuvid.so.${PV}
103 usr/lib/libnvidia-cfg.so.${PV}
104 usr/lib/libnvidia-compiler.so.${PV}
105 usr/lib/libnvidia-glcore.so.${PV}
106 usr/lib/libnvidia-ml.so.${PV}
107 usr/lib/libvdpau_nvidia.so.${PV}
108 usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
109 usr/lib/opengl/nvidia/lib/libGL.so.${PV}
110 usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV}
111 usr/lib/xorg/modules/drivers/nvidia_drv.so"
112
113 QA_TEXTRELS_x86_fbsd="boot/modules/nvidia.ko
114 usr/lib/opengl/nvidia/lib/libGL.so.1
115 usr/lib/libnvidia-glcore.so.1
116 usr/lib/libvdpau_nvidia.so.1
117 usr/lib/libnvidia-cfg.so.1
118 usr/lib/opengl/nvidia/extensions/libglx.so.1
119 usr/lib/xorg/modules/drivers/nvidia_drv.so"
120
121 QA_TEXTRELS_amd64="usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV}
122 usr/lib32/libnvidia-glcore.so.${PV}
123 usr/lib32/libvdpau_nvidia.so.${PV}
124 usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
125 usr/lib32/libcuda.so.${PV}
126 usr/lib32/OpenCL/vendors/nvidia/libOpenCL.so.1.0.0
127 usr/lib32/libnvidia-compiler.so.${PV}"
128
129 QA_EXECSTACK_x86="usr/lib/opengl/nvidia/lib/libGL.so.${PV}
130 usr/lib/libnvidia-glcore.so.${PV}
131 usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
132 usr/lib64/libXvMCNVIDIA.so.${PV}
133 usr/lib/libXvMCNVIDIA.a:NVXVMC.o
134 usr/lib/libvdpau_nvidia.so.${PV}
135 usr/lib/libnvidia-compiler.so.${PV}
136 usr/lib/libcuda.so.${PV}
137 usr/lib/OpenCL/vendors/nvidia/libOpenCL.so.1.0.0"
138
139 QA_EXECSTACK_amd64="usr/lib32/libnvidia-glcore.so.${PV}
140 usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
141 usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV}
142 usr/lib32/libvdpau_nvidia.so.${PV}
143 usr/lib32/libcuda.so.${PV}
144 usr/lib32/OpenCL/vendors/nvidia/libOpenCL.so.1.0.0
145 usr/lib32/libnvidia-compiler.so.${PV}
146 usr/lib64/libXvMCNVIDIA.a:NVXVMC.o
147 usr/lib64/libnvidia-cfg.so.${PV}
148 usr/lib64/libnvidia-ml.so.${PV}
149 usr/lib64/libvdpau_nvidia.so.${PV}
150 usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV}
151 usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
152 usr/lib64/libnvidia-glcore.so.${PV}
153 usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
154 usr/lib64/libXvMCNVIDIA.so.${PV}
155 usr/lib64/libcuda.so.${PV}
156 usr/lib64/OpenCL/vendors/nvidia/libOpenCL.so.1.0.0
157 usr/lib64/libnvidia-compiler.so.${PV}
158 usr/lib64/xorg/modules/drivers/nvidia_drv.so
159 opt/bin/nvidia-smi
160 opt/bin/nvidia-xconfig
161 opt/bin/nvidia-debugdump
162 opt/bin/nvidia-settings"
163
164 QA_WX_LOAD_x86="usr/lib/libnvidia-glcore.so.${PV}
165 usr/lib/opengl/nvidia/lib/libGL.so.${PV}
166 usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
167 usr/lib/libXvMCNVIDIA.a
168 usr/lib64/libXvMCNVIDIA.so.${PV}"
169
170 QA_WX_LOAD_amd64="usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
171 usr/lib32/libnvidia-glcore.so.${PV}
172 usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
173 usr/lib64/libnvidia-glcore.so.${PV}
174 usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
175 usr/lib64/libXvMCNVIDIA.so.${PV}"
176
177 QA_SONAME_x86="usr/lib/libnvidia-compiler.so.${PV}"
178
179 QA_SONAME_amd64="usr/lib64/libnvidia-compiler.so.${PV}
180 usr/lib32/libnvidia-compiler.so.${PV}"
181
182 QA_DT_HASH_amd64="usr/lib32/libcuda.so.${PV}
183 usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
184 usr/lib32/libnvidia-glcore.so.${PV}
185 usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV}
186 usr/lib32/libvdpau_nvidia.so.${PV}
187 usr/lib32/OpenCL/vendors/nvidia/libOpenCL.so.1.0.0
188 usr/lib32/libnvidia-compiler.so.${PV}
189 usr/lib64/libXvMCNVIDIA.so.${PV}
190 usr/lib64/libcuda.so.${PV}
191 usr/lib64/libnvidia-cfg.so.${PV}
192 usr/lib64/libnvidia-glcore.so.${PV}
193 usr/lib64/libnvidia-ml.so.${PV}
194 usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
195 usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV}
196 usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
197 usr/lib64/xorg/modules/drivers/nvidia_drv.so
198 usr/lib64/libvdpau_nvidia.so.${PV}
199 usr/lib64/OpenCL/vendors/nvidia/libOpenCL.so.1.0.0
200 usr/lib64/libnvidia-compiler.so.${PV}
201 usr/lib64/libnvcuvid.so.${PV}
202 opt/bin/nvidia-smi
203 opt/bin/nvidia-xconfig
204 opt/bin/nvidia-debugdump
205 opt/bin/nvidia-settings"
206
207 QA_DT_HASH_x86="usr/lib/libcuda.so.${PV}
208 usr/lib/libnvidia-cfg.so.${PV}
209 usr/lib/libnvidia-glcore.so.${PV}
210 usr/lib/libnvidia-ml.so.${PV}
211 usr/lib/opengl/nvidia/lib/libGL.so.${PV}
212 usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV}
213 usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
214 usr/lib/xorg/modules/drivers/nvidia_drv.so
215 usr/lib/libXvMCNVIDIA.so.${PV}
216 usr/lib/libvdpau_nvidia.so.${PV}
217 usr/lib/OpenCL/vendors/nvidia/libOpenCL.so.1.0.0
218 usr/lib/libnvidia-compiler.so.${PV}
219 usr/lib/libnvcuvid.so.${PV}
220 opt/bin/nvidia-smi
221 opt/bin/nvidia-xconfig
222 opt/bin/nvidia-debugdump
223 opt/bin/nvidia-settings"
224
225 S=${WORKDIR}/
226
227 mtrr_check() {
228 ebegin "Checking for MTRR support"
229 linux_chkconfig_present MTRR
230 eend $?
231
232 if [[ $? -ne 0 ]] ; then
233 eerror "Please enable MTRR support in your kernel config, found at:"
234 eerror
235 eerror " Processor type and features"
236 eerror " [*] MTRR (Memory Type Range Register) support"
237 eerror
238 eerror "and recompile your kernel ..."
239 die "MTRR support not detected!"
240 fi
241 }
242
243 lockdep_check() {
244 if linux_chkconfig_present LOCKDEP; then
245 eerror "You've enabled LOCKDEP -- lock tracking -- in the kernel."
246 eerror "Unfortunately, this option exports the symbol "
247 eerror "'lockdep_init_map' as GPL-only which will prevent "
248 eerror "${P} from compiling."
249 eerror "Please make sure the following options have been unset:"
250 eerror
251 eerror " Kernel hacking --->"
252 eerror " [ ] Lock debugging: detect incorrect freeing of live locks"
253 eerror " [ ] Lock debugging: prove locking correctness"
254 eerror " [ ] Lock usage statistics"
255 eerror "in 'menuconfig'"
256 die "LOCKDEP enabled"
257 fi
258 }
259
260 pkg_setup() {
261 # try to turn off distcc and ccache for people that have a problem with it
262 export DISTCC_DISABLE=1
263 export CCACHE_DISABLE=1
264
265 if use amd64 && has_multilib_profile && [ "${DEFAULT_ABI}" != "amd64" ]; then
266 eerror "This ebuild doesn't currently support changing your default abi."
267 die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
268 fi
269
270 if use kernel_linux; then
271 linux-mod_pkg_setup
272 MODULE_NAMES="nvidia(video:${S}/kernel)"
273 BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
274 SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
275 # linux-mod_src_compile calls set_arch_to_kernel, which
276 # sets the ARCH to x86 but NVIDIA's wrapping Makefile
277 # expects x86_64 or i386 and then converts it to x86
278 # later on in the build process
279 BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
280 mtrr_check
281 lockdep_check
282 fi
283
284 # On BSD userland it wants real make command
285 use userland_BSD && MAKE="$(get_bmake)"
286
287 export _POSIX2_VERSION="199209"
288
289 # Since Nvidia ships 3 different series of drivers, we need to give the user
290 # some kind of guidance as to what version they should install. This tries
291 # to point the user in the right direction but can't be perfect. check
292 # nvidia-driver.eclass
293 nvidia-driver-check-warning
294
295 # set variables to where files are in the package structure
296 if use kernel_FreeBSD; then
297 use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
298 use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
299 NV_DOC="${S}/doc"
300 NV_EXEC="${S}/obj"
301 NV_LIB="${S}/obj"
302 NV_SRC="${S}/src"
303 NV_MAN="${S}/x11/man"
304 NV_X11="${S}/obj"
305 NV_X11_DRV="${NV_X11}"
306 NV_X11_EXT="${NV_X11}"
307 NV_SOVER=1
308 elif use kernel_linux; then
309 NV_DOC="${S}"
310 NV_EXEC="${S}"
311 NV_LIB="${S}"
312 NV_SRC="${S}/kernel"
313 NV_MAN="${S}"
314 NV_X11="${S}"
315 NV_X11_DRV="${NV_X11}"
316 NV_X11_EXT="${NV_X11}"
317 NV_SOVER=${PV}
318 else
319 die "Could not determine proper NVIDIA package"
320 fi
321 }
322
323 src_unpack() {
324 if use kernel_linux && kernel_is lt 2 6 7; then
325 echo
326 ewarn "Your kernel version is ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
327 ewarn "This is not officially supported for ${P}. It is likely you"
328 ewarn "will not be able to compile or use the kernel module."
329 ewarn "It is recommended that you upgrade your kernel to a version >= 2.6.7"
330 echo
331 ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored."
332 fi
333
334 if ! use kernel_FreeBSD; then
335 cd "${S}"
336 unpack_makeself
337 else
338 unpack ${A}
339 fi
340 }
341
342 src_prepare() {
343 # Please add a brief description for every added patch
344 use kernel_FreeBSD && cd doc
345
346 if use kernel_linux; then
347 # Quiet down warnings the user does not need to see
348 sed -i \
349 -e 's:-Wsign-compare::g' \
350 "${NV_SRC}"/Makefile.kbuild
351
352 # If greater than 2.6.5 use M= instead of SUBDIR=
353 convert_to_m "${NV_SRC}"/Makefile.kbuild
354 fi
355 cat <<- EOF > "${S}"/nvidia.icd
356 /usr/$(get_libdir)/libcuda.so
357 EOF
358
359 # Allow user patches so they can support RC kernels and whatever else
360 epatch_user
361 }
362
363 src_compile() {
364 # This is already the default on Linux, as there's no toplevel Makefile, but
365 # on FreeBSD there's one and triggers the kernel module build, as we install
366 # it by itself, pass this.
367
368 cd "${NV_SRC}"
369 if use kernel_FreeBSD; then
370 MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
371 LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
372 elif use kernel_linux; then
373 linux-mod_src_compile
374 fi
375 }
376
377 src_install() {
378 if use kernel_linux; then
379 linux-mod_src_install
380
381 VIDEOGROUP="$(egetent group video | cut -d ':' -f 3)"
382 if [ -z "$VIDEOGROUP" ]; then
383 eerror "Failed to determine the video group gid."
384 die "Failed to determine the video group gid."
385 fi
386
387 # Add the aliases
388 [ -f "${FILESDIR}/nvidia-169.07" ] || die "nvidia missing in FILESDIR"
389 sed -e 's:PACKAGE:'${PF}':g' \
390 -e 's:VIDEOGID:'${VIDEOGROUP}':' "${FILESDIR}"/nvidia-169.07 > \
391 "${WORKDIR}"/nvidia
392 insinto /etc/modprobe.d
393 newins "${WORKDIR}"/nvidia nvidia.conf || die
394
395 # Ensures that our device nodes are created when not using X
396 exeinto /lib/udev
397 doexe "${FILESDIR}"/nvidia-udev.sh
398
399 insinto /lib/udev/rules.d
400 newins "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
401 elif use kernel_FreeBSD; then
402 if use x86-fbsd; then
403 insinto /boot/modules
404 doins "${S}/src/nvidia.kld" || die
405 fi
406
407 exeinto /boot/modules
408 doexe "${S}/src/nvidia.ko" || die
409 fi
410
411 # NVIDIA kernel <-> userspace driver config lib
412 dolib.so ${NV_LIB}/libnvidia-cfg.so.${NV_SOVER} || \
413 die "failed to install libnvidia-cfg"
414 dosym libnvidia-cfg.so.${NV_SOVER} \
415 /usr/$(get_libdir)/libnvidia-cfg.so.1 || \
416 die "failed to create libnvidia-cfg.so symlink"
417 dosym libnvidia-cfg.so.1 \
418 /usr/$(get_libdir)/libnvidia-cfg.so || \
419 die "failed to create libnvidia-cfg.so symlink"
420
421 if use kernel_linux; then
422 # NVIDIA monitoring library
423 dolib.so ${NV_LIB}/libnvidia-ml.so.${NV_SOVER} || \
424 die "failed to install libnvidia-ml"
425 dosym libnvidia-ml.so.${NV_SOVER} \
426 /usr/$(get_libdir)/libnvidia-ml.so.1 || \
427 die "failed to create libnvidia-ml.so symlink"
428 dosym libnvidia-ml.so.1 \
429 /usr/$(get_libdir)/libnvidia-ml.so || \
430 die "failed to create libnvidia-ml.so symlink"
431
432 # NVIDIA video decode <-> CUDA
433 dolib.so ${NV_LIB}/libnvcuvid.so.${NV_SOVER} || \
434 die "failed to install libnvcuvid.so"
435 dosym libnvcuvid.so.${NV_SOVER} \
436 /usr/$(get_libdir)/libnvcuvid.so.1 || \
437 die "failed to create libnvcuvid.so symlink"
438 dosym libnvcuvid.so.1 \
439 /usr/$(get_libdir)/libnvcuvid.so || \
440 die "failed to create libnvcuvid.so symlink"
441 fi
442
443 # Xorg DDX driver
444 insinto /usr/$(get_libdir)/xorg/modules/drivers
445 doins ${NV_X11_DRV}/nvidia_drv.so || die "failed to install nvidia_drv.so"
446
447 # Xorg GLX driver
448 insinto /usr/$(get_libdir)/opengl/nvidia/extensions
449 doins ${NV_X11_EXT}/libglx.so.${NV_SOVER} || \
450 die "failed to install libglx.so"
451 dosym libglx.so.${NV_SOVER} \
452 /usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so || \
453 die "failed to create libglx.so symlink"
454
455 # XvMC driver
456 dolib.a ${NV_X11}/libXvMCNVIDIA.a || \
457 die "failed to install libXvMCNVIDIA.so"
458 dolib.so ${NV_X11}/libXvMCNVIDIA.so.${NV_SOVER} || \
459 die "failed to install libXvMCNVIDIA.so"
460 dosym libXvMCNVIDIA.so.${NV_SOVER} \
461 /usr/$(get_libdir)/libXvMCNVIDIA.so.1 || \
462 die "failed to create libXvMCNVIDIA.so symlink"
463 dosym libXvMCNVIDIA.so.1 /usr/$(get_libdir)/libXvMCNVIDIA.so || \
464 die "failed to create libXvMCNVIDIA.so symlink"
465 dosym libXvMCNVIDIA.so.${NV_SOVER} \
466 /usr/$(get_libdir)/libXvMCNVIDIA_dynamic.so.1 || \
467 die "failed to create libXvMCNVIDIA_dynamic.so symlink"
468
469 # OpenCL ICD for NVIDIA
470 if use kernel_linux; then
471 insinto /etc/OpenCL/vendors
472 doins nvidia.icd
473 fi
474
475 # Documentation
476 dohtml ${NV_DOC}/html/*
477 if use kernel_FreeBSD; then
478 dodoc "${NV_DOC}/README"
479 doman "${NV_MAN}/nvidia-xconfig.1"
480 doman "${NV_MAN}/nvidia-settings.1"
481 else
482 # Docs
483 newdoc "${NV_DOC}/README.txt" README
484 dodoc "${NV_DOC}/NVIDIA_Changelog"
485 doman "${NV_MAN}/nvidia-smi.1.gz"
486 doman "${NV_MAN}/nvidia-xconfig.1.gz"
487 doman "${NV_MAN}/nvidia-settings.1.gz"
488 fi
489
490 # Helper Apps
491 exeinto /opt/bin/
492 doexe ${NV_EXEC}/nvidia-xconfig || die
493 use kernel_linux && { doexe ${NV_EXEC}/nvidia-debugdump || die ; }
494 if use tools; then
495 doexe ${NV_EXEC}/nvidia-settings || die
496 fi
497 doexe ${NV_EXEC}/nvidia-bug-report.sh || die
498 if use kernel_linux; then
499 doexe ${NV_EXEC}/nvidia-smi || die
500 fi
501
502 # Desktop entries for nvidia-settings
503 if use tools && use kernel_linux ; then
504 sed -e 's:__UTILS_PATH__:/opt/bin:' \
505 -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' \
506 -i "${NV_EXEC}/nvidia-settings.desktop"
507 newmenu ${NV_EXEC}/nvidia-settings.desktop nvidia-settings-opt.desktop
508 fi
509
510 doicon ${NV_EXEC}/nvidia-settings.png
511
512 if has_multilib_profile && use multilib ; then
513 local OABI=${ABI}
514 for ABI in $(get_install_abis) ; do
515 src_install-libs
516 done
517 ABI=${OABI}
518 unset OABI
519 else
520 src_install-libs
521 fi
522
523 is_final_abi || die "failed to iterate through all ABIs"
524 }
525
526 # Install nvidia library:
527 # the first parameter is the place where to install it
528 # the second parameter is the base name of the library
529 # the third parameter is the provided soversion
530 donvidia() {
531 dodir $1
532 exeinto $1
533
534 libname=$(basename $2)
535
536 doexe $2.$3 || die "failed to install $2"
537 dosym ${libname}.$3 $1/${libname} || die "failed to symlink $2"
538 [[ $3 != "1" ]] && dosym ${libname}.$3 $1/${libname}.1
539 }
540
541 src_install-libs() {
542 local inslibdir=$(get_libdir)
543 local NV_ROOT="/usr/${inslibdir}/opengl/nvidia"
544 local CL_ROOT=/usr/${inslibdir}/OpenCL/vendors/nvidia
545 local libdir= sover=
546
547 if use kernel_linux; then
548 if has_multilib_profile && [[ ${ABI} == "x86" ]] ; then
549 libdir=32
550 else
551 libdir=.
552 fi
553 sover=${PV}
554 else
555 libdir=obj
556 # on FreeBSD it has just .1 suffix
557 sover=1
558 fi
559
560 # The GLX libraries
561 donvidia ${NV_ROOT}/lib ${libdir}/libGL.so ${sover}
562 donvidia /usr/${inslibdir} ${libdir}/libnvidia-glcore.so ${sover}
563 if use kernel_FreeBSD; then
564 donvidia ${NV_ROOT}/lib ${libdir}/libnvidia-tls.so ${sover}
565 else
566 donvidia ${NV_ROOT}/lib ${libdir}/tls/libnvidia-tls.so ${sover}
567 fi
568
569 # VDPAU
570 donvidia /usr/${inslibdir} ${libdir}/libvdpau_nvidia.so ${sover}
571
572 # CUDA & OpenCL
573 if use kernel_linux; then
574 donvidia /usr/${inslibdir} ${libdir}/libcuda.so ${sover}
575 donvidia /usr/${inslibdir} ${libdir}/libnvidia-compiler.so ${sover}
576 donvidia ${CL_ROOT} ${libdir}/libOpenCL.so 1.0.0
577 #dosym libOpenCL.so.1 ${CL_ROOT}/libOpenCL.so
578 fi
579 }
580
581 pkg_preinst() {
582 use kernel_linux && linux-mod_pkg_preinst
583
584 # Clean the dynamic libGL stuff's home to ensure
585 # we dont have stale libs floating around
586 if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
587 rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
588 fi
589 # Make sure we nuke the old nvidia-glx's env.d file
590 if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
591 rm -f "${ROOT}"/etc/env.d/09nvidia
592 fi
593 }
594
595 pkg_postinst() {
596 use kernel_linux && linux-mod_pkg_postinst
597
598 # Switch to the nvidia implementation
599 "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
600 "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
601
602 elog "You must be in the video group to use the NVIDIA device"
603 elog "For more info, read the docs at"
604 elog "http://www.gentoo.org/doc/en/nvidia-guide.xml#doc_chap3_sect6"
605 elog
606 elog "This ebuild installs a kernel module and X driver. Both must"
607 elog "match explicitly in their version. This means, if you restart"
608 elog "X, you must modprobe -r nvidia before starting it back up"
609 elog
610 elog "To use the NVIDIA GLX, run \"eselect opengl set nvidia\""
611 elog
612 elog "To use the NVIDIA CUDA/OpenCL, run \"eselect opencl set nvidia\""
613 elog
614 elog "NVIDIA has requested that any bug reports submitted have the"
615 elog "output of /opt/bin/nvidia-bug-report.sh included."
616 elog
617 if ! use tools; then
618 elog "USE=tools controls whether the nvidia-settings application"
619 elog "is installed. If you would like to use it, enable that"
620 elog "flag and re-emerge this ebuild. Optionally you can install"
621 elog "media-video/nvidia-settings"
622 fi
623 }
624
625 pkg_prerm() {
626 "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
627 }
628
629 pkg_postrm() {
630 use kernel_linux && linux-mod_pkg_postrm
631 "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
632 }