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-334.16.ebuild
Date: Fri, 07 Feb 2014 14:43:34
Message-Id: 20140207144329.D41A42004C@flycatcher.gentoo.org
1 jer 14/02/07 14:43:29
2
3 Modified: ChangeLog
4 Added: nvidia-drivers-334.16.ebuild
5 Log:
6 Version bump.
7
8 (Portage version: 2.2.8-r1/cvs/Linux x86_64, signed Manifest commit with key A792A613)
9
10 Revision Changes Path
11 1.518 x11-drivers/nvidia-drivers/ChangeLog
12
13 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog?rev=1.518&view=markup
14 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog?rev=1.518&content-type=text/plain
15 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog?r1=1.517&r2=1.518
16
17 Index: ChangeLog
18 ===================================================================
19 RCS file: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v
20 retrieving revision 1.517
21 retrieving revision 1.518
22 diff -u -r1.517 -r1.518
23 --- ChangeLog 5 Feb 2014 11:31:51 -0000 1.517
24 +++ ChangeLog 7 Feb 2014 14:43:29 -0000 1.518
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.517 2014/02/05 11:31:51 jer Exp $
29 +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.518 2014/02/07 14:43:29 jer Exp $
30 +
31 +*nvidia-drivers-334.16 (07 Feb 2014)
32 +
33 + 07 Feb 2014; Jeroen Roovers <jer@g.o> +nvidia-drivers-334.16.ebuild:
34 + Version bump.
35
36 05 Feb 2014; Jeroen Roovers <jer@g.o> -nvidia-drivers-304.117.ebuild,
37 nvidia-drivers-304.119.ebuild:
38
39
40
41 1.1 x11-drivers/nvidia-drivers/nvidia-drivers-334.16.ebuild
42
43 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-334.16.ebuild?rev=1.1&view=markup
44 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-334.16.ebuild?rev=1.1&content-type=text/plain
45
46 Index: nvidia-drivers-334.16.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-334.16.ebuild,v 1.1 2014/02/07 14:43:29 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 X11 driver and GLX libraries"
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-r1"
73 SLOT="0"
74 KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
75 IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel +tools +X"
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.15.99
105 >=x11-libs/libvdpau-0.3-r1
106 multilib? (
107 || (
108 (
109 x11-libs/libX11[abi_x86_32]
110 x11-libs/libXext[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 13 ; 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.13"
136 ewarn "<sys-kernel/vanilla-sources-3.13"
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 linux-mod_pkg_setup
166 MODULE_NAMES="nvidia(video:${S}/kernel)"
167 BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
168 SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
169 # linux-mod_src_compile calls set_arch_to_kernel, which
170 # sets the ARCH to x86 but NVIDIA's wrapping Makefile
171 # expects x86_64 or i386 and then converts it to x86
172 # later on in the build process
173 BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
174 fi
175
176 # set variables to where files are in the package structure
177 if use kernel_FreeBSD; then
178 use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
179 use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
180 NV_DOC="${S}/doc"
181 NV_OBJ="${S}/obj"
182 NV_SRC="${S}/src"
183 NV_MAN="${S}/x11/man"
184 NV_X11="${S}/obj"
185 NV_SOVER=1
186 elif use kernel_linux; then
187 NV_DOC="${S}"
188 NV_OBJ="${S}"
189 NV_SRC="${S}/kernel"
190 NV_MAN="${S}"
191 NV_X11="${S}"
192 NV_SOVER=${PV}
193 else
194 die "Could not determine proper NVIDIA package"
195 fi
196 }
197
198 src_unpack() {
199 if ! use kernel_FreeBSD; then
200 cd "${S}"
201 unpack_makeself
202 else
203 unpack ${A}
204 fi
205 }
206
207 src_prepare() {
208 # Please add a brief description for every added patch
209
210 if use kernel_linux; then
211 if kernel_is lt 2 6 9 ; then
212 eerror "You must build this against 2.6.9 or higher kernels."
213 fi
214
215 # If greater than 2.6.5 use M= instead of SUBDIR=
216 # convert_to_m "${NV_SRC}"/Makefile.kbuild
217 fi
218
219 if use pax_kernel; then
220 ewarn "Using PAX patches is not supported. You will be asked to"
221 ewarn "use a standard kernel should you have issues. Should you"
222 ewarn "need support with these patches, contact the PaX team."
223 epatch "${FILESDIR}"/${PN}-331.13-pax-usercopy.patch
224 fi
225
226 # Allow user patches so they can support RC kernels and whatever else
227 epatch_user
228 }
229
230 src_compile() {
231 # This is already the default on Linux, as there's no toplevel Makefile, but
232 # on FreeBSD there's one and triggers the kernel module build, as we install
233 # it by itself, pass this.
234
235 cd "${NV_SRC}"
236 if use kernel_FreeBSD; then
237 MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
238 LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
239 elif use kernel_linux; then
240 linux-mod_src_compile
241 fi
242 }
243
244 # Install nvidia library:
245 # the first parameter is the library to install
246 # the second parameter is the provided soversion
247 # the third parameter is the target directory if its not /usr/lib
248 donvidia() {
249 # Full path to library minus SOVER
250 MY_LIB="$1"
251
252 # SOVER to use
253 MY_SOVER="$2"
254
255 # Where to install
256 MY_DEST="$3"
257
258 if [[ -z "${MY_DEST}" ]]; then
259 MY_DEST="/usr/$(get_libdir)"
260 action="dolib.so"
261 else
262 exeinto ${MY_DEST}
263 action="doexe"
264 fi
265
266 # Get just the library name
267 libname=$(basename $1)
268
269 # Install the library with the correct SOVER
270 ${action} ${MY_LIB}.${MY_SOVER} || \
271 die "failed to install ${libname}"
272
273 # If SOVER wasn't 1, then we need to create a .1 symlink
274 if [[ "${MY_SOVER}" != "1" ]]; then
275 dosym ${libname}.${MY_SOVER} \
276 ${MY_DEST}/${libname}.1 || \
277 die "failed to create ${libname} symlink"
278 fi
279
280 # Always create the symlink from the raw lib to the .1
281 dosym ${libname}.1 \
282 ${MY_DEST}/${libname} || \
283 die "failed to create ${libname} symlink"
284 }
285
286 src_install() {
287 if use kernel_linux; then
288 linux-mod_src_install
289
290 # Add the aliases
291 # This file is tweaked with the appropriate video group in
292 # pkg_preinst, see bug #491414
293 insinto /etc/modprobe.d
294 newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
295
296 # Ensures that our device nodes are created when not using X
297 exeinto "$(udev_get_udevdir)"
298 doexe "${FILESDIR}"/nvidia-udev.sh
299 udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
300 elif use kernel_FreeBSD; then
301 if use x86-fbsd; then
302 insinto /boot/modules
303 doins "${S}/src/nvidia.kld"
304 fi
305
306 exeinto /boot/modules
307 doexe "${S}/src/nvidia.ko"
308 fi
309
310 # NVIDIA kernel <-> userspace driver config lib
311 donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
312
313 # NVIDIA video encode/decode <-> CUDA
314 if use kernel_linux; then
315 donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
316 donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
317 fi
318
319 if use X; then
320 # Xorg DDX driver
321 insinto /usr/$(get_libdir)/xorg/modules/drivers
322 doins ${NV_X11}/nvidia_drv.so
323
324 # Xorg GLX driver
325 donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
326 /usr/$(get_libdir)/opengl/nvidia/extensions
327 fi
328
329 # OpenCL ICD for NVIDIA
330 if use kernel_linux; then
331 insinto /etc/OpenCL/vendors
332 doins ${NV_OBJ}/nvidia.icd
333 fi
334
335 # Documentation
336 dohtml ${NV_DOC}/html/*
337 if use kernel_FreeBSD; then
338 dodoc "${NV_DOC}/README"
339 use X && doman "${NV_MAN}/nvidia-xconfig.1"
340 use tools && doman "${NV_MAN}/nvidia-settings.1"
341 else
342 # Docs
343 newdoc "${NV_DOC}/README.txt" README
344 dodoc "${NV_DOC}/NVIDIA_Changelog"
345 doman "${NV_MAN}/nvidia-smi.1.gz"
346 use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
347 use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
348 doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
349 fi
350
351 # Helper Apps
352 exeinto /opt/bin/
353
354 if use X; then
355 doexe ${NV_OBJ}/nvidia-xconfig
356 fi
357
358 if use kernel_linux ; then
359 doexe ${NV_OBJ}/nvidia-cuda-mps-control
360 doexe ${NV_OBJ}/nvidia-cuda-mps-server
361 doexe ${NV_OBJ}/nvidia-debugdump
362 doexe ${NV_OBJ}/nvidia-modprobe
363 doexe ${NV_OBJ}/nvidia-persistenced
364 doexe ${NV_OBJ}/nvidia-smi
365 doman nvidia-cuda-mps-control.1.gz
366 doman nvidia-modprobe.1.gz
367 doman nvidia-persistenced.1.gz
368 newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
369 fi
370
371 if use tools; then
372 doexe ${NV_OBJ}/nvidia-settings
373 fi
374
375 exeinto /usr/bin/
376 doexe ${NV_OBJ}/nvidia-bug-report.sh
377
378 # Desktop entries for nvidia-settings
379 if use tools ; then
380 # There is no icon in the FreeBSD tarball.
381 use kernel_FreeBSD || newicon ${NV_OBJ}/nvidia-settings.png ${PN}-settings.png
382 domenu "${FILESDIR}"/${PN}-settings.desktop
383 exeinto /etc/X11/xinit/xinitrc.d
384 doexe "${FILESDIR}"/95-nvidia-settings
385 fi
386
387 #doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
388
389 if has_multilib_profile && use multilib ; then
390 local OABI=${ABI}
391 for ABI in $(get_install_abis) ; do
392 src_install-libs
393 done
394 ABI=${OABI}
395 unset OABI
396 else
397 src_install-libs
398 fi
399
400 is_final_abi || die "failed to iterate through all ABIs"
401
402 readme.gentoo_create_doc
403 }
404
405 src_install-libs() {
406 local inslibdir=$(get_libdir)
407 local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
408 local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
409 local libdir=${NV_OBJ}
410
411 if use kernel_linux && has_multilib_profile && \
412 [[ ${ABI} == "x86" ]] ; then
413 libdir=${NV_OBJ}/32
414 fi
415
416 if use X; then
417 # The GLX libraries
418 donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
419 donvidia ${libdir}/libEGL.so ${NV_SOVER} ${GL_ROOT}
420 donvidia ${libdir}/libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}
421 donvidia ${libdir}/libGLESv2.so ${NV_SOVER} ${GL_ROOT}
422 donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
423 if use kernel_FreeBSD; then
424 donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
425 else
426 donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
427 fi
428
429 # VDPAU
430 donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
431 fi
432
433 # NVIDIA monitoring library
434 if use kernel_linux ; then
435 donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
436 fi
437
438 # CUDA & OpenCL
439 if use kernel_linux; then
440 donvidia ${libdir}/libcuda.so ${NV_SOVER}
441 donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
442 donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
443 donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
444 fi
445 }
446
447 pkg_preinst() {
448 if use kernel_linux; then
449 linux-mod_pkg_preinst
450
451 local videogroup="$(egetent group video | cut -d ':' -f 3)"
452 if [ -z "${videogroup}" ]; then
453 eerror "Failed to determine the video group gid"
454 die "Failed to determine the video group gid"
455 else
456 sed -i \
457 -e "s:PACKAGE:${PF}:g" \
458 -e "s:VIDEOGID:${videogroup}:" \
459 "${D}"/etc/modprobe.d/nvidia.conf || die
460 fi
461 fi
462
463 # Clean the dynamic libGL stuff's home to ensure
464 # we dont have stale libs floating around
465 if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
466 rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
467 fi
468 # Make sure we nuke the old nvidia-glx's env.d file
469 if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
470 rm -f "${ROOT}"/etc/env.d/09nvidia
471 fi
472 }
473
474 pkg_postinst() {
475 use kernel_linux && linux-mod_pkg_postinst
476
477 # Switch to the nvidia implementation
478 use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
479 "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
480
481 readme.gentoo_print_elog
482
483 if ! use X; then
484 elog "You have elected to not install the X.org driver. Along with"
485 elog "this the OpenGL libraries and VDPAU libraries were not"
486 elog "installed. Additionally, once the driver is loaded your card"
487 elog "and fan will run at max speed which may not be desirable."
488 elog "Use the 'nvidia-smi' init script to have your card and fan"
489 elog "speed scale appropriately."
490 elog
491 fi
492 if ! use tools; then
493 elog "USE=tools controls whether the nvidia-settings application"
494 elog "is installed. If you would like to use it, enable that"
495 elog "flag and re-emerge this ebuild. Optionally you can install"
496 elog "media-video/nvidia-settings"
497 elog
498 fi
499 }
500
501 pkg_prerm() {
502 use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
503 }
504
505 pkg_postrm() {
506 use kernel_linux && linux-mod_pkg_postrm
507 use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
508 }