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-290.10.ebuild ChangeLog nvidia-drivers-275.36.ebuild
Date: Wed, 30 Nov 2011 17:00:11
Message-Id: 20111130165957.9E77E20034@flycatcher.gentoo.org
1 cardoe 11/11/30 16:59:57
2
3 Modified: ChangeLog
4 Added: nvidia-drivers-290.10.ebuild
5 nvidia-drivers-275.36.ebuild
6 Log:
7 Add new long lived version and official versions
8
9 (Portage version: 2.1.10.39/cvs/Linux x86_64)
10
11 Revision Changes Path
12 1.311 x11-drivers/nvidia-drivers/ChangeLog
13
14 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog?rev=1.311&view=markup
15 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog?rev=1.311&content-type=text/plain
16 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog?r1=1.310&r2=1.311
17
18 Index: ChangeLog
19 ===================================================================
20 RCS file: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v
21 retrieving revision 1.310
22 retrieving revision 1.311
23 diff -u -r1.310 -r1.311
24 --- ChangeLog 30 Nov 2011 16:35:07 -0000 1.310
25 +++ ChangeLog 30 Nov 2011 16:59:57 -0000 1.311
26 @@ -1,6 +1,13 @@
27 # ChangeLog for x11-drivers/nvidia-drivers
28 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
29 -# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.310 2011/11/30 16:35:07 cardoe Exp $
30 +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.311 2011/11/30 16:59:57 cardoe Exp $
31 +
32 +*nvidia-drivers-290.10 (30 Nov 2011)
33 +*nvidia-drivers-275.36 (30 Nov 2011)
34 +
35 + 30 Nov 2011; Doug Goldstein <cardoe@g.o>
36 + +nvidia-drivers-275.36.ebuild, +nvidia-drivers-290.10.ebuild:
37 + Add new long lived version and official versions
38
39 30 Nov 2011; Doug Goldstein <cardoe@g.o>
40 -nvidia-drivers-270.41.19.ebuild, -nvidia-drivers-285.05.09.ebuild:
41
42
43
44 1.1 x11-drivers/nvidia-drivers/nvidia-drivers-290.10.ebuild
45
46 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-290.10.ebuild?rev=1.1&view=markup
47 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-290.10.ebuild?rev=1.1&content-type=text/plain
48
49 Index: nvidia-drivers-290.10.ebuild
50 ===================================================================
51 # Copyright 1999-2011 Gentoo Foundation
52 # Distributed under the terms of the GNU General Public License v2
53 # $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-290.10.ebuild,v 1.1 2011/11/30 16:59:57 cardoe Exp $
54
55 EAPI="2"
56
57 inherit eutils multilib versionator linux-mod flag-o-matic nvidia-driver
58
59 X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
60 AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
61 X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${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 x86-fbsd? ( http://us.download.nvidia.com/XFree86/FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )"
68
69 LICENSE="NVIDIA"
70 SLOT="0"
71 KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
72 IUSE="acpi custom-cflags gtk multilib kernel_linux"
73 RESTRICT="strip"
74 EMULTILIB_PKG="true"
75
76 COMMON="<x11-base/xorg-server-1.11.99
77 kernel_linux? ( >=sys-libs/glibc-2.6.1 )
78 multilib? ( app-emulation/emul-linux-x86-xlibs )
79 >=app-admin/eselect-opengl-1.0.9
80 !<media-video/nvidia-settings-256.52"
81 DEPEND="${COMMON}
82 kernel_linux? ( virtual/linux-sources )"
83 RDEPEND="${COMMON}
84 x11-libs/libXvMC
85 acpi? ( sys-power/acpid )"
86 PDEPEND=">=x11-libs/libvdpau-0.3-r1
87 gtk? ( media-video/nvidia-settings )"
88
89 QA_TEXTRELS_x86="
90 usr/lib/libOpenCL.so.1.0.0
91 usr/lib/libXvMCNVIDIA.so.${PV}
92 usr/lib/libcuda.so.${PV}
93 usr/lib/libnvcuvid.so.${PV}
94 usr/lib/libnvidia-cfg.so.${PV}
95 usr/lib/libnvidia-compiler.so.${PV}
96 usr/lib/libnvidia-glcore.so.${PV}
97 usr/lib/libnvidia-ml.so.${PV}
98 usr/lib/libvdpau_nvidia.so.${PV}
99 usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
100 usr/lib/opengl/nvidia/lib/libGL.so.${PV}
101 usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV}
102 usr/lib/xorg/modules/drivers/nvidia_drv.so"
103
104 QA_TEXTRELS_x86_fbsd="boot/modules/nvidia.ko
105 usr/lib/opengl/nvidia/lib/libGL.so.1
106 usr/lib/libnvidia-glcore.so.1
107 usr/lib/libnvidia-cfg.so.1
108 usr/lib/libnvidia-ml.so.1
109 usr/lib/opengl/nvidia/extensions/libglx.so.1
110 usr/lib/xorg/modules/drivers/nvidia_drv.so"
111
112 QA_TEXTRELS_amd64="usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV}
113 usr/lib32/libnvidia-glcore.so.${PV}
114 usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
115 usr/lib32/libcuda.so.${PV}
116 usr/lib32/libvdpau_nvidia.so.${PV}
117 usr/lib32/libOpenCL.so.1.0.0
118 usr/lib32/libnvidia-compiler.so.${PV}"
119
120 QA_EXECSTACK_x86="usr/lib/opengl/nvidia/lib/libGL.so.${PV}
121 usr/lib/libnvidia-glcore.so.${PV}
122 usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
123 usr/lib64/libXvMCNVIDIA.so.${PV}
124 usr/lib/libXvMCNVIDIA.a:NVXVMC.o
125 usr/lib/libnvidia-compiler.so.${PV}
126 usr/lib/libvdpau_nvidia.so.${PV}
127 usr/lib/libcuda.so.${PV}
128 usr/lib/libOpenCL.so.1.0.0"
129
130 QA_EXECSTACK_amd64="usr/lib32/libnvidia-glcore.so.${PV}
131 usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
132 usr/lib32/libnvidia-compiler.so.${PV}
133 usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV}
134 usr/lib32/libvdpau_nvidia.so.${PV}
135 usr/lib32/libcuda.so.${PV}
136 usr/lib32/libOpenCL.so.1.0.0
137 usr/lib64/libnvidia-compiler.so.${PV}
138 usr/lib64/libXvMCNVIDIA.a:NVXVMC.o
139 usr/lib64/libnvidia-cfg.so.${PV}
140 usr/lib64/libnvidia-ml.so.${PV}
141 usr/lib64/libvdpau_nvidia.so.${PV}
142 usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV}
143 usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
144 usr/lib64/libnvidia-glcore.so.${PV}
145 usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
146 usr/lib64/libXvMCNVIDIA.so.${PV}
147 usr/lib64/libcuda.so.${PV}
148 usr/lib64/libOpenCL.so.1.0.0
149 usr/lib64/xorg/modules/drivers/nvidia_drv.so
150 usr/bin/nvidia-smi
151 usr/bin/nvidia-xconfig
152 usr/bin/nvidia-settings"
153
154 QA_WX_LOAD_x86="usr/lib/libnvidia-glcore.so.${PV}
155 usr/lib/opengl/nvidia/lib/libGL.so.${PV}
156 usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
157 usr/lib/libXvMCNVIDIA.a
158 usr/lib64/libXvMCNVIDIA.so.${PV}"
159
160 QA_WX_LOAD_amd64="usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
161 usr/lib32/libnvidia-glcore.so.${PV}
162 usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
163 usr/lib64/libnvidia-glcore.so.${PV}
164 usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
165 usr/lib64/libXvMCNVIDIA.so.${PV}"
166
167 QA_SONAME_x86="usr/lib/libnvidia-compiler.so.${PV}"
168
169 QA_SONAME_amd64="usr/lib64/libnvidia-compiler.so.${PV}
170 usr/lib32/libnvidia-compiler.so.${PV}"
171
172 QA_DT_HASH_amd64="usr/lib32/libcuda.so.${PV}
173 usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
174 usr/lib32/libnvidia-glcore.so.${PV}
175 usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV}
176 usr/lib32/libvdpau_nvidia.so.${PV}
177 usr/lib32/libOpenCL.so.1.0.0
178 usr/lib32/libnvidia-compiler.so.${PV}
179 usr/lib64/libXvMCNVIDIA.so.${PV}
180 usr/lib64/libcuda.so.${PV}
181 usr/lib64/libnvidia-cfg.so.${PV}
182 usr/lib64/libnvidia-glcore.so.${PV}
183 usr/lib64/libnvidia-ml.so.${PV}
184 usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
185 usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV}
186 usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
187 usr/lib64/xorg/modules/drivers/nvidia_drv.so
188 usr/lib64/libvdpau_nvidia.so.${PV}
189 usr/lib64/libOpenCL.so.1.0.0
190 usr/lib64/libnvidia-compiler.so.${PV}
191 usr/lib64/libnvcuvid.so.${PV}
192 usr/bin/nvidia-smi
193 usr/bin/nvidia-xconfig
194 usr/bin/nvidia-settings"
195
196 QA_DT_HASH_x86="usr/lib/libcuda.so.${PV}
197 usr/lib/libnvidia-cfg.so.${PV}
198 usr/lib/libnvidia-glcore.so.${PV}
199 usr/lib/libnvidia-ml.so.${PV}
200 usr/lib/opengl/nvidia/lib/libGL.so.${PV}
201 usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV}
202 usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
203 usr/lib/xorg/modules/drivers/nvidia_drv.so
204 usr/lib/libXvMCNVIDIA.so.${PV}
205 usr/lib/libvdpau_nvidia.so.${PV}
206 usr/lib/libOpenCL.so.1.0.0
207 usr/lib/libnvidia-compiler.so.${PV}
208 usr/lib/libnvcuvid.so.${PV}
209 usr/bin/nvidia-smi
210 usr/bin/nvidia-xconfig
211 usr/bin/nvidia-settings"
212
213 S="${WORKDIR}/"
214
215 mtrr_check() {
216 ebegin "Checking for MTRR support"
217 linux_chkconfig_present MTRR
218 eend $?
219
220 if [[ $? -ne 0 ]] ; then
221 eerror "Please enable MTRR support in your kernel config, found at:"
222 eerror
223 eerror " Processor type and features"
224 eerror " [*] MTRR (Memory Type Range Register) support"
225 eerror
226 eerror "and recompile your kernel ..."
227 die "MTRR support not detected!"
228 fi
229 }
230
231 lockdep_check() {
232 if linux_chkconfig_present LOCKDEP; then
233 eerror "You've enabled LOCKDEP -- lock tracking -- in the kernel."
234 eerror "Unfortunately, this option exports the symbol "
235 eerror "'lockdep_init_map' as GPL-only which will prevent "
236 eerror "${P} from compiling."
237 eerror "Please make sure the following options have been unset:"
238 eerror
239 eerror " Kernel hacking --->"
240 eerror " [ ] Lock debugging: detect incorrect freeing of live locks"
241 eerror " [ ] Lock debugging: prove locking correctness"
242 eerror " [ ] Lock usage statistics"
243 eerror "in 'menuconfig'"
244 die "LOCKDEP enabled"
245 fi
246 }
247
248 pkg_setup() {
249 # try to turn off distcc and ccache for people that have a problem with it
250 export DISTCC_DISABLE=1
251 export CCACHE_DISABLE=1
252
253 if use amd64 && has_multilib_profile && [ "${DEFAULT_ABI}" != "amd64" ]; then
254 eerror "This ebuild doesn't currently support changing your default abi."
255 die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
256 fi
257
258 if use kernel_linux; then
259 linux-mod_pkg_setup
260 MODULE_NAMES="nvidia(video:${S}/kernel)"
261 BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
262 SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
263 mtrr_check
264 lockdep_check
265 fi
266
267 # On BSD userland it wants real make command
268 use userland_BSD && MAKE="$(get_bmake)"
269
270 export _POSIX2_VERSION="199209"
271
272 # Since Nvidia ships 3 different series of drivers, we need to give the user
273 # some kind of guidance as to what version they should install. This tries
274 # to point the user in the right direction but can't be perfect. check
275 # nvidia-driver.eclass
276 nvidia-driver-check-warning
277
278 # set variables to where files are in the package structure
279 if use kernel_FreeBSD; then
280 NV_DOC="${S}/doc"
281 NV_EXEC="${S}/obj"
282 NV_LIB="${S}/obj"
283 NV_SRC="${S}/src"
284 NV_MAN="${S}/x11/man"
285 NV_X11="${S}/obj"
286 NV_X11_DRV="${NV_X11}"
287 NV_X11_EXT="${NV_X11}"
288 NV_SOVER=1
289 elif use kernel_linux; then
290 NV_DOC="${S}"
291 NV_EXEC="${S}"
292 NV_LIB="${S}"
293 NV_SRC="${S}/kernel"
294 NV_MAN="${S}"
295 NV_X11="${S}"
296 NV_X11_DRV="${NV_X11}"
297 NV_X11_EXT="${NV_X11}"
298 NV_SOVER=${PV}
299 else
300 die "Could not determine proper NVIDIA package"
301 fi
302 }
303
304 src_unpack() {
305 if use kernel_linux && kernel_is lt 2 6 7; then
306 echo
307 ewarn "Your kernel version is ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
308 ewarn "This is not officially supported for ${P}. It is likely you"
309 ewarn "will not be able to compile or use the kernel module."
310 ewarn "It is recommended that you upgrade your kernel to a version >= 2.6.7"
311 echo
312 ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored."
313 fi
314
315 if ! use x86-fbsd; then
316 cd "${S}"
317 unpack_makeself
318 else
319 unpack ${A}
320 fi
321 }
322
323 src_prepare() {
324 # Please add a brief description for every added patch
325 use x86-fbsd && cd doc
326
327 if use kernel_linux; then
328 # Quiet down warnings the user does not need to see
329 sed -i \
330 -e 's:-Wsign-compare::g' \
331 "${NV_SRC}"/Makefile.kbuild
332
333 epatch "${FILESDIR}"/256.35-unified-arch.patch
334
335 # If you set this then it's your own fault when stuff breaks :)
336 use custom-cflags && sed -i "s:-O:${CFLAGS}:" "${NV_SRC}"/Makefile.*
337
338 # If greater than 2.6.5 use M= instead of SUBDIR=
339 convert_to_m "${NV_SRC}"/Makefile.kbuild
340 fi
341 }
342
343 src_compile() {
344 # This is already the default on Linux, as there's no toplevel Makefile, but
345 # on FreeBSD there's one and triggers the kernel module build, as we install
346 # it by itself, pass this.
347
348 cd "${NV_SRC}"
349 if use x86-fbsd; then
350 MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
351 LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
352 elif use kernel_linux; then
353 linux-mod_src_compile
354 fi
355 }
356
357 src_install() {
358 if use kernel_linux; then
359 linux-mod_src_install
360
361 VIDEOGROUP="$(egetent group video | cut -d ':' -f 3)"
362 if [ -z "$VIDEOGROUP" ]; then
363 eerror "Failed to determine the video group gid."
364 die "Failed to determine the video group gid."
365 fi
366
367 # Add the aliases
368 [ -f "${FILESDIR}/nvidia-169.07" ] || die "nvidia missing in FILESDIR"
369 sed -e 's:PACKAGE:'${PF}':g' \
370 -e 's:VIDEOGID:'${VIDEOGROUP}':' "${FILESDIR}"/nvidia-169.07 > \
371 "${WORKDIR}"/nvidia
372 insinto /etc/modprobe.d
373 newins "${WORKDIR}"/nvidia nvidia.conf || die
374 elif use x86-fbsd; then
375 insinto /boot/modules
376 doins "${WORKDIR}/${NV_PACKAGE}/src/nvidia.kld" || die
377
378 exeinto /boot/modules
379 doexe "${WORKDIR}/${NV_PACKAGE}/src/nvidia.ko" || die
380 fi
381
382 # NVIDIA kernel <-> userspace driver config lib
383 dolib.so ${NV_LIB}/libnvidia-cfg.so.${NV_SOVER} || \
384 die "failed to install libnvidia-cfg"
385 dosym libnvidia-cfg.so.${NV_SOVER} \
386 /usr/$(get_libdir)/libnvidia-cfg.so.1 || \
387 die "failed to create libnvidia-cfg.so symlink"
388 dosym libnvidia-cfg.so.1 \
389 /usr/$(get_libdir)/libnvidia-cfg.so || \
390 die "failed to create libnvidia-cfg.so symlink"
391
392 # NVIDIA monitoring library
393 dolib.so ${NV_LIB}/libnvidia-ml.so.${NV_SOVER} || \
394 die "failed to install libnvidia-ml"
395 dosym libnvidia-ml.so.${NV_SOVER} \
396 /usr/$(get_libdir)/libnvidia-ml.so.1 || \
397 die "failed to create libnvidia-ml.so symlink"
398 dosym libnvidia-ml.so.1 \
399 /usr/$(get_libdir)/libnvidia-ml.so || \
400 die "failed to create libnvidia-ml.so symlink"
401
402 # NVIDIA video decode <-> CUDA
403 dolib.so ${NV_LIB}/libnvcuvid.so.${NV_SOVER} || \
404 die "failed to install libnvcuvid.so"
405 dosym libnvcuvid.so.${NV_SOVER} \
406 /usr/$(get_libdir)/libnvcuvid.so.1 || \
407 die "failed to create libnvcuvid.so symlink"
408 dosym libnvcuvid.so.1 \
409 /usr/$(get_libdir)/libnvcuvid.so || \
410 die "failed to create libnvcuvid.so symlink"
411
412 # Xorg DDX driver
413 insinto /usr/$(get_libdir)/xorg/modules/drivers
414 doins ${NV_X11_DRV}/nvidia_drv.so || die "failed to install nvidia_drv.so"
415
416 # Xorg GLX driver
417 insinto /usr/$(get_libdir)/opengl/nvidia/extensions
418 doins ${NV_X11_EXT}/libglx.so.${NV_SOVER} || \
419 die "failed to install libglx.so"
420 dosym libglx.so.${NV_SOVER} \
421 /usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so || \
422 die "failed to create libglx.so symlink"
423
424 # XvMC driver
425 dolib.a ${NV_X11}/libXvMCNVIDIA.a || \
426 die "failed to install libXvMCNVIDIA.so"
427 dolib.so ${NV_X11}/libXvMCNVIDIA.so.${NV_SOVER} || \
428 die "failed to install libXvMCNVIDIA.so"
429 dosym libXvMCNVIDIA.so.${NV_SOVER} \
430 /usr/$(get_libdir)/libXvMCNVIDIA.so.1 || \
431 die "failed to create libXvMCNVIDIA.so symlink"
432 dosym libXvMCNVIDIA.so.1 /usr/$(get_libdir)/libXvMCNVIDIA.so || \
433 die "failed to create libXvMCNVIDIA.so symlink"
434 dosym libXvMCNVIDIA.so.${NV_SOVER} \
435 /usr/$(get_libdir)/libXvMCNVIDIA_dynamic.so.1 || \
436 die "failed to create libXvMCNVIDIA_dynamic.so symlink"
437
438 # OpenCL ICD for NVIDIA
439 if use kernel_linux; then
440 dodir /etc/OpenCL/vendors
441 insinto /etc/OpenCL/vendors
442 doins nvidia.icd
443 fi
444
445 # Documentation
446 dohtml ${NV_DOC}/html/*
447 if use x86-fbsd; then
448 dodoc "${NV_DOC}/README"
449 doman "${NV_MAN}/nvidia-xconfig.1"
450 use gtk && doman "${NV_MAN}/nvidia-settings.1"
451 else
452 # Docs
453 newdoc "${NV_DOC}/README.txt" README
454 dodoc "${NV_DOC}/NVIDIA_Changelog"
455 doman "${NV_MAN}/nvidia-smi.1.gz"
456 doman "${NV_MAN}/nvidia-xconfig.1.gz"
457 use gtk && doman "${NV_MAN}/nvidia-settings.1.gz"
458 fi
459
460 # Helper Apps
461 dobin ${NV_EXEC}/nvidia-xconfig || die
462 if use gtk; then
463 dobin ${NV_EXEC}/nvidia-settings || die
464 fi
465 dobin ${NV_EXEC}/nvidia-bug-report.sh || die
466 if use kernel_linux; then
467 dobin ${NV_EXEC}/nvidia-smi || die
468 fi
469
470 # Desktop entries for nvidia-settings
471 if use gtk; then
472 sed -e 's:__UTILS_PATH__:/usr/bin:' \
473 -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' \
474 -i "${NV_EXEC}/nvidia-settings.desktop"
475 domenu ${NV_EXEC}/nvidia-settings.desktop
476
477 doicon ${NV_EXEC}/nvidia-settings.png
478 fi
479
480 if has_multilib_profile ; then
481 local OABI=${ABI}
482 for ABI in $(get_install_abis) ; do
483 src_install-libs
484 done
485 ABI=${OABI}
486 unset OABI
487 else
488 src_install-libs
489 fi
490
491 is_final_abi || die "failed to iterate through all ABIs"
492 }
493
494 # Install nvidia library:
495 # the first parameter is the place where to install it
496 # the second parameter is the base name of the library
497 # the third parameter is the provided soversion
498 donvidia() {
499 dodir $1
500 exeinto $1
501
502 libname=$(basename $2)
503
504 doexe $2.$3 || die "failed to install $2"
505 dosym ${libname}.$3 $1/${libname} || die "failed to symlink $2"
506 [[ $3 != "1" ]] && dosym ${libname}.$3 $1/${libname}.1
507 }
508
509 src_install-libs() {
510 local inslibdir=$(get_libdir)
511 local NV_ROOT="/usr/${inslibdir}/opengl/nvidia"
512 local libdir= sover=
513
514 if use kernel_linux; then
515 if has_multilib_profile && [[ ${ABI} == "x86" ]] ; then
516 libdir=32
517 else
518 libdir=.
519 fi
520 sover=${PV}
521 else
522 libdir=obj
523 # on FreeBSD it has just .1 suffix
524 sover=1
525 fi
526
527 # The GLX libraries
528 donvidia ${NV_ROOT}/lib ${libdir}/libGL.so ${sover}
529 donvidia /usr/${inslibdir} ${libdir}/libnvidia-glcore.so ${sover}
530 if use x86-fbsd; then
531 donvidia ${NV_ROOT}/lib ${libdir}/libnvidia-tls.so ${sover}
532 else
533 donvidia ${NV_ROOT}/lib ${libdir}/tls/libnvidia-tls.so ${sover}
534 fi
535
536 # VDPAU
537 donvidia /usr/${inslibdir} ${libdir}/libvdpau_nvidia.so ${sover}
538
539 # CUDA & OpenCL
540 if use kernel_linux; then
541 donvidia /usr/${inslibdir} ${libdir}/libcuda.so ${sover}
542 donvidia /usr/${inslibdir} ${libdir}/libnvidia-compiler.so ${sover}
543 donvidia /usr/${inslibdir} ${libdir}/libOpenCL.so 1.0.0
544 dosym libOpenCL.so.1 /usr/${inslibdir}/libOpenCL.so
545 fi
546 }
547
548 pkg_preinst() {
549 if use kernel_linux; then
550 linux-mod_pkg_postinst
551 fi
552
553 # Clean the dynamic libGL stuff's home to ensure
554 # we dont have stale libs floating around
555 if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
556 rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
557 fi
558 # Make sure we nuke the old nvidia-glx's env.d file
559 if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
560 rm -f "${ROOT}"/etc/env.d/09nvidia
561 fi
562 }
563
564 pkg_postinst() {
565 if use kernel_linux; then
566 linux-mod_pkg_postinst
567 fi
568
569 # Switch to the nvidia implementation
570 eselect opengl set --use-old nvidia
571
572 echo
573 elog "You must be in the video group to use the NVIDIA device"
574 elog "For more info, read the docs at"
575 elog "http://www.gentoo.org/doc/en/nvidia-guide.xml#doc_chap3_sect6"
576 elog
577
578 elog "This ebuild installs a kernel module and X driver. Both must"
579 elog "match explicitly in their version. This means, if you restart"
580 elog "X, you must modprobe -r nvidia before starting it back up"
581 elog
582
583 elog "To use the NVIDIA GLX, run \"eselect opengl set nvidia\""
584 elog
585 elog "NVIDIA has requested that any bug reports submitted have the"
586 elog "output of /usr/bin/nvidia-bug-report.sh included."
587 elog
588 elog "To work with compiz, you must enable the AddARGBGLXVisuals option."
589 elog
590 elog "If you are having resolution problems, try disabling DynamicTwinView."
591 elog
592
593 if ! use gtk; then
594 elog "USE=gtk controls whether the nvidia-settings application"
595 elog "is installed. If you would like to use it, enable that"
596 elog "flag and re-emerge this ebuild. media-video/nvidia-settings"
597 elog "no longer installs nvidia-settings but only installs the"
598 elog "associated user space libraries."
599 fi
600 }
601
602 pkg_postrm() {
603 if use kernel_linux; then
604 linux-mod_pkg_postrm
605 fi
606 eselect opengl set --use-old xorg-x11
607 }
608
609
610
611 1.1 x11-drivers/nvidia-drivers/nvidia-drivers-275.36.ebuild
612
613 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-275.36.ebuild?rev=1.1&view=markup
614 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-275.36.ebuild?rev=1.1&content-type=text/plain
615
616 Index: nvidia-drivers-275.36.ebuild
617 ===================================================================
618 # Copyright 1999-2011 Gentoo Foundation
619 # Distributed under the terms of the GNU General Public License v2
620 # $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-275.36.ebuild,v 1.1 2011/11/30 16:59:57 cardoe Exp $
621
622 EAPI="2"
623
624 inherit eutils multilib versionator linux-mod flag-o-matic nvidia-driver
625
626 X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
627 AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
628 X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
629
630 DESCRIPTION="NVIDIA X11 driver and GLX libraries"
631 HOMEPAGE="http://www.nvidia.com/"
632 SRC_URI="x86? ( http://us.download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
633 amd64? ( http://us.download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
634 x86-fbsd? ( http://us.download.nvidia.com/XFree86/FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )"
635
636 LICENSE="NVIDIA"
637 SLOT="0"
638 KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
639 IUSE="acpi custom-cflags gtk multilib kernel_linux"
640 RESTRICT="strip"
641 EMULTILIB_PKG="true"
642
643 COMMON="<x11-base/xorg-server-1.11.99
644 kernel_linux? ( >=sys-libs/glibc-2.6.1 )
645 multilib? ( app-emulation/emul-linux-x86-xlibs )
646 >=app-admin/eselect-opengl-1.0.9
647 !<media-video/nvidia-settings-256.52"
648 DEPEND="${COMMON}
649 kernel_linux? ( virtual/linux-sources )"
650 RDEPEND="${COMMON}
651 x11-libs/libXvMC
652 acpi? ( sys-power/acpid )"
653 PDEPEND=">=x11-libs/libvdpau-0.3-r1
654 gtk? ( media-video/nvidia-settings )"
655
656 QA_TEXTRELS_x86="
657 usr/lib/libOpenCL.so.1.0.0
658 usr/lib/libXvMCNVIDIA.so.${PV}
659 usr/lib/libcuda.so.${PV}
660 usr/lib/libnvcuvid.so.${PV}
661 usr/lib/libnvidia-cfg.so.${PV}
662 usr/lib/libnvidia-compiler.so.${PV}
663 usr/lib/libnvidia-glcore.so.${PV}
664 usr/lib/libnvidia-ml.so.${PV}
665 usr/lib/libvdpau_nvidia.so.${PV}
666 usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
667 usr/lib/opengl/nvidia/lib/libGL.so.${PV}
668 usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV}
669 usr/lib/xorg/modules/drivers/nvidia_drv.so"
670
671 QA_TEXTRELS_x86_fbsd="boot/modules/nvidia.ko
672 usr/lib/opengl/nvidia/lib/libGL.so.1
673 usr/lib/libnvidia-glcore.so.1
674 usr/lib/libnvidia-cfg.so.1
675 usr/lib/libnvidia-ml.so.1
676 usr/lib/opengl/nvidia/extensions/libglx.so.1
677 usr/lib/xorg/modules/drivers/nvidia_drv.so"
678
679 QA_TEXTRELS_amd64="usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV}
680 usr/lib32/libnvidia-glcore.so.${PV}
681 usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
682 usr/lib32/libcuda.so.${PV}
683 usr/lib32/libvdpau_nvidia.so.${PV}
684 usr/lib32/libOpenCL.so.1.0.0
685 usr/lib32/libnvidia-compiler.so.${PV}"
686
687 QA_EXECSTACK_x86="usr/lib/opengl/nvidia/lib/libGL.so.${PV}
688 usr/lib/libnvidia-glcore.so.${PV}
689 usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
690 usr/lib64/libXvMCNVIDIA.so.${PV}
691 usr/lib/libXvMCNVIDIA.a:NVXVMC.o
692 usr/lib/libnvidia-compiler.so.${PV}
693 usr/lib/libvdpau_nvidia.so.${PV}
694 usr/lib/libcuda.so.${PV}
695 usr/lib/libOpenCL.so.1.0.0"
696
697 QA_EXECSTACK_amd64="usr/lib32/libnvidia-glcore.so.${PV}
698 usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
699 usr/lib32/libnvidia-compiler.so.${PV}
700 usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV}
701 usr/lib32/libvdpau_nvidia.so.${PV}
702 usr/lib32/libcuda.so.${PV}
703 usr/lib32/libOpenCL.so.1.0.0
704 usr/lib64/libnvidia-compiler.so.${PV}
705 usr/lib64/libXvMCNVIDIA.a:NVXVMC.o
706 usr/lib64/libnvidia-cfg.so.${PV}
707 usr/lib64/libnvidia-ml.so.${PV}
708 usr/lib64/libvdpau_nvidia.so.${PV}
709 usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV}
710 usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
711 usr/lib64/libnvidia-glcore.so.${PV}
712 usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
713 usr/lib64/libXvMCNVIDIA.so.${PV}
714 usr/lib64/libcuda.so.${PV}
715 usr/lib64/libOpenCL.so.1.0.0
716 usr/lib64/xorg/modules/drivers/nvidia_drv.so
717 usr/bin/nvidia-smi
718 usr/bin/nvidia-xconfig
719 usr/bin/nvidia-settings"
720
721 QA_WX_LOAD_x86="usr/lib/libnvidia-glcore.so.${PV}
722 usr/lib/opengl/nvidia/lib/libGL.so.${PV}
723 usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
724 usr/lib/libXvMCNVIDIA.a
725 usr/lib64/libXvMCNVIDIA.so.${PV}"
726
727 QA_WX_LOAD_amd64="usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
728 usr/lib32/libnvidia-glcore.so.${PV}
729 usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
730 usr/lib64/libnvidia-glcore.so.${PV}
731 usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
732 usr/lib64/libXvMCNVIDIA.so.${PV}"
733
734 QA_SONAME_x86="usr/lib/libnvidia-compiler.so.${PV}"
735
736 QA_SONAME_amd64="usr/lib64/libnvidia-compiler.so.${PV}
737 usr/lib32/libnvidia-compiler.so.${PV}"
738
739 QA_DT_HASH_amd64="usr/lib32/libcuda.so.${PV}
740 usr/lib32/opengl/nvidia/lib/libGL.so.${PV}
741 usr/lib32/libnvidia-glcore.so.${PV}
742 usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV}
743 usr/lib32/libvdpau_nvidia.so.${PV}
744 usr/lib32/libOpenCL.so.1.0.0
745 usr/lib32/libnvidia-compiler.so.${PV}
746 usr/lib64/libXvMCNVIDIA.so.${PV}
747 usr/lib64/libcuda.so.${PV}
748 usr/lib64/libnvidia-cfg.so.${PV}
749 usr/lib64/libnvidia-glcore.so.${PV}
750 usr/lib64/libnvidia-ml.so.${PV}
751 usr/lib64/opengl/nvidia/lib/libGL.so.${PV}
752 usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV}
753 usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}
754 usr/lib64/xorg/modules/drivers/nvidia_drv.so
755 usr/lib64/libvdpau_nvidia.so.${PV}
756 usr/lib64/libOpenCL.so.1.0.0
757 usr/lib64/libnvidia-compiler.so.${PV}
758 usr/lib64/libnvcuvid.so.${PV}
759 usr/bin/nvidia-smi
760 usr/bin/nvidia-xconfig
761 usr/bin/nvidia-settings"
762
763 QA_DT_HASH_x86="usr/lib/libcuda.so.${PV}
764 usr/lib/libnvidia-cfg.so.${PV}
765 usr/lib/libnvidia-glcore.so.${PV}
766 usr/lib/libnvidia-ml.so.${PV}
767 usr/lib/opengl/nvidia/lib/libGL.so.${PV}
768 usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV}
769 usr/lib/opengl/nvidia/extensions/libglx.so.${PV}
770 usr/lib/xorg/modules/drivers/nvidia_drv.so
771 usr/lib/libXvMCNVIDIA.so.${PV}
772 usr/lib/libvdpau_nvidia.so.${PV}
773 usr/lib/libOpenCL.so.1.0.0
774 usr/lib/libnvidia-compiler.so.${PV}
775 usr/lib/libnvcuvid.so.${PV}
776 usr/bin/nvidia-smi
777 usr/bin/nvidia-xconfig
778 usr/bin/nvidia-settings"
779
780 S="${WORKDIR}/"
781
782 mtrr_check() {
783 ebegin "Checking for MTRR support"
784 linux_chkconfig_present MTRR
785 eend $?
786
787 if [[ $? -ne 0 ]] ; then
788 eerror "Please enable MTRR support in your kernel config, found at:"
789 eerror
790 eerror " Processor type and features"
791 eerror " [*] MTRR (Memory Type Range Register) support"
792 eerror
793 eerror "and recompile your kernel ..."
794 die "MTRR support not detected!"
795 fi
796 }
797
798 lockdep_check() {
799 if linux_chkconfig_present LOCKDEP; then
800 eerror "You've enabled LOCKDEP -- lock tracking -- in the kernel."
801 eerror "Unfortunately, this option exports the symbol "
802 eerror "'lockdep_init_map' as GPL-only which will prevent "
803 eerror "${P} from compiling."
804 eerror "Please make sure the following options have been unset:"
805 eerror
806 eerror " Kernel hacking --->"
807 eerror " [ ] Lock debugging: detect incorrect freeing of live locks"
808 eerror " [ ] Lock debugging: prove locking correctness"
809 eerror " [ ] Lock usage statistics"
810 eerror "in 'menuconfig'"
811 die "LOCKDEP enabled"
812 fi
813 }
814
815 pkg_setup() {
816 # try to turn off distcc and ccache for people that have a problem with it
817 export DISTCC_DISABLE=1
818 export CCACHE_DISABLE=1
819
820 if use amd64 && has_multilib_profile && [ "${DEFAULT_ABI}" != "amd64" ]; then
821 eerror "This ebuild doesn't currently support changing your default abi."
822 die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
823 fi
824
825 if use kernel_linux; then
826 linux-mod_pkg_setup
827 MODULE_NAMES="nvidia(video:${S}/kernel)"
828 BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
829 SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
830 mtrr_check
831 lockdep_check
832 fi
833
834 # On BSD userland it wants real make command
835 use userland_BSD && MAKE="$(get_bmake)"
836
837 export _POSIX2_VERSION="199209"
838
839 # Since Nvidia ships 3 different series of drivers, we need to give the user
840 # some kind of guidance as to what version they should install. This tries
841 # to point the user in the right direction but can't be perfect. check
842 # nvidia-driver.eclass
843 nvidia-driver-check-warning
844
845 # set variables to where files are in the package structure
846 if use kernel_FreeBSD; then
847 NV_DOC="${S}/doc"
848 NV_EXEC="${S}/obj"
849 NV_LIB="${S}/obj"
850 NV_SRC="${S}/src"
851 NV_MAN="${S}/x11/man"
852 NV_X11="${S}/obj"
853 NV_X11_DRV="${NV_X11}"
854 NV_X11_EXT="${NV_X11}"
855 NV_SOVER=1
856 elif use kernel_linux; then
857 NV_DOC="${S}"
858 NV_EXEC="${S}"
859 NV_LIB="${S}"
860 NV_SRC="${S}/kernel"
861 NV_MAN="${S}"
862 NV_X11="${S}"
863 NV_X11_DRV="${NV_X11}"
864 NV_X11_EXT="${NV_X11}"
865 NV_SOVER=${PV}
866 else
867 die "Could not determine proper NVIDIA package"
868 fi
869 }
870
871 src_unpack() {
872 if use kernel_linux && kernel_is lt 2 6 7; then
873 echo
874 ewarn "Your kernel version is ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
875 ewarn "This is not officially supported for ${P}. It is likely you"
876 ewarn "will not be able to compile or use the kernel module."
877 ewarn "It is recommended that you upgrade your kernel to a version >= 2.6.7"
878 echo
879 ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored."
880 fi
881
882 if ! use x86-fbsd; then
883 cd "${S}"
884 unpack_makeself
885 else
886 unpack ${A}
887 fi
888 }
889
890 src_prepare() {
891 # Please add a brief description for every added patch
892 use x86-fbsd && cd doc
893
894 if use kernel_linux; then
895 # Quiet down warnings the user does not need to see
896 sed -i \
897 -e 's:-Wsign-compare::g' \
898 "${NV_SRC}"/Makefile.kbuild
899
900 epatch "${FILESDIR}"/256.35-unified-arch.patch
901
902 # If you set this then it's your own fault when stuff breaks :)
903 use custom-cflags && sed -i "s:-O:${CFLAGS}:" "${NV_SRC}"/Makefile.*
904
905 # If greater than 2.6.5 use M= instead of SUBDIR=
906 convert_to_m "${NV_SRC}"/Makefile.kbuild
907 fi
908 }
909
910 src_compile() {
911 # This is already the default on Linux, as there's no toplevel Makefile, but
912 # on FreeBSD there's one and triggers the kernel module build, as we install
913 # it by itself, pass this.
914
915 cd "${NV_SRC}"
916 if use x86-fbsd; then
917 MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
918 LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
919 elif use kernel_linux; then
920 linux-mod_src_compile
921 fi
922 }
923
924 src_install() {
925 if use kernel_linux; then
926 linux-mod_src_install
927
928 VIDEOGROUP="$(egetent group video | cut -d ':' -f 3)"
929 if [ -z "$VIDEOGROUP" ]; then
930 eerror "Failed to determine the video group gid."
931 die "Failed to determine the video group gid."
932 fi
933
934 # Add the aliases
935 [ -f "${FILESDIR}/nvidia-169.07" ] || die "nvidia missing in FILESDIR"
936 sed -e 's:PACKAGE:'${PF}':g' \
937 -e 's:VIDEOGID:'${VIDEOGROUP}':' "${FILESDIR}"/nvidia-169.07 > \
938 "${WORKDIR}"/nvidia
939 insinto /etc/modprobe.d
940 newins "${WORKDIR}"/nvidia nvidia.conf || die
941 elif use x86-fbsd; then
942 insinto /boot/modules
943 doins "${WORKDIR}/${NV_PACKAGE}/src/nvidia.kld" || die
944
945 exeinto /boot/modules
946 doexe "${WORKDIR}/${NV_PACKAGE}/src/nvidia.ko" || die
947 fi
948
949 # NVIDIA kernel <-> userspace driver config lib
950 dolib.so ${NV_LIB}/libnvidia-cfg.so.${NV_SOVER} || \
951 die "failed to install libnvidia-cfg"
952 dosym libnvidia-cfg.so.${NV_SOVER} \
953 /usr/$(get_libdir)/libnvidia-cfg.so.1 || \
954 die "failed to create libnvidia-cfg.so symlink"
955 dosym libnvidia-cfg.so.1 \
956 /usr/$(get_libdir)/libnvidia-cfg.so || \
957 die "failed to create libnvidia-cfg.so symlink"
958
959 # NVIDIA monitoring library
960 dolib.so ${NV_LIB}/libnvidia-ml.so.${NV_SOVER} || \
961 die "failed to install libnvidia-ml"
962 dosym libnvidia-ml.so.${NV_SOVER} \
963 /usr/$(get_libdir)/libnvidia-ml.so.1 || \
964 die "failed to create libnvidia-ml.so symlink"
965 dosym libnvidia-ml.so.1 \
966 /usr/$(get_libdir)/libnvidia-ml.so || \
967 die "failed to create libnvidia-ml.so symlink"
968
969 # NVIDIA video decode <-> CUDA
970 dolib.so ${NV_LIB}/libnvcuvid.so.${NV_SOVER} || \
971 die "failed to install libnvcuvid.so"
972 dosym libnvcuvid.so.${NV_SOVER} \
973 /usr/$(get_libdir)/libnvcuvid.so.1 || \
974 die "failed to create libnvcuvid.so symlink"
975 dosym libnvcuvid.so.1 \
976 /usr/$(get_libdir)/libnvcuvid.so || \
977 die "failed to create libnvcuvid.so symlink"
978
979 # Xorg DDX driver
980 insinto /usr/$(get_libdir)/xorg/modules/drivers
981 doins ${NV_X11_DRV}/nvidia_drv.so || die "failed to install nvidia_drv.so"
982
983 # Xorg GLX driver
984 insinto /usr/$(get_libdir)/opengl/nvidia/extensions
985 doins ${NV_X11_EXT}/libglx.so.${NV_SOVER} || \
986 die "failed to install libglx.so"
987 dosym libglx.so.${NV_SOVER} \
988 /usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so || \
989 die "failed to create libglx.so symlink"
990
991 # XvMC driver
992 dolib.a ${NV_X11}/libXvMCNVIDIA.a || \
993 die "failed to install libXvMCNVIDIA.so"
994 dolib.so ${NV_X11}/libXvMCNVIDIA.so.${NV_SOVER} || \
995 die "failed to install libXvMCNVIDIA.so"
996 dosym libXvMCNVIDIA.so.${NV_SOVER} \
997 /usr/$(get_libdir)/libXvMCNVIDIA.so.1 || \
998 die "failed to create libXvMCNVIDIA.so symlink"
999 dosym libXvMCNVIDIA.so.1 /usr/$(get_libdir)/libXvMCNVIDIA.so || \
1000 die "failed to create libXvMCNVIDIA.so symlink"
1001 dosym libXvMCNVIDIA.so.${NV_SOVER} \
1002 /usr/$(get_libdir)/libXvMCNVIDIA_dynamic.so.1 || \
1003 die "failed to create libXvMCNVIDIA_dynamic.so symlink"
1004
1005 # OpenCL ICD for NVIDIA
1006 if use kernel_linux; then
1007 dodir /etc/OpenCL/vendors
1008 insinto /etc/OpenCL/vendors
1009 doins nvidia.icd
1010 fi
1011
1012 # Documentation
1013 dohtml ${NV_DOC}/html/*
1014 if use x86-fbsd; then
1015 dodoc "${NV_DOC}/README"
1016 doman "${NV_MAN}/nvidia-xconfig.1"
1017 use gtk && doman "${NV_MAN}/nvidia-settings.1"
1018 else
1019 # Docs
1020 newdoc "${NV_DOC}/README.txt" README
1021 dodoc "${NV_DOC}/NVIDIA_Changelog"
1022 doman "${NV_MAN}/nvidia-smi.1.gz"
1023 doman "${NV_MAN}/nvidia-xconfig.1.gz"
1024 use gtk && doman "${NV_MAN}/nvidia-settings.1.gz"
1025 fi
1026
1027 # Helper Apps
1028 dobin ${NV_EXEC}/nvidia-xconfig || die
1029 if use gtk; then
1030 dobin ${NV_EXEC}/nvidia-settings || die
1031 fi
1032 dobin ${NV_EXEC}/nvidia-bug-report.sh || die
1033 if use kernel_linux; then
1034 dobin ${NV_EXEC}/nvidia-smi || die
1035 fi
1036
1037 # Desktop entries for nvidia-settings
1038 if use gtk; then
1039 sed -e 's:__UTILS_PATH__:/usr/bin:' \
1040 -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' \
1041 -i "${NV_EXEC}/nvidia-settings.desktop"
1042 domenu ${NV_EXEC}/nvidia-settings.desktop
1043
1044 doicon ${NV_EXEC}/nvidia-settings.png
1045 fi
1046
1047 if has_multilib_profile ; then
1048 local OABI=${ABI}
1049 for ABI in $(get_install_abis) ; do
1050 src_install-libs
1051 done
1052 ABI=${OABI}
1053 unset OABI
1054 else
1055 src_install-libs
1056 fi
1057
1058 is_final_abi || die "failed to iterate through all ABIs"
1059 }
1060
1061 # Install nvidia library:
1062 # the first parameter is the place where to install it
1063 # the second parameter is the base name of the library
1064 # the third parameter is the provided soversion
1065 donvidia() {
1066 dodir $1
1067 exeinto $1
1068
1069 libname=$(basename $2)
1070
1071 doexe $2.$3 || die "failed to install $2"
1072 dosym ${libname}.$3 $1/${libname} || die "failed to symlink $2"
1073 [[ $3 != "1" ]] && dosym ${libname}.$3 $1/${libname}.1
1074 }
1075
1076 src_install-libs() {
1077 local inslibdir=$(get_libdir)
1078 local NV_ROOT="/usr/${inslibdir}/opengl/nvidia"
1079 local libdir= sover=
1080
1081 if use kernel_linux; then
1082 if has_multilib_profile && [[ ${ABI} == "x86" ]] ; then
1083 libdir=32
1084 else
1085 libdir=.
1086 fi
1087 sover=${PV}
1088 else
1089 libdir=obj
1090 # on FreeBSD it has just .1 suffix
1091 sover=1
1092 fi
1093
1094 # The GLX libraries
1095 donvidia ${NV_ROOT}/lib ${libdir}/libGL.so ${sover}
1096 donvidia /usr/${inslibdir} ${libdir}/libnvidia-glcore.so ${sover}
1097 if use x86-fbsd; then
1098 donvidia ${NV_ROOT}/lib ${libdir}/libnvidia-tls.so ${sover}
1099 else
1100 donvidia ${NV_ROOT}/lib ${libdir}/tls/libnvidia-tls.so ${sover}
1101 fi
1102
1103 # VDPAU
1104 donvidia /usr/${inslibdir} ${libdir}/libvdpau_nvidia.so ${sover}
1105
1106 # CUDA & OpenCL
1107 if use kernel_linux; then
1108 donvidia /usr/${inslibdir} ${libdir}/libcuda.so ${sover}
1109 donvidia /usr/${inslibdir} ${libdir}/libnvidia-compiler.so ${sover}
1110 donvidia /usr/${inslibdir} ${libdir}/libOpenCL.so 1.0.0
1111 dosym libOpenCL.so.1 /usr/${inslibdir}/libOpenCL.so
1112 fi
1113 }
1114
1115 pkg_preinst() {
1116 if use kernel_linux; then
1117 linux-mod_pkg_postinst
1118 fi
1119
1120 # Clean the dynamic libGL stuff's home to ensure
1121 # we dont have stale libs floating around
1122 if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
1123 rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
1124 fi
1125 # Make sure we nuke the old nvidia-glx's env.d file
1126 if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
1127 rm -f "${ROOT}"/etc/env.d/09nvidia
1128 fi
1129 }
1130
1131 pkg_postinst() {
1132 if use kernel_linux; then
1133 linux-mod_pkg_postinst
1134 fi
1135
1136 # Switch to the nvidia implementation
1137 eselect opengl set --use-old nvidia
1138
1139 echo
1140 elog "You must be in the video group to use the NVIDIA device"
1141 elog "For more info, read the docs at"
1142 elog "http://www.gentoo.org/doc/en/nvidia-guide.xml#doc_chap3_sect6"
1143 elog
1144
1145 elog "This ebuild installs a kernel module and X driver. Both must"
1146 elog "match explicitly in their version. This means, if you restart"
1147 elog "X, you must modprobe -r nvidia before starting it back up"
1148 elog
1149
1150 elog "To use the NVIDIA GLX, run \"eselect opengl set nvidia\""
1151 elog
1152 elog "NVIDIA has requested that any bug reports submitted have the"
1153 elog "output of /usr/bin/nvidia-bug-report.sh included."
1154 elog
1155 elog "To work with compiz, you must enable the AddARGBGLXVisuals option."
1156 elog
1157 elog "If you are having resolution problems, try disabling DynamicTwinView."
1158 elog
1159
1160 if ! use gtk; then
1161 elog "USE=gtk controls whether the nvidia-settings application"
1162 elog "is installed. If you would like to use it, enable that"
1163 elog "flag and re-emerge this ebuild. media-video/nvidia-settings"
1164 elog "no longer installs nvidia-settings but only installs the"
1165 elog "associated user space libraries."
1166 fi
1167 }
1168
1169 pkg_postrm() {
1170 if use kernel_linux; then
1171 linux-mod_pkg_postrm
1172 fi
1173 eselect opengl set --use-old xorg-x11
1174 }