1 |
cardoe 11/07/27 14:45:17 |
2 |
|
3 |
Modified: ChangeLog |
4 |
Added: nvidia-drivers-275.21.ebuild |
5 |
nvidia-drivers-96.43.20.ebuild |
6 |
nvidia-drivers-173.14.31.ebuild |
7 |
Log: |
8 |
Version bumps. Adds support for xorg-server 1.10 in the legacy drivers. Fix KDE4 KWin issues in the 173.14.x series. Fix a multitude of issues in the 275.x series. |
9 |
|
10 |
(Portage version: 2.1.10.7/cvs/Linux x86_64) |
11 |
|
12 |
Revision Changes Path |
13 |
1.292 x11-drivers/nvidia-drivers/ChangeLog |
14 |
|
15 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog?rev=1.292&view=markup |
16 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog?rev=1.292&content-type=text/plain |
17 |
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog?r1=1.291&r2=1.292 |
18 |
|
19 |
Index: ChangeLog |
20 |
=================================================================== |
21 |
RCS file: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v |
22 |
retrieving revision 1.291 |
23 |
retrieving revision 1.292 |
24 |
diff -u -r1.291 -r1.292 |
25 |
--- ChangeLog 19 Jul 2011 06:47:35 -0000 1.291 |
26 |
+++ ChangeLog 27 Jul 2011 14:45:17 -0000 1.292 |
27 |
@@ -1,6 +1,17 @@ |
28 |
# ChangeLog for x11-drivers/nvidia-drivers |
29 |
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 |
30 |
-# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.291 2011/07/19 06:47:35 angelos Exp $ |
31 |
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/ChangeLog,v 1.292 2011/07/27 14:45:17 cardoe Exp $ |
32 |
+ |
33 |
+*nvidia-drivers-275.21 (26 Jul 2011) |
34 |
+*nvidia-drivers-173.14.31 (26 Jul 2011) |
35 |
+*nvidia-drivers-96.43.20 (26 Jul 2011) |
36 |
+ |
37 |
+ 26 Jul 2011; Doug Goldstein <cardoe@g.o> |
38 |
+ +nvidia-drivers-96.43.20.ebuild, +nvidia-drivers-173.14.31.ebuild, |
39 |
+ +nvidia-drivers-275.21.ebuild: |
40 |
+ Version bumps. Adds support for xorg-server 1.10 in the legacy drivers. Fix |
41 |
+ KDE4 KWin issues in the 173.14.x series. Fix a multitude of issues in the |
42 |
+ 275.x series. |
43 |
|
44 |
19 Jul 2011; Christoph Mende <angelos@g.o> |
45 |
nvidia-drivers-270.41.19.ebuild: |
46 |
|
47 |
|
48 |
|
49 |
1.1 x11-drivers/nvidia-drivers/nvidia-drivers-275.21.ebuild |
50 |
|
51 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-275.21.ebuild?rev=1.1&view=markup |
52 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-275.21.ebuild?rev=1.1&content-type=text/plain |
53 |
|
54 |
Index: nvidia-drivers-275.21.ebuild |
55 |
=================================================================== |
56 |
# Copyright 1999-2011 Gentoo Foundation |
57 |
# Distributed under the terms of the GNU General Public License v2 |
58 |
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-275.21.ebuild,v 1.1 2011/07/27 14:45:17 cardoe Exp $ |
59 |
|
60 |
EAPI="2" |
61 |
|
62 |
inherit eutils multilib versionator linux-mod flag-o-matic nvidia-driver |
63 |
|
64 |
X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}" |
65 |
AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}" |
66 |
X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}" |
67 |
|
68 |
DESCRIPTION="NVIDIA X11 driver and GLX libraries" |
69 |
HOMEPAGE="http://www.nvidia.com/" |
70 |
SRC_URI="x86? ( http://us.download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}.run ) |
71 |
amd64? ( http://us.download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run ) |
72 |
x86-fbsd? ( http://us.download.nvidia.com/XFree86/FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )" |
73 |
|
74 |
LICENSE="NVIDIA" |
75 |
SLOT="0" |
76 |
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd" |
77 |
IUSE="acpi custom-cflags gtk multilib kernel_linux" |
78 |
RESTRICT="strip" |
79 |
EMULTILIB_PKG="true" |
80 |
|
81 |
COMMON="<x11-base/xorg-server-1.10.99 |
82 |
kernel_linux? ( >=sys-libs/glibc-2.6.1 ) |
83 |
multilib? ( app-emulation/emul-linux-x86-xlibs ) |
84 |
>=app-admin/eselect-opengl-1.0.9 |
85 |
!<media-video/nvidia-settings-256.52" |
86 |
DEPEND="${COMMON} |
87 |
kernel_linux? ( virtual/linux-sources )" |
88 |
RDEPEND="${COMMON} |
89 |
x11-libs/libXvMC |
90 |
acpi? ( sys-power/acpid )" |
91 |
PDEPEND=">=x11-libs/libvdpau-0.3-r1 |
92 |
gtk? ( media-video/nvidia-settings )" |
93 |
|
94 |
QA_TEXTRELS_x86=" |
95 |
usr/lib/libOpenCL.so.1.0.0 |
96 |
usr/lib/libXvMCNVIDIA.so.${PV} |
97 |
usr/lib/libcuda.so.${PV} |
98 |
usr/lib/libnvcuvid.so.${PV} |
99 |
usr/lib/libnvidia-cfg.so.${PV} |
100 |
usr/lib/libnvidia-compiler.so.${PV} |
101 |
usr/lib/libnvidia-glcore.so.${PV} |
102 |
usr/lib/libnvidia-ml.so.${PV} |
103 |
usr/lib/libvdpau_nvidia.so.${PV} |
104 |
usr/lib/opengl/nvidia/extensions/libglx.so.${PV} |
105 |
usr/lib/opengl/nvidia/lib/libGL.so.${PV} |
106 |
usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
107 |
usr/lib/xorg/modules/drivers/nvidia_drv.so" |
108 |
|
109 |
QA_TEXTRELS_x86_fbsd="boot/modules/nvidia.ko |
110 |
usr/lib/opengl/nvidia/lib/libGL.so.1 |
111 |
usr/lib/libnvidia-glcore.so.1 |
112 |
usr/lib/libnvidia-cfg.so.1 |
113 |
usr/lib/libnvidia-ml.so.1 |
114 |
usr/lib/opengl/nvidia/extensions/libglx.so.1 |
115 |
usr/lib/xorg/modules/drivers/nvidia_drv.so" |
116 |
|
117 |
QA_TEXTRELS_amd64="usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
118 |
usr/lib32/libnvidia-glcore.so.${PV} |
119 |
usr/lib32/opengl/nvidia/lib/libGL.so.${PV} |
120 |
usr/lib32/libcuda.so.${PV} |
121 |
usr/lib32/libvdpau_nvidia.so.${PV} |
122 |
usr/lib32/libOpenCL.so.1.0.0 |
123 |
usr/lib32/libnvidia-compiler.so.${PV}" |
124 |
|
125 |
QA_EXECSTACK_x86="usr/lib/opengl/nvidia/lib/libGL.so.${PV} |
126 |
usr/lib/libnvidia-glcore.so.${PV} |
127 |
usr/lib/opengl/nvidia/extensions/libglx.so.${PV} |
128 |
usr/lib64/libXvMCNVIDIA.so.${PV} |
129 |
usr/lib/libXvMCNVIDIA.a:NVXVMC.o |
130 |
usr/lib/libnvidia-compiler.so.${PV} |
131 |
usr/lib/libvdpau_nvidia.so.${PV} |
132 |
usr/lib/libcuda.so.${PV} |
133 |
usr/lib/libOpenCL.so.1.0.0" |
134 |
|
135 |
QA_EXECSTACK_amd64="usr/lib32/libnvidia-glcore.so.${PV} |
136 |
usr/lib32/opengl/nvidia/lib/libGL.so.${PV} |
137 |
usr/lib32/libnvidia-compiler.so.${PV} |
138 |
usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
139 |
usr/lib32/libvdpau_nvidia.so.${PV} |
140 |
usr/lib32/libcuda.so.${PV} |
141 |
usr/lib32/libOpenCL.so.1.0.0 |
142 |
usr/lib64/libnvidia-compiler.so.${PV} |
143 |
usr/lib64/libXvMCNVIDIA.a:NVXVMC.o |
144 |
usr/lib64/libnvidia-cfg.so.${PV} |
145 |
usr/lib64/libnvidia-ml.so.${PV} |
146 |
usr/lib64/libvdpau_nvidia.so.${PV} |
147 |
usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
148 |
usr/lib64/opengl/nvidia/lib/libGL.so.${PV} |
149 |
usr/lib64/libnvidia-glcore.so.${PV} |
150 |
usr/lib64/opengl/nvidia/extensions/libglx.so.${PV} |
151 |
usr/lib64/libXvMCNVIDIA.so.${PV} |
152 |
usr/lib64/libcuda.so.${PV} |
153 |
usr/lib64/libOpenCL.so.1.0.0 |
154 |
usr/lib64/xorg/modules/drivers/nvidia_drv.so |
155 |
usr/bin/nvidia-smi |
156 |
usr/bin/nvidia-xconfig |
157 |
usr/bin/nvidia-settings" |
158 |
|
159 |
QA_WX_LOAD_x86="usr/lib/libnvidia-glcore.so.${PV} |
160 |
usr/lib/opengl/nvidia/lib/libGL.so.${PV} |
161 |
usr/lib/opengl/nvidia/extensions/libglx.so.${PV} |
162 |
usr/lib/libXvMCNVIDIA.a |
163 |
usr/lib64/libXvMCNVIDIA.so.${PV}" |
164 |
|
165 |
QA_WX_LOAD_amd64="usr/lib32/opengl/nvidia/lib/libGL.so.${PV} |
166 |
usr/lib32/libnvidia-glcore.so.${PV} |
167 |
usr/lib64/opengl/nvidia/lib/libGL.so.${PV} |
168 |
usr/lib64/libnvidia-glcore.so.${PV} |
169 |
usr/lib64/opengl/nvidia/extensions/libglx.so.${PV} |
170 |
usr/lib64/libXvMCNVIDIA.so.${PV}" |
171 |
|
172 |
QA_SONAME_x86="usr/lib/libnvidia-compiler.so.${PV}" |
173 |
|
174 |
QA_SONAME_amd64="usr/lib64/libnvidia-compiler.so.${PV} |
175 |
usr/lib32/libnvidia-compiler.so.${PV}" |
176 |
|
177 |
QA_DT_HASH_amd64="usr/lib32/libcuda.so.${PV} |
178 |
usr/lib32/opengl/nvidia/lib/libGL.so.${PV} |
179 |
usr/lib32/libnvidia-glcore.so.${PV} |
180 |
usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
181 |
usr/lib32/libvdpau_nvidia.so.${PV} |
182 |
usr/lib32/libOpenCL.so.1.0.0 |
183 |
usr/lib32/libnvidia-compiler.so.${PV} |
184 |
usr/lib64/libXvMCNVIDIA.so.${PV} |
185 |
usr/lib64/libcuda.so.${PV} |
186 |
usr/lib64/libnvidia-cfg.so.${PV} |
187 |
usr/lib64/libnvidia-glcore.so.${PV} |
188 |
usr/lib64/libnvidia-ml.so.${PV} |
189 |
usr/lib64/opengl/nvidia/lib/libGL.so.${PV} |
190 |
usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
191 |
usr/lib64/opengl/nvidia/extensions/libglx.so.${PV} |
192 |
usr/lib64/xorg/modules/drivers/nvidia_drv.so |
193 |
usr/lib64/libvdpau_nvidia.so.${PV} |
194 |
usr/lib64/libOpenCL.so.1.0.0 |
195 |
usr/lib64/libnvidia-compiler.so.${PV} |
196 |
usr/lib64/libnvcuvid.so.${PV} |
197 |
usr/bin/nvidia-smi |
198 |
usr/bin/nvidia-xconfig |
199 |
usr/bin/nvidia-settings" |
200 |
|
201 |
QA_DT_HASH_x86="usr/lib/libcuda.so.${PV} |
202 |
usr/lib/libnvidia-cfg.so.${PV} |
203 |
usr/lib/libnvidia-glcore.so.${PV} |
204 |
usr/lib/libnvidia-ml.so.${PV} |
205 |
usr/lib/opengl/nvidia/lib/libGL.so.${PV} |
206 |
usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
207 |
usr/lib/opengl/nvidia/extensions/libglx.so.${PV} |
208 |
usr/lib/xorg/modules/drivers/nvidia_drv.so |
209 |
usr/lib/libXvMCNVIDIA.so.${PV} |
210 |
usr/lib/libvdpau_nvidia.so.${PV} |
211 |
usr/lib/libOpenCL.so.1.0.0 |
212 |
usr/lib/libnvidia-compiler.so.${PV} |
213 |
usr/lib/libnvcuvid.so.${PV} |
214 |
usr/bin/nvidia-smi |
215 |
usr/bin/nvidia-xconfig |
216 |
usr/bin/nvidia-settings" |
217 |
|
218 |
S="${WORKDIR}/" |
219 |
|
220 |
mtrr_check() { |
221 |
ebegin "Checking for MTRR support" |
222 |
linux_chkconfig_present MTRR |
223 |
eend $? |
224 |
|
225 |
if [[ $? -ne 0 ]] ; then |
226 |
eerror "Please enable MTRR support in your kernel config, found at:" |
227 |
eerror |
228 |
eerror " Processor type and features" |
229 |
eerror " [*] MTRR (Memory Type Range Register) support" |
230 |
eerror |
231 |
eerror "and recompile your kernel ..." |
232 |
die "MTRR support not detected!" |
233 |
fi |
234 |
} |
235 |
|
236 |
lockdep_check() { |
237 |
if linux_chkconfig_present LOCKDEP; then |
238 |
eerror "You've enabled LOCKDEP -- lock tracking -- in the kernel." |
239 |
eerror "Unfortunately, this option exports the symbol " |
240 |
eerror "'lockdep_init_map' as GPL-only which will prevent " |
241 |
eerror "${P} from compiling." |
242 |
eerror "Please make sure the following options have been unset:" |
243 |
eerror |
244 |
eerror " Kernel hacking --->" |
245 |
eerror " [ ] Lock debugging: detect incorrect freeing of live locks" |
246 |
eerror " [ ] Lock debugging: prove locking correctness" |
247 |
eerror " [ ] Lock usage statistics" |
248 |
eerror "in 'menuconfig'" |
249 |
die "LOCKDEP enabled" |
250 |
fi |
251 |
} |
252 |
|
253 |
pkg_setup() { |
254 |
# try to turn off distcc and ccache for people that have a problem with it |
255 |
export DISTCC_DISABLE=1 |
256 |
export CCACHE_DISABLE=1 |
257 |
|
258 |
if use amd64 && has_multilib_profile && [ "${DEFAULT_ABI}" != "amd64" ]; then |
259 |
eerror "This ebuild doesn't currently support changing your default abi." |
260 |
die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}" |
261 |
fi |
262 |
|
263 |
if use kernel_linux; then |
264 |
linux-mod_pkg_setup |
265 |
MODULE_NAMES="nvidia(video:${S}/kernel)" |
266 |
BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \ |
267 |
SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)" |
268 |
mtrr_check |
269 |
lockdep_check |
270 |
fi |
271 |
|
272 |
# On BSD userland it wants real make command |
273 |
use userland_BSD && MAKE="$(get_bmake)" |
274 |
|
275 |
export _POSIX2_VERSION="199209" |
276 |
|
277 |
# Since Nvidia ships 3 different series of drivers, we need to give the user |
278 |
# some kind of guidance as to what version they should install. This tries |
279 |
# to point the user in the right direction but can't be perfect. check |
280 |
# nvidia-driver.eclass |
281 |
nvidia-driver-check-warning |
282 |
|
283 |
# set variables to where files are in the package structure |
284 |
if use kernel_FreeBSD; then |
285 |
NV_DOC="${S}/doc" |
286 |
NV_EXEC="${S}/obj" |
287 |
NV_LIB="${S}/obj" |
288 |
NV_SRC="${S}/src" |
289 |
NV_MAN="${S}/x11/man" |
290 |
NV_X11="${S}/obj" |
291 |
NV_X11_DRV="${NV_X11}" |
292 |
NV_X11_EXT="${NV_X11}" |
293 |
NV_SOVER=1 |
294 |
elif use kernel_linux; then |
295 |
NV_DOC="${S}" |
296 |
NV_EXEC="${S}" |
297 |
NV_LIB="${S}" |
298 |
NV_SRC="${S}/kernel" |
299 |
NV_MAN="${S}" |
300 |
NV_X11="${S}" |
301 |
NV_X11_DRV="${NV_X11}" |
302 |
NV_X11_EXT="${NV_X11}" |
303 |
NV_SOVER=${PV} |
304 |
else |
305 |
die "Could not determine proper NVIDIA package" |
306 |
fi |
307 |
} |
308 |
|
309 |
src_unpack() { |
310 |
if use kernel_linux && kernel_is lt 2 6 7; then |
311 |
echo |
312 |
ewarn "Your kernel version is ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" |
313 |
ewarn "This is not officially supported for ${P}. It is likely you" |
314 |
ewarn "will not be able to compile or use the kernel module." |
315 |
ewarn "It is recommended that you upgrade your kernel to a version >= 2.6.7" |
316 |
echo |
317 |
ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored." |
318 |
fi |
319 |
|
320 |
if ! use x86-fbsd; then |
321 |
cd "${S}" |
322 |
unpack_makeself |
323 |
else |
324 |
unpack ${A} |
325 |
fi |
326 |
} |
327 |
|
328 |
src_prepare() { |
329 |
# Please add a brief description for every added patch |
330 |
use x86-fbsd && cd doc |
331 |
|
332 |
if use kernel_linux; then |
333 |
# Quiet down warnings the user does not need to see |
334 |
sed -i \ |
335 |
-e 's:-Wsign-compare::g' \ |
336 |
"${NV_SRC}"/Makefile.kbuild |
337 |
|
338 |
epatch "${FILESDIR}"/256.35-unified-arch.patch |
339 |
|
340 |
# If you set this then it's your own fault when stuff breaks :) |
341 |
use custom-cflags && sed -i "s:-O:${CFLAGS}:" "${NV_SRC}"/Makefile.* |
342 |
|
343 |
# If greater than 2.6.5 use M= instead of SUBDIR= |
344 |
convert_to_m "${NV_SRC}"/Makefile.kbuild |
345 |
fi |
346 |
} |
347 |
|
348 |
src_compile() { |
349 |
# This is already the default on Linux, as there's no toplevel Makefile, but |
350 |
# on FreeBSD there's one and triggers the kernel module build, as we install |
351 |
# it by itself, pass this. |
352 |
|
353 |
cd "${NV_SRC}" |
354 |
if use x86-fbsd; then |
355 |
MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \ |
356 |
LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die |
357 |
elif use kernel_linux; then |
358 |
linux-mod_src_compile |
359 |
fi |
360 |
} |
361 |
|
362 |
src_install() { |
363 |
if use kernel_linux; then |
364 |
linux-mod_src_install |
365 |
|
366 |
VIDEOGROUP="$(egetent group video | cut -d ':' -f 3)" |
367 |
if [ -z "$VIDEOGROUP" ]; then |
368 |
eerror "Failed to determine the video group gid." |
369 |
die "Failed to determine the video group gid." |
370 |
fi |
371 |
|
372 |
# Add the aliases |
373 |
[ -f "${FILESDIR}/nvidia-169.07" ] || die "nvidia missing in FILESDIR" |
374 |
sed -e 's:PACKAGE:'${PF}':g' \ |
375 |
-e 's:VIDEOGID:'${VIDEOGROUP}':' "${FILESDIR}"/nvidia-169.07 > \ |
376 |
"${WORKDIR}"/nvidia |
377 |
insinto /etc/modprobe.d |
378 |
newins "${WORKDIR}"/nvidia nvidia.conf || die |
379 |
elif use x86-fbsd; then |
380 |
insinto /boot/modules |
381 |
doins "${WORKDIR}/${NV_PACKAGE}/src/nvidia.kld" || die |
382 |
|
383 |
exeinto /boot/modules |
384 |
doexe "${WORKDIR}/${NV_PACKAGE}/src/nvidia.ko" || die |
385 |
fi |
386 |
|
387 |
# NVIDIA kernel <-> userspace driver config lib |
388 |
dolib.so ${NV_LIB}/libnvidia-cfg.so.${NV_SOVER} || \ |
389 |
die "failed to install libnvidia-cfg" |
390 |
dosym /usr/$(get_libdir)/libnvidia-cfg.so.${NV_SOVER} \ |
391 |
/usr/$(get_libdir)/libnvidia-cfg.so || \ |
392 |
die "failed to create libnvidia-cfg.so symlink" |
393 |
|
394 |
# NVIDIA monitoring library |
395 |
dolib.so ${NV_LIB}/libnvidia-ml.so.${NV_SOVER} || \ |
396 |
die "failed to install libnvidia-ml" |
397 |
dosym /usr/$(get_libdir)/libnvidia-ml.so.${NV_SOVER} \ |
398 |
/usr/$(get_libdir)/libnvidia-ml.so || \ |
399 |
die "failed to create libnvidia-ml.so symlink" |
400 |
|
401 |
# NVIDIA video decode <-> CUDA |
402 |
dolib.so ${NV_LIB}/libnvcuvid.so.${NV_SOVER} || \ |
403 |
die "failed to install libnvcuvid.so" |
404 |
dosym /usr/$(get_libdir)/libnvcuvid.so.${NV_SOVER} \ |
405 |
/usr/$(get_libdir)/libnvcuvid.so || \ |
406 |
die "failed to create libnvcuvid.so symlink" |
407 |
|
408 |
# Xorg DDX driver |
409 |
insinto /usr/$(get_libdir)/xorg/modules/drivers |
410 |
doins ${NV_X11_DRV}/nvidia_drv.so || die "failed to install nvidia_drv.so" |
411 |
|
412 |
# Xorg GLX driver |
413 |
insinto /usr/$(get_libdir)/opengl/nvidia/extensions |
414 |
doins ${NV_X11_EXT}/libglx.so.${NV_SOVER} || \ |
415 |
die "failed to install libglx.so" |
416 |
dosym /usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so.${NV_SOVER} \ |
417 |
/usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so || \ |
418 |
die "failed to create libglx.so symlink" |
419 |
|
420 |
# XvMC driver |
421 |
dolib.a ${NV_X11}/libXvMCNVIDIA.a || \ |
422 |
die "failed to install libXvMCNVIDIA.so" |
423 |
dolib.so ${NV_X11}/libXvMCNVIDIA.so.${NV_SOVER} || \ |
424 |
die "failed to install libXvMCNVIDIA.so" |
425 |
dosym libXvMCNVIDIA.so.${NV_SOVER} /usr/$(get_libdir)/libXvMCNVIDIA.so || \ |
426 |
die "failed to create libXvMCNVIDIA.so symlink" |
427 |
|
428 |
# OpenCL ICD for NVIDIA |
429 |
if use kernel_linux; then |
430 |
dodir /etc/OpenCL/vendors |
431 |
insinto /etc/OpenCL/vendors |
432 |
doins nvidia.icd |
433 |
fi |
434 |
|
435 |
# Documentation |
436 |
dohtml ${NV_DOC}/html/* |
437 |
if use x86-fbsd; then |
438 |
dodoc "${NV_DOC}/README" |
439 |
doman "${NV_MAN}/nvidia-xconfig.1" |
440 |
use gtk && doman "${NV_MAN}/nvidia-settings.1" |
441 |
else |
442 |
# Docs |
443 |
newdoc "${NV_DOC}/README.txt" README |
444 |
dodoc "${NV_DOC}/NVIDIA_Changelog" |
445 |
doman "${NV_MAN}/nvidia-smi.1.gz" |
446 |
doman "${NV_MAN}/nvidia-xconfig.1.gz" |
447 |
use gtk && doman "${NV_MAN}/nvidia-settings.1.gz" |
448 |
fi |
449 |
|
450 |
# Helper Apps |
451 |
dobin ${NV_EXEC}/nvidia-xconfig || die |
452 |
if use gtk; then |
453 |
dobin ${NV_EXEC}/nvidia-settings || die |
454 |
fi |
455 |
dobin ${NV_EXEC}/nvidia-bug-report.sh || die |
456 |
if use kernel_linux; then |
457 |
dobin ${NV_EXEC}/nvidia-smi || die |
458 |
fi |
459 |
|
460 |
# Desktop entries for nvidia-settings |
461 |
if use gtk; then |
462 |
sed -e 's:__UTILS_PATH__:/usr/bin:' \ |
463 |
-e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' \ |
464 |
-i "${NV_EXEC}/nvidia-settings.desktop" |
465 |
domenu ${NV_EXEC}/nvidia-settings.desktop |
466 |
|
467 |
doicon ${NV_EXEC}/nvidia-settings.png |
468 |
fi |
469 |
|
470 |
if has_multilib_profile ; then |
471 |
local OABI=${ABI} |
472 |
for ABI in $(get_install_abis) ; do |
473 |
src_install-libs |
474 |
done |
475 |
ABI=${OABI} |
476 |
unset OABI |
477 |
else |
478 |
src_install-libs |
479 |
fi |
480 |
|
481 |
is_final_abi || die "failed to iterate through all ABIs" |
482 |
} |
483 |
|
484 |
# Install nvidia library: |
485 |
# the first parameter is the place where to install it |
486 |
# the second parameter is the base name of the library |
487 |
# the third parameter is the provided soversion |
488 |
donvidia() { |
489 |
dodir $1 |
490 |
exeinto $1 |
491 |
|
492 |
libname=$(basename $2) |
493 |
|
494 |
doexe $2.$3 || die "failed to install $2" |
495 |
dosym ${libname}.$3 $1/${libname} || die "failed to symlink $2" |
496 |
[[ $3 != "1" ]] && dosym ${libname}.$3 $1/${libname}.1 |
497 |
} |
498 |
|
499 |
src_install-libs() { |
500 |
local inslibdir=$(get_libdir) |
501 |
local NV_ROOT="/usr/${inslibdir}/opengl/nvidia" |
502 |
local libdir= sover= |
503 |
|
504 |
if use kernel_linux; then |
505 |
if has_multilib_profile && [[ ${ABI} == "x86" ]] ; then |
506 |
libdir=32 |
507 |
else |
508 |
libdir=. |
509 |
fi |
510 |
sover=${PV} |
511 |
else |
512 |
libdir=obj |
513 |
# on FreeBSD it has just .1 suffix |
514 |
sover=1 |
515 |
fi |
516 |
|
517 |
# The GLX libraries |
518 |
donvidia ${NV_ROOT}/lib ${libdir}/libGL.so ${sover} |
519 |
donvidia /usr/${inslibdir} ${libdir}/libnvidia-glcore.so ${sover} |
520 |
if use x86-fbsd; then |
521 |
donvidia ${NV_ROOT}/lib ${libdir}/libnvidia-tls.so ${sover} |
522 |
else |
523 |
donvidia ${NV_ROOT}/lib ${libdir}/tls/libnvidia-tls.so ${sover} |
524 |
fi |
525 |
|
526 |
# VDPAU |
527 |
donvidia /usr/${inslibdir} ${libdir}/libvdpau_nvidia.so ${sover} |
528 |
|
529 |
# CUDA & OpenCL |
530 |
if use kernel_linux; then |
531 |
donvidia /usr/${inslibdir} ${libdir}/libcuda.so ${sover} |
532 |
donvidia /usr/${inslibdir} ${libdir}/libnvidia-compiler.so ${sover} |
533 |
donvidia /usr/${inslibdir} ${libdir}/libOpenCL.so 1.0.0 |
534 |
dosym libOpenCL.so.1 /usr/${inslibdir}/libOpenCL.so |
535 |
fi |
536 |
} |
537 |
|
538 |
pkg_preinst() { |
539 |
if use kernel_linux; then |
540 |
linux-mod_pkg_postinst |
541 |
fi |
542 |
|
543 |
# Clean the dynamic libGL stuff's home to ensure |
544 |
# we dont have stale libs floating around |
545 |
if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then |
546 |
rm -rf "${ROOT}"/usr/lib/opengl/nvidia/* |
547 |
fi |
548 |
# Make sure we nuke the old nvidia-glx's env.d file |
549 |
if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then |
550 |
rm -f "${ROOT}"/etc/env.d/09nvidia |
551 |
fi |
552 |
} |
553 |
|
554 |
pkg_postinst() { |
555 |
if use kernel_linux; then |
556 |
linux-mod_pkg_postinst |
557 |
fi |
558 |
|
559 |
# Switch to the nvidia implementation |
560 |
eselect opengl set --use-old nvidia |
561 |
|
562 |
echo |
563 |
elog "You must be in the video group to use the NVIDIA device" |
564 |
elog "For more info, read the docs at" |
565 |
elog "http://www.gentoo.org/doc/en/nvidia-guide.xml#doc_chap3_sect6" |
566 |
elog |
567 |
|
568 |
elog "This ebuild installs a kernel module and X driver. Both must" |
569 |
elog "match explicitly in their version. This means, if you restart" |
570 |
elog "X, you must modprobe -r nvidia before starting it back up" |
571 |
elog |
572 |
|
573 |
elog "To use the NVIDIA GLX, run \"eselect opengl set nvidia\"" |
574 |
elog |
575 |
elog "NVIDIA has requested that any bug reports submitted have the" |
576 |
elog "output of /usr/bin/nvidia-bug-report.sh included." |
577 |
elog |
578 |
elog "To work with compiz, you must enable the AddARGBGLXVisuals option." |
579 |
elog |
580 |
elog "If you are having resolution problems, try disabling DynamicTwinView." |
581 |
elog |
582 |
|
583 |
if ! use gtk; then |
584 |
elog "USE=gtk controls whether the nvidia-settings application" |
585 |
elog "is installed. If you would like to use it, enable that" |
586 |
elog "flag and re-emerge this ebuild. media-video/nvidia-settings" |
587 |
elog "no longer installs nvidia-settings but only installs the" |
588 |
elog "associated user space libraries." |
589 |
fi |
590 |
} |
591 |
|
592 |
pkg_postrm() { |
593 |
if use kernel_linux; then |
594 |
linux-mod_pkg_postrm |
595 |
fi |
596 |
eselect opengl set --use-old xorg-x11 |
597 |
} |
598 |
|
599 |
|
600 |
|
601 |
1.1 x11-drivers/nvidia-drivers/nvidia-drivers-96.43.20.ebuild |
602 |
|
603 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-96.43.20.ebuild?rev=1.1&view=markup |
604 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-96.43.20.ebuild?rev=1.1&content-type=text/plain |
605 |
|
606 |
Index: nvidia-drivers-96.43.20.ebuild |
607 |
=================================================================== |
608 |
# Copyright 1999-2011 Gentoo Foundation |
609 |
# Distributed under the terms of the GNU General Public License v2 |
610 |
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-96.43.20.ebuild,v 1.1 2011/07/27 14:45:17 cardoe Exp $ |
611 |
|
612 |
EAPI="2" |
613 |
|
614 |
inherit eutils multilib versionator linux-mod flag-o-matic nvidia-driver |
615 |
|
616 |
X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}" |
617 |
AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}" |
618 |
X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}" |
619 |
|
620 |
DESCRIPTION="NVIDIA X11 driver and GLX libraries" |
621 |
HOMEPAGE="http://www.nvidia.com/" |
622 |
SRC_URI="x86? ( ftp://download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}-pkg0.run ) |
623 |
amd64? ( ftp://download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}-pkg2.run ) |
624 |
x86-fbsd? ( ftp://download.nvidia.com/freebsd/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )" |
625 |
|
626 |
LICENSE="NVIDIA" |
627 |
SLOT="0" |
628 |
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd" |
629 |
IUSE="acpi custom-cflags gtk multilib kernel_linux" |
630 |
RESTRICT="strip" |
631 |
EMULTILIB_PKG="true" |
632 |
|
633 |
COMMON="<x11-base/xorg-server-1.11 |
634 |
gtk? ( |
635 |
!media-video/nvidia-settings |
636 |
dev-libs/atk |
637 |
dev-libs/glib |
638 |
x11-libs/gdk-pixbuf |
639 |
x11-libs/gtk+:2 |
640 |
x11-libs/libX11 |
641 |
x11-libs/libXext |
642 |
x11-libs/pango |
643 |
) |
644 |
kernel_linux? ( >=sys-libs/glibc-2.6.1 ) |
645 |
multilib? ( app-emulation/emul-linux-x86-opengl ) |
646 |
>=app-admin/eselect-opengl-1.0.9" |
647 |
DEPEND="${COMMON} |
648 |
kernel_linux? ( virtual/linux-sources )" |
649 |
RDEPEND="${COMMON} |
650 |
acpi? ( sys-power/acpid )" |
651 |
|
652 |
QA_TEXTRELS_x86="usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
653 |
usr/lib/opengl/nvidia/lib/libGL.so.${PV} |
654 |
usr/lib/opengl/nvidia/lib/libGLcore.so.${PV} |
655 |
usr/lib/opengl/nvidia/extensions/libglx.so.${PV} |
656 |
usr/lib/xorg/modules/drivers/nvidia_drv.so |
657 |
usr/lib/libcuda.so.${PV} |
658 |
usr/lib/libnvidia-cfg.so.${PV} |
659 |
usr/lib/libvdpau_nvidia.so.${PV} |
660 |
usr/lib/libXvMCNVIDIA.so.${PV}" |
661 |
|
662 |
QA_TEXTRELS_x86_fbsd="boot/modules/nvidia.ko |
663 |
usr/lib/opengl/nvidia/lib/libGL.so.1 |
664 |
usr/lib/opengl/nvidia/lib/libGLcore.so.1 |
665 |
usr/lib/libnvidia-cfg.so.1 |
666 |
usr/lib/opengl/nvidia/extensions/libglx.so.1 |
667 |
usr/lib/xorg/modules/drivers/nvidia_drv.so" |
668 |
|
669 |
QA_TEXTRELS_amd64="usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
670 |
usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV} |
671 |
usr/lib32/opengl/nvidia/lib/libGL.so.${PV} |
672 |
usr/lib32/libcuda.so.${PV} |
673 |
usr/lib32/libvdpau_nvidia.so.${PV}" |
674 |
|
675 |
QA_EXECSTACK_x86="usr/lib/opengl/nvidia/lib/libGL.so.${PV} |
676 |
usr/lib/opengl/nvidia/lib/libGLcore.so.${PV} |
677 |
usr/lib/opengl/nvidia/extensions/libglx.so.${PV} |
678 |
usr/lib/xorg/modules/drivers/nvidia_drv.so |
679 |
usr/lib/libXvMCNVIDIA.a:NVXVMC.o" |
680 |
|
681 |
QA_EXECSTACK_amd64="usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV} |
682 |
usr/lib32/opengl/nvidia/lib/libGL.so.${PV} |
683 |
usr/lib64/libnvcompiler.so.${PV} |
684 |
usr/lib64/libXvMCNVIDIA.so.${PV} |
685 |
usr/lib64/libXvMCNVIDIA.a:NVXVMC.o |
686 |
usr/lib64/libnvidia-cfg.so.${PV} |
687 |
usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
688 |
usr/lib64/opengl/nvidia/lib/libGL.so.${PV} |
689 |
usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV} |
690 |
usr/lib64/opengl/nvidia/extensions/libglx.so.${PV} |
691 |
usr/lib64/xorg/modules/drivers/nvidia_drv.so |
692 |
usr/bin/nvidia-settings |
693 |
usr/bin/nvidia-smi |
694 |
usr/bin/nvidia-xconfig" |
695 |
|
696 |
QA_WX_LOAD_x86="usr/lib/opengl/nvidia/lib/libGLcore.so.${PV} |
697 |
usr/lib/opengl/nvidia/lib/libGL.so.${PV} |
698 |
usr/lib/opengl/nvidia/extensions/libglx.so.${PV} |
699 |
usr/lib/libXvMCNVIDIA.a" |
700 |
|
701 |
QA_WX_LOAD_amd64="usr/lib32/opengl/nvidia/lib/libGL.so.${PV} |
702 |
usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV} |
703 |
usr/lib64/opengl/nvidia/lib/libGL.so.${PV} |
704 |
usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV} |
705 |
usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}" |
706 |
|
707 |
QA_SONAME_amd64="usr/lib64/libnvcompiler.so.${PV}" |
708 |
|
709 |
QA_DT_HASH_amd64="usr/lib32/libcuda.so.${PV} |
710 |
usr/lib32/opengl/nvidia/lib/libGL.so.${PV} |
711 |
usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV} |
712 |
usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
713 |
usr/lib32/libvdpau_nvidia.so.${PV} |
714 |
usr/lib64/libXvMCNVIDIA.so.${PV} |
715 |
usr/lib64/libcuda.so.${PV} |
716 |
usr/lib64/libnvidia-cfg.so.${PV} |
717 |
usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV} |
718 |
usr/lib64/opengl/nvidia/lib/libGL.so.${PV} |
719 |
usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
720 |
usr/lib64/opengl/nvidia/extensions/libglx.so.${PV} |
721 |
usr/lib64/xorg/modules/drivers/nvidia_drv.so |
722 |
usr/lib64/libvdpau_nvidia.so.${PV} |
723 |
usr/bin/nvidia-settings |
724 |
usr/bin/nvidia-smi |
725 |
usr/bin/nvidia-xconfig" |
726 |
|
727 |
QA_DT_HASH_x86="usr/lib/libcuda.so.${PV} |
728 |
usr/lib/libnvidia-cfg.so.${PV} |
729 |
usr/lib/opengl/nvidia/lib/libGLcore.so.${PV} |
730 |
usr/lib/opengl/nvidia/lib/libGL.so.${PV} |
731 |
usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
732 |
usr/lib/opengl/nvidia/extensions/libglx.so.${PV} |
733 |
usr/lib/xorg/modules/drivers/nvidia_drv.so |
734 |
usr/lib/libXvMCNVIDIA.so.${PV} |
735 |
usr/lib/libvdpau_nvidia.so.${PV} |
736 |
usr/bin/nvidia-settings |
737 |
usr/bin/nvidia-smi |
738 |
usr/bin/nvidia-xconfig" |
739 |
|
740 |
if use x86; then |
741 |
PKG_V="-pkg0" |
742 |
NV_PACKAGE="${X86_NV_PACKAGE}" |
743 |
elif use amd64; then |
744 |
PKG_V="-pkg2" |
745 |
NV_PACKAGE="${AMD64_NV_PACKAGE}" |
746 |
elif use x86-fbsd; then |
747 |
PKG_V="" |
748 |
NV_PACKAGE="${X86_FBSD_NV_PACKAGE}" |
749 |
fi |
750 |
|
751 |
S="${WORKDIR}/${NV_PACKAGE}${PKG_V}" |
752 |
|
753 |
mtrr_check() { |
754 |
ebegin "Checking for MTRR support" |
755 |
linux_chkconfig_present MTRR |
756 |
eend $? |
757 |
|
758 |
if [[ $? -ne 0 ]] ; then |
759 |
eerror "Please enable MTRR support in your kernel config, found at:" |
760 |
eerror |
761 |
eerror " Processor type and features" |
762 |
eerror " [*] MTRR (Memory Type Range Register) support" |
763 |
eerror |
764 |
eerror "and recompile your kernel ..." |
765 |
die "MTRR support not detected!" |
766 |
fi |
767 |
} |
768 |
|
769 |
lockdep_check() { |
770 |
if linux_chkconfig_present LOCKDEP; then |
771 |
eerror "You've enabled LOCKDEP -- lock tracking -- in the kernel." |
772 |
eerror "Unfortunately, this option exports the symbol 'lockdep_init_map' as GPL-only" |
773 |
eerror "which will prevent ${P} from compiling." |
774 |
eerror "Please make sure the following options have been unset:" |
775 |
eerror " Kernel hacking --->" |
776 |
eerror " [ ] Lock debugging: detect incorrect freeing of live locks" |
777 |
eerror " [ ] Lock debugging: prove locking correctness" |
778 |
eerror " [ ] Lock usage statistics" |
779 |
eerror "in 'menuconfig'" |
780 |
die "LOCKDEP enabled" |
781 |
fi |
782 |
} |
783 |
|
784 |
pkg_setup() { |
785 |
# try to turn off distcc and ccache for people that have a problem with it |
786 |
export DISTCC_DISABLE=1 |
787 |
export CCACHE_DISABLE=1 |
788 |
|
789 |
if use amd64 && has_multilib_profile && [ "${DEFAULT_ABI}" != "amd64" ]; then |
790 |
eerror "This ebuild doesn't currently support changing your default abi." |
791 |
die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}" |
792 |
fi |
793 |
|
794 |
if use kernel_linux; then |
795 |
linux-mod_pkg_setup |
796 |
MODULE_NAMES="nvidia(video:${S}/usr/src/nv)" |
797 |
BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \ |
798 |
SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)" |
799 |
mtrr_check |
800 |
lockdep_check |
801 |
fi |
802 |
|
803 |
# On BSD userland it wants real make command |
804 |
use userland_BSD && MAKE="$(get_bmake)" |
805 |
|
806 |
export _POSIX2_VERSION="199209" |
807 |
|
808 |
# Since Nvidia ships 3 different series of drivers, we need to give the user |
809 |
# some kind of guidance as to what version they should install. This tries |
810 |
# to point the user in the right direction but can't be perfect. check |
811 |
# nvidia-driver.eclass |
812 |
nvidia-driver-check-warning |
813 |
|
814 |
# set variables to where files are in the package structure |
815 |
if use kernel_FreeBSD; then |
816 |
NV_DOC="${S}/doc" |
817 |
NV_EXEC="${S}/obj" |
818 |
NV_LIB="${S}/obj" |
819 |
NV_SRC="${S}/src" |
820 |
NV_MAN="${S}/x11/man" |
821 |
NV_X11="${S}/obj" |
822 |
NV_X11_DRV="${NV_X11}" |
823 |
NV_X11_EXT="${NV_X11}" |
824 |
NV_SOVER=1 |
825 |
elif use kernel_linux; then |
826 |
NV_DOC="${S}/usr/share/doc" |
827 |
NV_EXEC="${S}/usr/bin" |
828 |
NV_LIB="${S}/usr/lib" |
829 |
NV_SRC="${S}/usr/src/nv" |
830 |
NV_MAN="${S}/usr/share/man/man1" |
831 |
NV_X11="${S}/usr/X11R6/lib" |
832 |
NV_X11_DRV="${NV_X11}/modules/drivers" |
833 |
NV_X11_EXT="${NV_X11}/modules/extensions" |
834 |
NV_SOVER=${PV} |
835 |
else |
836 |
die "Could not determine proper NVIDIA package" |
837 |
fi |
838 |
} |
839 |
|
840 |
src_unpack() { |
841 |
if use kernel_linux && kernel_is lt 2 6 7; then |
842 |
echo |
843 |
ewarn "Your kernel version is ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" |
844 |
ewarn "This is not officially supported for ${P}. It is likely you" |
845 |
ewarn "will not be able to compile or use the kernel module." |
846 |
ewarn "It is recommended that you upgrade your kernel to a version >= 2.6.7" |
847 |
echo |
848 |
ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored." |
849 |
fi |
850 |
|
851 |
if ! use x86-fbsd; then |
852 |
mkdir "${S}" |
853 |
cd "${S}" |
854 |
unpack_makeself |
855 |
else |
856 |
unpack ${A} |
857 |
fi |
858 |
} |
859 |
|
860 |
src_prepare() { |
861 |
# Please add a brief description for every added patch |
862 |
use x86-fbsd && cd doc |
863 |
|
864 |
# Use the correct defines to make gtkglext build work |
865 |
epatch "${FILESDIR}"/NVIDIA_glx-defines.patch |
866 |
# Use some more sensible gl headers and make way for new glext.h |
867 |
epatch "${FILESDIR}"/NVIDIA_glx-glheader.patch |
868 |
|
869 |
if use kernel_linux; then |
870 |
# Quiet down warnings the user does not need to see |
871 |
sed -i \ |
872 |
-e 's:-Wpointer-arith::g' \ |
873 |
-e 's:-Wsign-compare::g' \ |
874 |
"${NV_SRC}"/Makefile.kbuild |
875 |
|
876 |
epatch "${FILESDIR}"/${PN}-173.14.30-2.6.39.patch #368939 |
877 |
|
878 |
# If you set this then it's your own fault when stuff breaks :) |
879 |
use custom-cflags && sed -i "s:-O:${CFLAGS}:" "${NV_SRC}"/Makefile.* |
880 |
|
881 |
# If greater than 2.6.5 use M= instead of SUBDIR= |
882 |
convert_to_m "${NV_SRC}"/Makefile.kbuild |
883 |
fi |
884 |
} |
885 |
|
886 |
src_compile() { |
887 |
# This is already the default on Linux, as there's no toplevel Makefile, but |
888 |
# on FreeBSD there's one and triggers the kernel module build, as we install |
889 |
# it by itself, pass this. |
890 |
|
891 |
cd "${NV_SRC}" |
892 |
if use x86-fbsd; then |
893 |
MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \ |
894 |
LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die |
895 |
elif use kernel_linux; then |
896 |
linux-mod_src_compile |
897 |
fi |
898 |
} |
899 |
|
900 |
src_install() { |
901 |
if use kernel_linux; then |
902 |
linux-mod_src_install |
903 |
|
904 |
VIDEOGROUP="$(egetent group video | cut -d ':' -f 3)" |
905 |
if [ -z "$VIDEOGROUP" ]; then |
906 |
eerror "Failed to determine the video group gid." |
907 |
die "Failed to determine the video group gid." |
908 |
fi |
909 |
|
910 |
# Add the aliases |
911 |
[ -f "${FILESDIR}/nvidia-169.07" ] || die "nvidia missing in FILESDIR" |
912 |
sed -e 's:PACKAGE:'${PF}':g' \ |
913 |
-e 's:VIDEOGID:'${VIDEOGROUP}':' "${FILESDIR}"/nvidia-169.07 > \ |
914 |
"${WORKDIR}"/nvidia |
915 |
insinto /etc/modprobe.d |
916 |
newins "${WORKDIR}"/nvidia nvidia.conf || die |
917 |
elif use x86-fbsd; then |
918 |
insinto /boot/modules |
919 |
doins "${WORKDIR}/${NV_PACKAGE}/src/nvidia.kld" || die |
920 |
|
921 |
exeinto /boot/modules |
922 |
doexe "${WORKDIR}/${NV_PACKAGE}/src/nvidia.ko" || die |
923 |
fi |
924 |
|
925 |
# NVIDIA kernel <-> userspace driver config lib |
926 |
dolib.so ${NV_LIB}/libnvidia-cfg.so.${NV_SOVER} || \ |
927 |
die "failed to install libnvidia-cfg" |
928 |
|
929 |
# Xorg DDX driver |
930 |
insinto /usr/$(get_libdir)/xorg/modules/drivers |
931 |
doins ${NV_X11_DRV}/nvidia_drv.so || die "failed to install nvidia_drv.so" |
932 |
|
933 |
# Xorg GLX driver |
934 |
insinto /usr/$(get_libdir)/opengl/nvidia/extensions |
935 |
doins ${NV_X11_EXT}/libglx.so.${NV_SOVER} || \ |
936 |
die "failed to install libglx.so" |
937 |
dosym /usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so.${NV_SOVER} \ |
938 |
/usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so || \ |
939 |
die "failed to create libglx.so symlink" |
940 |
|
941 |
# XvMC driver |
942 |
dolib.a ${NV_X11}/libXvMCNVIDIA.a || \ |
943 |
die "failed to install libXvMCNVIDIA.so" |
944 |
dolib.so ${NV_X11}/libXvMCNVIDIA.so.${NV_SOVER} || \ |
945 |
die "failed to install libXvMCNVIDIA.so" |
946 |
dosym libXvMCNVIDIA.so.${NV_SOVER} /usr/$(get_libdir)/libXvMCNVIDIA.so || \ |
947 |
die "failed to create libXvMCNVIDIA.so symlink" |
948 |
|
949 |
# CUDA headers (driver to come) |
950 |
if [[ -d ${S}/usr/include/cuda ]]; then |
951 |
dodir /usr/include/cuda |
952 |
insinto /usr/include/cuda |
953 |
doins usr/include/cuda/*.h || die "failed to install cuda headers" |
954 |
fi |
955 |
|
956 |
# OpenCL headers (driver to come) |
957 |
if [[ -d ${S}/usr/include/CL ]]; then |
958 |
dodir /usr/include/CL |
959 |
insinto /usr/include/CL |
960 |
doins usr/include/CL/*.h || die "failed to install OpenCL headers" |
961 |
fi |
962 |
|
963 |
# Documentation |
964 |
dodoc ${NV_DOC}/XF86Config.sample |
965 |
dohtml ${NV_DOC}/html/* |
966 |
if use x86-fbsd; then |
967 |
dodoc "${NV_DOC}/README" |
968 |
doman "${NV_MAN}/nvidia-xconfig.1" |
969 |
else |
970 |
# Docs |
971 |
newdoc "${NV_DOC}/README.txt" README |
972 |
dodoc "${NV_DOC}/NVIDIA_Changelog" |
973 |
# doman "${NV_MAN}/nvidia-smi.1.gz" |
974 |
doman "${NV_MAN}/nvidia-xconfig.1.gz" |
975 |
fi |
976 |
|
977 |
# Helper Apps |
978 |
dobin ${NV_EXEC}/nvidia-xconfig || die |
979 |
dobin ${NV_EXEC}/nvidia-bug-report.sh || die |
980 |
if use gtk; then |
981 |
dobin usr/bin/nvidia-settings || die |
982 |
fi |
983 |
# if use kernel_linux; then |
984 |
# dobin ${NV_EXEC}/nvidia-smi || die |
985 |
# fi |
986 |
|
987 |
if has_multilib_profile ; then |
988 |
local OABI=${ABI} |
989 |
for ABI in $(get_install_abis) ; do |
990 |
src_install-libs |
991 |
done |
992 |
ABI=${OABI} |
993 |
unset OABI |
994 |
else |
995 |
src_install-libs |
996 |
fi |
997 |
|
998 |
is_final_abi || die "failed to iterate through all ABIs" |
999 |
} |
1000 |
|
1001 |
# Install nvidia library: |
1002 |
# the first parameter is the place where to install it |
1003 |
# the second parameter is the base name of the library |
1004 |
# the third parameter is the provided soversion |
1005 |
donvidia() { |
1006 |
dodir $1 |
1007 |
exeinto $1 |
1008 |
|
1009 |
libname=$(basename $2) |
1010 |
|
1011 |
doexe $2.$3 || die "failed to install $2" |
1012 |
dosym ${libname}.$3 $1/${libname} || die "failed to symlink $2" |
1013 |
[[ $3 != "1" ]] && dosym ${libname}.$3 $1/${libname}.1 |
1014 |
} |
1015 |
|
1016 |
src_install-libs() { |
1017 |
local inslibdir=$(get_libdir) |
1018 |
local NV_ROOT="/usr/${inslibdir}/opengl/nvidia" |
1019 |
local libdir= sover= |
1020 |
|
1021 |
if use kernel_linux; then |
1022 |
if has_multilib_profile && [[ ${ABI} == "x86" ]] ; then |
1023 |
libdir=usr/lib32 |
1024 |
else |
1025 |
libdir=usr/lib |
1026 |
fi |
1027 |
sover=${PV} |
1028 |
else |
1029 |
libdir=obj |
1030 |
# on FreeBSD it has just .1 suffix |
1031 |
sover=1 |
1032 |
fi |
1033 |
|
1034 |
# The GLX libraries |
1035 |
donvidia ${NV_ROOT}/lib ${libdir}/libGL.so ${sover} |
1036 |
donvidia ${NV_ROOT}/lib ${libdir}/libGLcore.so ${sover} |
1037 |
if use x86-fbsd; then |
1038 |
donvidia ${NV_ROOT}/lib ${libdir}/libnvidia-tls.so ${sover} |
1039 |
else |
1040 |
donvidia ${NV_ROOT}/lib ${libdir}/tls/libnvidia-tls.so ${sover} |
1041 |
fi |
1042 |
|
1043 |
#cuda |
1044 |
if [[ -f ${libdir}/libcuda.so.${sover} ]]; then |
1045 |
dolib.so ${libdir}/libcuda.so.${sover} |
1046 |
[[ "${sover}" != "1" ]] && dosym libcuda.so.${sover} /usr/${inslibdir}/libcuda.so.1 |
1047 |
dosym libcuda.so.1 /usr/${inslibdir}/libcuda.so |
1048 |
fi |
1049 |
|
1050 |
#vdpau |
1051 |
if [[ -f ${libdir}/libvdpau_nvidia.so.${sover} ]]; then |
1052 |
dolib.so ${libdir}/libvdpau_nvidia.so.${sover} |
1053 |
dosym libvdpau_nvidia.so.${sover} /usr/${inslibdir}/libvdpau_nvidia.so |
1054 |
fi |
1055 |
|
1056 |
# OpenCL |
1057 |
# NOTE: This isn't currently available in the publicly released drivers. |
1058 |
if [[ -f ${libdir}/libOpenCL.so.1.0.0 ]]; then |
1059 |
|
1060 |
dolib.so ${libdir}/libnvcompiler.so.${sover} |
1061 |
[[ "${sover}" != "1" ]] && dosym libnvcompiler.so.${sover} /usr/${inslibdir}/libnvcompiler.so.1 |
1062 |
dosym libnvcompiler.so.1 /usr/${inslibdir}/libnvcompiler.so |
1063 |
|
1064 |
dolib.so ${libdir}/libOpenCL.so.1.0.0 |
1065 |
dosym libOpenCL.so.1.0.0 /usr/${inslibdir}/libOpenCL.so.1 |
1066 |
dosym libOpenCL.so.1 /usr/${inslibdir}/libOpenCL.so |
1067 |
fi |
1068 |
} |
1069 |
|
1070 |
pkg_preinst() { |
1071 |
if use kernel_linux; then |
1072 |
linux-mod_pkg_postinst |
1073 |
fi |
1074 |
|
1075 |
# Clean the dynamic libGL stuff's home to ensure |
1076 |
# we dont have stale libs floating around |
1077 |
if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then |
1078 |
rm -rf "${ROOT}"/usr/lib/opengl/nvidia/* |
1079 |
fi |
1080 |
# Make sure we nuke the old nvidia-glx's env.d file |
1081 |
if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then |
1082 |
rm -f "${ROOT}"/etc/env.d/09nvidia |
1083 |
fi |
1084 |
} |
1085 |
|
1086 |
pkg_postinst() { |
1087 |
if use kernel_linux; then |
1088 |
linux-mod_pkg_postinst |
1089 |
fi |
1090 |
|
1091 |
# Switch to the nvidia implementation |
1092 |
eselect opengl set --use-old nvidia |
1093 |
|
1094 |
echo |
1095 |
elog "You must be in the video group to use the NVIDIA device" |
1096 |
elog "For more info, read the docs at" |
1097 |
elog "http://www.gentoo.org/doc/en/nvidia-guide.xml#doc_chap3_sect6" |
1098 |
elog |
1099 |
|
1100 |
elog "This ebuild installs a kernel module and X driver. Both must" |
1101 |
elog "match explicitly in their version. This means, if you restart" |
1102 |
elog "X, you must modprobe -r nvidia before starting it back up" |
1103 |
elog |
1104 |
|
1105 |
elog "To use the NVIDIA GLX, run \"eselect opengl set nvidia\"" |
1106 |
elog |
1107 |
elog "NVIDIA has requested that any bug reports submitted have the" |
1108 |
elog "output of /usr/bin/nvidia-bug-report.sh included." |
1109 |
elog |
1110 |
elog "To work with compiz, you must enable the AddARGBGLXVisuals option." |
1111 |
elog |
1112 |
elog "If you are having resolution problems, try disabling DynamicTwinView." |
1113 |
echo |
1114 |
} |
1115 |
|
1116 |
pkg_postrm() { |
1117 |
if use kernel_linux; then |
1118 |
linux-mod_pkg_postrm |
1119 |
fi |
1120 |
eselect opengl set --use-old xorg-x11 |
1121 |
} |
1122 |
|
1123 |
|
1124 |
|
1125 |
1.1 x11-drivers/nvidia-drivers/nvidia-drivers-173.14.31.ebuild |
1126 |
|
1127 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-173.14.31.ebuild?rev=1.1&view=markup |
1128 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-173.14.31.ebuild?rev=1.1&content-type=text/plain |
1129 |
|
1130 |
Index: nvidia-drivers-173.14.31.ebuild |
1131 |
=================================================================== |
1132 |
# Copyright 1999-2011 Gentoo Foundation |
1133 |
# Distributed under the terms of the GNU General Public License v2 |
1134 |
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-173.14.31.ebuild,v 1.1 2011/07/27 14:45:17 cardoe Exp $ |
1135 |
|
1136 |
EAPI="2" |
1137 |
|
1138 |
inherit eutils multilib versionator linux-mod flag-o-matic nvidia-driver |
1139 |
|
1140 |
X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}" |
1141 |
AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}" |
1142 |
X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}" |
1143 |
|
1144 |
DESCRIPTION="NVIDIA X11 driver and GLX libraries" |
1145 |
HOMEPAGE="http://www.nvidia.com/" |
1146 |
SRC_URI="x86? ( ftp://download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}-pkg0.run ) |
1147 |
amd64? ( ftp://download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}-pkg2.run ) |
1148 |
x86-fbsd? ( ftp://download.nvidia.com/freebsd/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )" |
1149 |
|
1150 |
LICENSE="NVIDIA" |
1151 |
SLOT="0" |
1152 |
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd" |
1153 |
IUSE="acpi custom-cflags gtk multilib kernel_linux" |
1154 |
RESTRICT="strip" |
1155 |
EMULTILIB_PKG="true" |
1156 |
|
1157 |
COMMON="<x11-base/xorg-server-1.11 |
1158 |
kernel_linux? ( >=sys-libs/glibc-2.6.1 ) |
1159 |
multilib? ( app-emulation/emul-linux-x86-opengl ) |
1160 |
>=app-admin/eselect-opengl-1.0.9" |
1161 |
DEPEND="${COMMON} |
1162 |
kernel_linux? ( virtual/linux-sources )" |
1163 |
RDEPEND="${COMMON} |
1164 |
acpi? ( sys-power/acpid )" |
1165 |
PDEPEND="gtk? ( media-video/nvidia-settings )" |
1166 |
|
1167 |
QA_TEXTRELS_x86="usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
1168 |
usr/lib/opengl/nvidia/lib/libGL.so.${PV} |
1169 |
usr/lib/opengl/nvidia/lib/libGLcore.so.${PV} |
1170 |
usr/lib/opengl/nvidia/extensions/libglx.so.${PV} |
1171 |
usr/lib/xorg/modules/drivers/nvidia_drv.so |
1172 |
usr/lib/libcuda.so.${PV} |
1173 |
usr/lib/libnvidia-cfg.so.${PV} |
1174 |
usr/lib/libvdpau_nvidia.so.${PV} |
1175 |
usr/lib/libXvMCNVIDIA.so.${PV}" |
1176 |
|
1177 |
QA_TEXTRELS_x86_fbsd="boot/modules/nvidia.ko |
1178 |
usr/lib/opengl/nvidia/lib/libGL.so.1 |
1179 |
usr/lib/opengl/nvidia/lib/libGLcore.so.1 |
1180 |
usr/lib/libnvidia-cfg.so.1 |
1181 |
usr/lib/opengl/nvidia/extensions/libglx.so.1 |
1182 |
usr/lib/xorg/modules/drivers/nvidia_drv.so" |
1183 |
|
1184 |
QA_TEXTRELS_amd64="usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
1185 |
usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV} |
1186 |
usr/lib32/opengl/nvidia/lib/libGL.so.${PV} |
1187 |
usr/lib32/libcuda.so.${PV} |
1188 |
usr/lib32/libvdpau_nvidia.so.${PV}" |
1189 |
|
1190 |
QA_EXECSTACK_x86="usr/lib/opengl/nvidia/lib/libGL.so.${PV} |
1191 |
usr/lib/opengl/nvidia/lib/libGLcore.so.${PV} |
1192 |
usr/lib/opengl/nvidia/extensions/libglx.so.${PV} |
1193 |
usr/lib/xorg/modules/drivers/nvidia_drv.so |
1194 |
usr/lib/libXvMCNVIDIA.a:NVXVMC.o" |
1195 |
|
1196 |
QA_EXECSTACK_amd64="usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV} |
1197 |
usr/lib32/opengl/nvidia/lib/libGL.so.${PV} |
1198 |
usr/lib64/libnvcompiler.so.${PV} |
1199 |
usr/lib64/libXvMCNVIDIA.so.${PV} |
1200 |
usr/lib64/libXvMCNVIDIA.a:NVXVMC.o |
1201 |
usr/lib64/libnvidia-cfg.so.${PV} |
1202 |
usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
1203 |
usr/lib64/opengl/nvidia/lib/libGL.so.${PV} |
1204 |
usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV} |
1205 |
usr/lib64/opengl/nvidia/extensions/libglx.so.${PV} |
1206 |
usr/lib64/xorg/modules/drivers/nvidia_drv.so |
1207 |
usr/bin/nvidia-smi |
1208 |
usr/bin/nvidia-xconfig" |
1209 |
|
1210 |
QA_WX_LOAD_x86="usr/lib/opengl/nvidia/lib/libGLcore.so.${PV} |
1211 |
usr/lib/opengl/nvidia/lib/libGL.so.${PV} |
1212 |
usr/lib/opengl/nvidia/extensions/libglx.so.${PV} |
1213 |
usr/lib/libXvMCNVIDIA.a" |
1214 |
|
1215 |
QA_WX_LOAD_amd64="usr/lib32/opengl/nvidia/lib/libGL.so.${PV} |
1216 |
usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV} |
1217 |
usr/lib64/opengl/nvidia/lib/libGL.so.${PV} |
1218 |
usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV} |
1219 |
usr/lib64/opengl/nvidia/extensions/libglx.so.${PV}" |
1220 |
|
1221 |
QA_SONAME_amd64="usr/lib64/libnvcompiler.so.${PV}" |
1222 |
|
1223 |
QA_DT_HASH_amd64="usr/lib32/libcuda.so.${PV} |
1224 |
usr/lib32/opengl/nvidia/lib/libGL.so.${PV} |
1225 |
usr/lib32/opengl/nvidia/lib/libGLcore.so.${PV} |
1226 |
usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
1227 |
usr/lib32/libvdpau_nvidia.so.${PV} |
1228 |
usr/lib64/libXvMCNVIDIA.so.${PV} |
1229 |
usr/lib64/libcuda.so.${PV} |
1230 |
usr/lib64/libnvidia-cfg.so.${PV} |
1231 |
usr/lib64/opengl/nvidia/lib/libGLcore.so.${PV} |
1232 |
usr/lib64/opengl/nvidia/lib/libGL.so.${PV} |
1233 |
usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
1234 |
usr/lib64/opengl/nvidia/extensions/libglx.so.${PV} |
1235 |
usr/lib64/xorg/modules/drivers/nvidia_drv.so |
1236 |
usr/lib64/libvdpau_nvidia.so.${PV} |
1237 |
usr/bin/nvidia-smi |
1238 |
usr/bin/nvidia-xconfig" |
1239 |
|
1240 |
QA_DT_HASH_x86="usr/lib/libcuda.so.${PV} |
1241 |
usr/lib/libnvidia-cfg.so.${PV} |
1242 |
usr/lib/opengl/nvidia/lib/libGLcore.so.${PV} |
1243 |
usr/lib/opengl/nvidia/lib/libGL.so.${PV} |
1244 |
usr/lib/opengl/nvidia/lib/libnvidia-tls.so.${PV} |
1245 |
usr/lib/opengl/nvidia/extensions/libglx.so.${PV} |
1246 |
usr/lib/xorg/modules/drivers/nvidia_drv.so |
1247 |
usr/lib/libXvMCNVIDIA.so.${PV} |
1248 |
usr/lib/libvdpau_nvidia.so.${PV} |
1249 |
usr/bin/nvidia-smi |
1250 |
usr/bin/nvidia-xconfig" |
1251 |
|
1252 |
if use x86; then |
1253 |
PKG_V="-pkg0" |
1254 |
NV_PACKAGE="${X86_NV_PACKAGE}" |
1255 |
elif use amd64; then |
1256 |
PKG_V="-pkg2" |
1257 |
NV_PACKAGE="${AMD64_NV_PACKAGE}" |
1258 |
elif use x86-fbsd; then |
1259 |
PKG_V="" |
1260 |
NV_PACKAGE="${X86_FBSD_NV_PACKAGE}" |
1261 |
fi |
1262 |
|
1263 |
S="${WORKDIR}/${NV_PACKAGE}${PKG_V}" |
1264 |
|
1265 |
mtrr_check() { |
1266 |
ebegin "Checking for MTRR support" |
1267 |
linux_chkconfig_present MTRR |
1268 |
eend $? |
1269 |
|
1270 |
if [[ $? -ne 0 ]] ; then |
1271 |
eerror "Please enable MTRR support in your kernel config, found at:" |
1272 |
eerror |
1273 |
eerror " Processor type and features" |
1274 |
eerror " [*] MTRR (Memory Type Range Register) support" |
1275 |
eerror |
1276 |
eerror "and recompile your kernel ..." |
1277 |
die "MTRR support not detected!" |
1278 |
fi |
1279 |
} |
1280 |
|
1281 |
lockdep_check() { |
1282 |
if linux_chkconfig_present LOCKDEP; then |
1283 |
eerror "You've enabled LOCKDEP -- lock tracking -- in the kernel." |
1284 |
eerror "Unfortunately, this option exports the symbol 'lockdep_init_map' as GPL-only" |
1285 |
eerror "which will prevent ${P} from compiling." |
1286 |
eerror "Please make sure the following options have been unset:" |
1287 |
eerror " Kernel hacking --->" |
1288 |
eerror " [ ] Lock debugging: detect incorrect freeing of live locks" |
1289 |
eerror " [ ] Lock debugging: prove locking correctness" |
1290 |
eerror " [ ] Lock usage statistics" |
1291 |
eerror "in 'menuconfig'" |
1292 |
die "LOCKDEP enabled" |
1293 |
fi |
1294 |
} |
1295 |
|
1296 |
pkg_setup() { |
1297 |
# try to turn off distcc and ccache for people that have a problem with it |
1298 |
export DISTCC_DISABLE=1 |
1299 |
export CCACHE_DISABLE=1 |
1300 |
|
1301 |
if use amd64 && has_multilib_profile && [ "${DEFAULT_ABI}" != "amd64" ]; then |
1302 |
eerror "This ebuild doesn't currently support changing your default abi." |
1303 |
die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}" |
1304 |
fi |
1305 |
|
1306 |
if use kernel_linux; then |
1307 |
linux-mod_pkg_setup |
1308 |
MODULE_NAMES="nvidia(video:${S}/usr/src/nv)" |
1309 |
BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \ |
1310 |
SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)" |
1311 |
mtrr_check |
1312 |
lockdep_check |
1313 |
fi |
1314 |
|
1315 |
# On BSD userland it wants real make command |
1316 |
use userland_BSD && MAKE="$(get_bmake)" |
1317 |
|
1318 |
export _POSIX2_VERSION="199209" |
1319 |
|
1320 |
# Since Nvidia ships 3 different series of drivers, we need to give the user |
1321 |
# some kind of guidance as to what version they should install. This tries |
1322 |
# to point the user in the right direction but can't be perfect. check |
1323 |
# nvidia-driver.eclass |
1324 |
nvidia-driver-check-warning |
1325 |
|
1326 |
# set variables to where files are in the package structure |
1327 |
if use kernel_FreeBSD; then |
1328 |
NV_DOC="${S}/doc" |
1329 |
NV_EXEC="${S}/obj" |
1330 |
NV_LIB="${S}/obj" |
1331 |
NV_SRC="${S}/src" |
1332 |
NV_MAN="${S}/x11/man" |
1333 |
NV_X11="${S}/obj" |
1334 |
NV_X11_DRV="${NV_X11}" |
1335 |
NV_X11_EXT="${NV_X11}" |
1336 |
NV_SOVER=1 |
1337 |
elif use kernel_linux; then |
1338 |
NV_DOC="${S}/usr/share/doc" |
1339 |
NV_EXEC="${S}/usr/bin" |
1340 |
NV_LIB="${S}/usr/lib" |
1341 |
NV_SRC="${S}/usr/src/nv" |
1342 |
NV_MAN="${S}/usr/share/man/man1" |
1343 |
NV_X11="${S}/usr/X11R6/lib" |
1344 |
NV_X11_DRV="${NV_X11}/modules/drivers" |
1345 |
NV_X11_EXT="${NV_X11}/modules/extensions" |
1346 |
NV_SOVER=${PV} |
1347 |
else |
1348 |
die "Could not determine proper NVIDIA package" |
1349 |
fi |
1350 |
} |
1351 |
|
1352 |
src_unpack() { |
1353 |
if use kernel_linux && kernel_is lt 2 6 7; then |
1354 |
echo |
1355 |
ewarn "Your kernel version is ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" |
1356 |
ewarn "This is not officially supported for ${P}. It is likely you" |
1357 |
ewarn "will not be able to compile or use the kernel module." |
1358 |
ewarn "It is recommended that you upgrade your kernel to a version >= 2.6.7" |
1359 |
echo |
1360 |
ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored." |
1361 |
fi |
1362 |
|
1363 |
if ! use x86-fbsd; then |
1364 |
mkdir "${S}" |
1365 |
cd "${S}" |
1366 |
unpack_makeself |
1367 |
else |
1368 |
unpack ${A} |
1369 |
fi |
1370 |
} |
1371 |
|
1372 |
src_prepare() { |
1373 |
# Please add a brief description for every added patch |
1374 |
use x86-fbsd && cd doc |
1375 |
|
1376 |
# Use the correct defines to make gtkglext build work |
1377 |
epatch "${FILESDIR}"/NVIDIA_glx-defines.patch |
1378 |
# Use some more sensible gl headers and make way for new glext.h |
1379 |
epatch "${FILESDIR}"/NVIDIA_glx-glheader.patch |
1380 |
|
1381 |
if use kernel_linux; then |
1382 |
# Quiet down warnings the user does not need to see |
1383 |
sed -i \ |
1384 |
-e 's:-Wpointer-arith::g' \ |
1385 |
-e 's:-Wsign-compare::g' \ |
1386 |
"${NV_SRC}"/Makefile.kbuild |
1387 |
|
1388 |
# If you set this then it's your own fault when stuff breaks :) |
1389 |
use custom-cflags && sed -i "s:-O:${CFLAGS}:" "${NV_SRC}"/Makefile.* |
1390 |
|
1391 |
# If greater than 2.6.5 use M= instead of SUBDIR= |
1392 |
convert_to_m "${NV_SRC}"/Makefile.kbuild |
1393 |
fi |
1394 |
} |
1395 |
|
1396 |
src_compile() { |
1397 |
# This is already the default on Linux, as there's no toplevel Makefile, but |
1398 |
# on FreeBSD there's one and triggers the kernel module build, as we install |
1399 |
# it by itself, pass this. |
1400 |
|
1401 |
cd "${NV_SRC}" |
1402 |
if use x86-fbsd; then |
1403 |
MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \ |
1404 |
LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die |
1405 |
elif use kernel_linux; then |
1406 |
linux-mod_src_compile |
1407 |
fi |
1408 |
} |
1409 |
|
1410 |
src_install() { |
1411 |
if use kernel_linux; then |
1412 |
linux-mod_src_install |
1413 |
|
1414 |
VIDEOGROUP="$(egetent group video | cut -d ':' -f 3)" |
1415 |
if [ -z "$VIDEOGROUP" ]; then |
1416 |
eerror "Failed to determine the video group gid." |
1417 |
die "Failed to determine the video group gid." |
1418 |
fi |
1419 |
|
1420 |
# Add the aliases |
1421 |
[ -f "${FILESDIR}/nvidia-169.07" ] || die "nvidia missing in FILESDIR" |
1422 |
sed -e 's:PACKAGE:'${PF}':g' \ |
1423 |
-e 's:VIDEOGID:'${VIDEOGROUP}':' "${FILESDIR}"/nvidia-169.07 > \ |
1424 |
"${WORKDIR}"/nvidia |
1425 |
insinto /etc/modprobe.d |
1426 |
newins "${WORKDIR}"/nvidia nvidia.conf || die |
1427 |
elif use x86-fbsd; then |
1428 |
insinto /boot/modules |
1429 |
doins "${WORKDIR}/${NV_PACKAGE}/src/nvidia.kld" || die |
1430 |
|
1431 |
exeinto /boot/modules |
1432 |
doexe "${WORKDIR}/${NV_PACKAGE}/src/nvidia.ko" || die |
1433 |
fi |
1434 |
|
1435 |
# NVIDIA kernel <-> userspace driver config lib |
1436 |
dolib.so ${NV_LIB}/libnvidia-cfg.so.${NV_SOVER} || \ |
1437 |
die "failed to install libnvidia-cfg" |
1438 |
|
1439 |
# Xorg DDX driver |
1440 |
insinto /usr/$(get_libdir)/xorg/modules/drivers |
1441 |
doins ${NV_X11_DRV}/nvidia_drv.so || die "failed to install nvidia_drv.so" |
1442 |
|
1443 |
# Xorg GLX driver |
1444 |
insinto /usr/$(get_libdir)/opengl/nvidia/extensions |
1445 |
doins ${NV_X11_EXT}/libglx.so.${NV_SOVER} || \ |
1446 |
die "failed to install libglx.so" |
1447 |
dosym /usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so.${NV_SOVER} \ |
1448 |
/usr/$(get_libdir)/opengl/nvidia/extensions/libglx.so || \ |
1449 |
die "failed to create libglx.so symlink" |
1450 |
|
1451 |
# XvMC driver |
1452 |
dolib.a ${NV_X11}/libXvMCNVIDIA.a || \ |
1453 |
die "failed to install libXvMCNVIDIA.so" |
1454 |
dolib.so ${NV_X11}/libXvMCNVIDIA.so.${NV_SOVER} || \ |
1455 |
die "failed to install libXvMCNVIDIA.so" |
1456 |
dosym libXvMCNVIDIA.so.${NV_SOVER} /usr/$(get_libdir)/libXvMCNVIDIA.so || \ |
1457 |
die "failed to create libXvMCNVIDIA.so symlink" |
1458 |
|
1459 |
# CUDA headers (driver to come) |
1460 |
if use kernel_linux && [[ -d ${S}/usr/include/cuda ]]; then |
1461 |
dodir /usr/include/cuda |
1462 |
insinto /usr/include/cuda |
1463 |
doins usr/include/cuda/*.h || die "failed to install cuda headers" |
1464 |
fi |
1465 |
|
1466 |
# OpenCL headers (driver to come) |
1467 |
if [[ -d ${S}/usr/include/CL ]]; then |
1468 |
dodir /usr/include/CL |
1469 |
insinto /usr/include/CL |
1470 |
doins usr/include/CL/*.h || die "failed to install OpenCL headers" |
1471 |
fi |
1472 |
|
1473 |
# Documentation |
1474 |
dodoc ${NV_DOC}/XF86Config.sample |
1475 |
dohtml ${NV_DOC}/html/* |
1476 |
if use x86-fbsd; then |
1477 |
dodoc "${NV_DOC}/README" |
1478 |
doman "${NV_MAN}/nvidia-xconfig.1" |
1479 |
else |
1480 |
# Docs |
1481 |
newdoc "${NV_DOC}/README.txt" README |
1482 |
dodoc "${NV_DOC}/NVIDIA_Changelog" |
1483 |
# doman "${NV_MAN}/nvidia-smi.1.gz" |
1484 |
doman "${NV_MAN}/nvidia-xconfig.1.gz" |
1485 |
fi |
1486 |
|
1487 |
# Helper Apps |
1488 |
dobin ${NV_EXEC}/nvidia-xconfig || die |
1489 |
dobin ${NV_EXEC}/nvidia-bug-report.sh || die |
1490 |
if use kernel_linux; then |
1491 |
dobin ${NV_EXEC}/nvidia-smi || die |
1492 |
fi |
1493 |
|
1494 |
if has_multilib_profile ; then |
1495 |
local OABI=${ABI} |
1496 |
for ABI in $(get_install_abis) ; do |
1497 |
src_install-libs |
1498 |
done |
1499 |
ABI=${OABI} |
1500 |
unset OABI |
1501 |
else |
1502 |
src_install-libs |
1503 |
fi |
1504 |
|
1505 |
is_final_abi || die "failed to iterate through all ABIs" |
1506 |
} |
1507 |
|
1508 |
# Install nvidia library: |
1509 |
# the first parameter is the place where to install it |
1510 |
# the second parameter is the base name of the library |
1511 |
# the third parameter is the provided soversion |
1512 |
donvidia() { |
1513 |
dodir $1 |
1514 |
exeinto $1 |
1515 |
|
1516 |
libname=$(basename $2) |
1517 |
|
1518 |
doexe $2.$3 || die "failed to install $2" |
1519 |
dosym ${libname}.$3 $1/${libname} || die "failed to symlink $2" |
1520 |
[[ $3 != "1" ]] && dosym ${libname}.$3 $1/${libname}.1 |
1521 |
} |
1522 |
|
1523 |
src_install-libs() { |
1524 |
local inslibdir=$(get_libdir) |
1525 |
local NV_ROOT="/usr/${inslibdir}/opengl/nvidia" |
1526 |
local libdir= sover= |
1527 |
|
1528 |
if use kernel_linux; then |
1529 |
if has_multilib_profile && [[ ${ABI} == "x86" ]] ; then |
1530 |
libdir=usr/lib32 |
1531 |
else |
1532 |
libdir=usr/lib |
1533 |
fi |
1534 |
sover=${PV} |
1535 |
else |
1536 |
libdir=obj |
1537 |
# on FreeBSD it has just .1 suffix |
1538 |
sover=1 |
1539 |
fi |
1540 |
|
1541 |
# The GLX libraries |
1542 |
donvidia ${NV_ROOT}/lib ${libdir}/libGL.so ${sover} |
1543 |
donvidia ${NV_ROOT}/lib ${libdir}/libGLcore.so ${sover} |
1544 |
if use x86-fbsd; then |
1545 |
donvidia ${NV_ROOT}/lib ${libdir}/libnvidia-tls.so ${sover} |
1546 |
else |
1547 |
donvidia ${NV_ROOT}/lib ${libdir}/tls/libnvidia-tls.so ${sover} |
1548 |
fi |
1549 |
|
1550 |
#cuda |
1551 |
if [[ -f ${libdir}/libcuda.so.${sover} ]]; then |
1552 |
dolib.so ${libdir}/libcuda.so.${sover} |
1553 |
[[ "${sover}" != "1" ]] && dosym libcuda.so.${sover} /usr/${inslibdir}/libcuda.so.1 |
1554 |
dosym libcuda.so.1 /usr/${inslibdir}/libcuda.so |
1555 |
fi |
1556 |
|
1557 |
#vdpau |
1558 |
if [[ -f ${libdir}/libvdpau_nvidia.so.${sover} ]]; then |
1559 |
dolib.so ${libdir}/libvdpau_nvidia.so.${sover} |
1560 |
dosym libvdpau_nvidia.so.${sover} /usr/${inslibdir}/libvdpau_nvidia.so |
1561 |
fi |
1562 |
|
1563 |
# OpenCL |
1564 |
# NOTE: This isn't currently available in the publicly released drivers. |
1565 |
if [[ -f ${libdir}/libOpenCL.so.1.0.0 ]]; then |
1566 |
|
1567 |
dolib.so ${libdir}/libnvcompiler.so.${sover} |
1568 |
[[ "${sover}" != "1" ]] && dosym libnvcompiler.so.${sover} /usr/${inslibdir}/libnvcompiler.so.1 |
1569 |
dosym libnvcompiler.so.1 /usr/${inslibdir}/libnvcompiler.so |
1570 |
|
1571 |
dolib.so ${libdir}/libOpenCL.so.1.0.0 |
1572 |
dosym libOpenCL.so.1.0.0 /usr/${inslibdir}/libOpenCL.so.1 |
1573 |
dosym libOpenCL.so.1 /usr/${inslibdir}/libOpenCL.so |
1574 |
fi |
1575 |
} |
1576 |
|
1577 |
pkg_preinst() { |
1578 |
if use kernel_linux; then |
1579 |
linux-mod_pkg_postinst |
1580 |
fi |
1581 |
|
1582 |
# Clean the dynamic libGL stuff's home to ensure |
1583 |
# we dont have stale libs floating around |
1584 |
if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then |
1585 |
rm -rf "${ROOT}"/usr/lib/opengl/nvidia/* |
1586 |
fi |
1587 |
# Make sure we nuke the old nvidia-glx's env.d file |
1588 |
if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then |
1589 |
rm -f "${ROOT}"/etc/env.d/09nvidia |
1590 |
fi |
1591 |
} |
1592 |
|
1593 |
pkg_postinst() { |
1594 |
if use kernel_linux; then |
1595 |
linux-mod_pkg_postinst |
1596 |
fi |
1597 |
|
1598 |
# Switch to the nvidia implementation |
1599 |
eselect opengl set --use-old nvidia |
1600 |
|
1601 |
echo |
1602 |
elog "You must be in the video group to use the NVIDIA device" |
1603 |
elog "For more info, read the docs at" |
1604 |
elog "http://www.gentoo.org/doc/en/nvidia-guide.xml#doc_chap3_sect6" |
1605 |
elog |
1606 |
|
1607 |
elog "This ebuild installs a kernel module and X driver. Both must" |
1608 |
elog "match explicitly in their version. This means, if you restart" |
1609 |
elog "X, you must modprobe -r nvidia before starting it back up" |
1610 |
elog |
1611 |
|
1612 |
elog "To use the NVIDIA GLX, run \"eselect opengl set nvidia\"" |
1613 |
elog |
1614 |
elog "NVIDIA has requested that any bug reports submitted have the" |
1615 |
elog "output of /usr/bin/nvidia-bug-report.sh included." |
1616 |
elog |
1617 |
elog "To work with compiz, you must enable the AddARGBGLXVisuals option." |
1618 |
elog |
1619 |
elog "If you are having resolution problems, try disabling DynamicTwinView." |
1620 |
echo |
1621 |
} |
1622 |
|
1623 |
pkg_postrm() { |
1624 |
if use kernel_linux; then |
1625 |
linux-mod_pkg_postrm |
1626 |
fi |
1627 |
eselect opengl set --use-old xorg-x11 |
1628 |
} |