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: nvidia-drivers-331.13.ebuild ChangeLog
Date: Sat, 05 Oct 2013 13:45:33
Message-Id: 20131005134526.1CD9C2004C@flycatcher.gentoo.org
1 jer 13/10/05 13:45:26
2
3 Modified: ChangeLog
4 Added: nvidia-drivers-331.13.ebuild
5 Log:
6 Version bump.
7
8 (Portage version: 2.2.7/cvs/Linux x86_64, signed Manifest commit with key A792A613)
9
10 Revision Changes Path
11 1.486 x11-drivers/nvidia-drivers/ChangeLog
12
13 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog?rev=1.486&view=markup
14 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog?rev=1.486&content-type=text/plain
15 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog?r1=1.485&r2=1.486
16
17 Index: ChangeLog
18 ===================================================================
19 RCS file: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v
20 retrieving revision 1.485
21 retrieving revision 1.486
22 diff -u -r1.485 -r1.486
23 --- ChangeLog 2 Oct 2013 05:04:15 -0000 1.485
24 +++ ChangeLog 5 Oct 2013 13:45:25 -0000 1.486
25 @@ -1,6 +1,11 @@
26 # ChangeLog for x11-drivers/nvidia-drivers
27 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
28 -# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.485 2013/10/02 05:04:15 jer Exp $
29 +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.486 2013/10/05 13:45:25 jer Exp $
30 +
31 +*nvidia-drivers-331.13 (05 Oct 2013)
32 +
33 + 05 Oct 2013; Jeroen Roovers <jer@g.o> +nvidia-drivers-331.13.ebuild:
34 + Version bump.
35
36 *nvidia-drivers-319.60 (02 Oct 2013)
37
38
39
40
41 1.1 x11-drivers/nvidia-drivers/nvidia-drivers-331.13.ebuild
42
43 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-331.13.ebuild?rev=1.1&view=markup
44 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-331.13.ebuild?rev=1.1&content-type=text/plain
45
46 Index: nvidia-drivers-331.13.ebuild
47 ===================================================================
48 # Copyright 1999-2013 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.13.ebuild,v 1.1 2013/10/05 13:45:25 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.14.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 11 ; 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.11"
136 ewarn "<sys-kernel/vanilla-sources-3.11"
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}-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 VIDEOGROUP="$(egetent group video | cut -d ':' -f 3)"
291 if [ -z "$VIDEOGROUP" ]; then
292 eerror "Failed to determine the video group gid."
293 die "Failed to determine the video group gid."
294 fi
295
296 # Add the aliases
297 [ -f "${FILESDIR}/nvidia-169.07" ] || die "nvidia missing in FILESDIR"
298 sed -e 's:PACKAGE:'${PF}':g' \
299 -e 's:VIDEOGID:'${VIDEOGROUP}':' "${FILESDIR}"/nvidia-169.07 > \
300 "${WORKDIR}"/nvidia
301 insinto /etc/modprobe.d
302 newins "${WORKDIR}"/nvidia nvidia.conf
303
304 # Ensures that our device nodes are created when not using X
305 exeinto "$(udev_get_udevdir)"
306 doexe "${FILESDIR}"/nvidia-udev.sh
307 udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
308
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 video encode/decode <-> CUDA
323 if use kernel_linux; then
324 donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
325 donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
326 fi
327
328 if use X; then
329 # Xorg DDX driver
330 insinto /usr/$(get_libdir)/xorg/modules/drivers
331 doins ${NV_X11}/nvidia_drv.so
332
333 # Xorg GLX driver
334 donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
335 /usr/$(get_libdir)/opengl/nvidia/extensions
336 fi
337
338 # OpenCL ICD for NVIDIA
339 if use kernel_linux; then
340 insinto /etc/OpenCL/vendors
341 doins ${NV_OBJ}/nvidia.icd
342 fi
343
344 # Documentation
345 dohtml ${NV_DOC}/html/*
346 if use kernel_FreeBSD; then
347 dodoc "${NV_DOC}/README"
348 use X && doman "${NV_MAN}/nvidia-xconfig.1"
349 use tools && doman "${NV_MAN}/nvidia-settings.1"
350 else
351 # Docs
352 newdoc "${NV_DOC}/README.txt" README
353 dodoc "${NV_DOC}/NVIDIA_Changelog"
354 doman "${NV_MAN}/nvidia-smi.1.gz"
355 use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
356 use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
357 doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
358 fi
359
360 # Helper Apps
361 exeinto /opt/bin/
362
363 if use X; then
364 doexe ${NV_OBJ}/nvidia-xconfig
365 fi
366
367 if use kernel_linux ; then
368 doexe ${NV_OBJ}/nvidia-cuda-mps-control
369 doexe ${NV_OBJ}/nvidia-cuda-mps-server
370 doexe ${NV_OBJ}/nvidia-debugdump
371 doexe ${NV_OBJ}/nvidia-modprobe
372 doexe ${NV_OBJ}/nvidia-persistenced
373 doexe ${NV_OBJ}/nvidia-smi
374 doman nvidia-cuda-mps-control.1.gz
375 doman nvidia-modprobe.1.gz
376 doman nvidia-persistenced.1.gz
377 newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
378 fi
379
380 if use tools; then
381 doexe ${NV_OBJ}/nvidia-settings
382 fi
383
384 exeinto /usr/bin/
385 doexe ${NV_OBJ}/nvidia-bug-report.sh
386
387 # Desktop entries for nvidia-settings
388 if use tools ; then
389 # There is no icon in the FreeBSD tarball.
390 use kernel_FreeBSD || newicon ${NV_OBJ}/nvidia-settings.png ${PN}-settings.png
391 domenu "${FILESDIR}"/${PN}-settings.desktop
392 exeinto /etc/X11/xinit/xinitrc.d
393 doexe "${FILESDIR}"/95-nvidia-settings
394 fi
395
396 #doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
397
398 if has_multilib_profile && use multilib ; then
399 local OABI=${ABI}
400 for ABI in $(get_install_abis) ; do
401 src_install-libs
402 done
403 ABI=${OABI}
404 unset OABI
405 else
406 src_install-libs
407 fi
408
409 is_final_abi || die "failed to iterate through all ABIs"
410 }
411
412 src_install-libs() {
413 local inslibdir=$(get_libdir)
414 local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
415 local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
416 local libdir=${NV_OBJ}
417
418 if use kernel_linux && has_multilib_profile && \
419 [[ ${ABI} == "x86" ]] ; then
420 libdir=${NV_OBJ}/32
421 fi
422
423 if use X; then
424 # The GLX libraries
425 donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
426 donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
427 if use kernel_FreeBSD; then
428 donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
429 else
430 donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
431 fi
432
433 # VDPAU
434 donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
435 fi
436
437 # NVIDIA monitoring library
438 if use kernel_linux ; then
439 donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
440 fi
441
442 # CUDA & OpenCL
443 if use kernel_linux; then
444 donvidia ${libdir}/libcuda.so ${NV_SOVER}
445 donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
446 donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
447 donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
448 fi
449 }
450
451 pkg_preinst() {
452 use kernel_linux && linux-mod_pkg_preinst
453
454 # Clean the dynamic libGL stuff's home to ensure
455 # we dont have stale libs floating around
456 if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
457 rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
458 fi
459 # Make sure we nuke the old nvidia-glx's env.d file
460 if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
461 rm -f "${ROOT}"/etc/env.d/09nvidia
462 fi
463 }
464
465 pkg_postinst() {
466 use kernel_linux && linux-mod_pkg_postinst
467
468 # Switch to the nvidia implementation
469 use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
470 "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
471
472 elog "You must be in the video group to use the NVIDIA device"
473 elog "For more info, read the docs at"
474 elog "http://www.gentoo.org/doc/en/nvidia-guide.xml#doc_chap3_sect6"
475 elog
476 elog "This ebuild installs a kernel module and X driver. Both must"
477 elog "match explicitly in their version. This means, if you restart"
478 elog "X, you must modprobe -r nvidia before starting it back up"
479 elog
480 elog "To use the NVIDIA GLX, run \"eselect opengl set nvidia\""
481 elog
482 elog "To use the NVIDIA CUDA/OpenCL, run \"eselect opencl set nvidia\""
483 elog
484 elog "NVIDIA has requested that any bug reports submitted have the"
485 elog "output of nvidia-bug-report.sh included."
486 elog
487 if ! use X; then
488 elog "You have elected to not install the X.org driver. Along with"
489 elog "this the OpenGL libraries and VDPAU libraries were not"
490 elog "installed. Additionally, once the driver is loaded your card"
491 elog "and fan will run at max speed which may not be desirable."
492 elog "Use the 'nvidia-smi' init script to have your card and fan"
493 elog "speed scale appropriately."
494 elog
495 fi
496 if ! use tools; then
497 elog "USE=tools controls whether the nvidia-settings application"
498 elog "is installed. If you would like to use it, enable that"
499 elog "flag and re-emerge this ebuild. Optionally you can install"
500 elog "media-video/nvidia-settings"
501 elog
502 fi
503 }
504
505 pkg_prerm() {
506 use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
507 }
508
509 pkg_postrm() {
510 use kernel_linux && linux-mod_pkg_postrm
511 use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
512 }