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