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