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