Gentoo Archives: gentoo-commits

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