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