Contents of /branches/magellan-0_10_0/todo/nvidia-drivers/nvidia-drivers-173.14.05-r1.smage2
Parent Directory | Revision Log
Revision 3000 -
(show annotations)
(download)
Mon Oct 5 18:47:41 2009 UTC (14 years, 11 months ago) by niro
File size: 7632 byte(s)
Mon Oct 5 18:47:41 2009 UTC (14 years, 11 months ago) by niro
File size: 7632 byte(s)
created branch 'magellan-0_10_0'
1 | # $Header: /magellan-cvs/smage/nvidia-drivers/nvidia-drivers-173.14.05-r1.smage2,v 1.1 2008/06/12 19:18:12 niro Exp $ |
2 | |
3 | PNAME="nvidia-drivers" |
4 | PVER="173.14.05" |
5 | PBUILD="r1" |
6 | |
7 | PCATEGORIE="x11-drivers" |
8 | STATE="unstable" |
9 | |
10 | DESCRIPTION="NVidia OpenGL drivers for Xorg." |
11 | HOMEPAGE="http://www.nvidia.com/" |
12 | |
13 | # only for >= xorg-7.1.0 |
14 | sminclude xorg xorg71 mtools |
15 | |
16 | DEPEND=">= x11-base/xorg-server-1 |
17 | >= x11-base/opengl-update-magellan-2.2" |
18 | |
19 | SDEPEND=">= x11-proto/xf86miscproto-1 |
20 | >= x11-proto/xf86vidmodeproto-1" |
21 | |
22 | PROVIDE="virtual/opengl |
23 | virtual/nvidia-drivers" |
24 | |
25 | # both files must be fetch or our md5-logic breaks |
26 | SRCFILE_x86="NVIDIA-Linux-x86-${PVER/1.0./1.0-}-pkg0.run" |
27 | SRCFILE_x86_64="NVIDIA-Linux-x86_64-${PVER/1.0./1.0-}-pkg0.run" |
28 | # decide between x86 and x86_64 arch |
29 | SRCFILE="$(eval echo \$SRCFILE_${ARCH/i*86/x86})" |
30 | SRCDIR="${BUILDDIR}/NVIDIA-Linux-${ARCH/i*86/x86}-${PVER/1.0./1.0-}-pkg0" |
31 | |
32 | # nvidia-module-sh cvs revision |
33 | MODULESH_REV=1.2 |
34 | |
35 | SRC_URI=( |
36 | http://us.download.nvidia.com/XFree86/Linux-x86/${PVER}/${SRCFILE_x86} |
37 | http://us.download.nvidia.com/XFree86/Linux-x86_64/${PVER}/${SRCFILE_x86_64} |
38 | mirror://${PNAME}/${SRCFILE_x86} |
39 | mirror://${PNAME}/${SRCFILE_x86_64} |
40 | mirror://${PNAME}/libGL.la-r2 |
41 | mirror://${PNAME}/NVIDIA_glx-1.0.6629-defines.patch |
42 | mirror://${PNAME}/NVIDIA_glx-1.0.6629-glheader.patch |
43 | mirror://${PNAME}/nvidia.modules.d |
44 | mirror://${PNAME}/NVIDIA_kernel-1.0-7167-disable-preempt-on-smp_processor_id.patch |
45 | mirror://${PNAME}/nvidia-module.sh-${MODULESH_REV} |
46 | ) |
47 | |
48 | # this thingy don't like stripping |
49 | export CFLAGS="${CFLAGS/-s/}" |
50 | export CXXFLAGS="${CFLAGS}" |
51 | export NOSTRIP=true |
52 | |
53 | export _POSIX2_VERSION="199209" |
54 | |
55 | src_prepare() |
56 | { |
57 | # unpacking the package |
58 | cd ${BUILDDIR} |
59 | sh ${SOURCEDIR}/${PNAME}/${SRCFILE} --extract-only || die |
60 | cd ${SRCDIR} |
61 | |
62 | # use the correct defines to make gtkglext build work |
63 | mpatch NVIDIA_glx-1.0.6629-defines.patch || die |
64 | |
65 | # use some more sensible gl headers and make way for new glext.h |
66 | mpatch NVIDIA_glx-1.0.6629-glheader.patch || die |
67 | |
68 | cd ${SRCDIR}/usr/src/nv |
69 | # fix calling of smp_processor_id() when preempt is enabled |
70 | mpatch NVIDIA_kernel-1.0-7167-disable-preempt-on-smp_processor_id.patch || die |
71 | |
72 | # use M= instead of SUBDIRS= |
73 | sed -i 's:SUBDIRS=:M=:g' Makefile.kbuild || die |
74 | } |
75 | |
76 | # fake (needed with the include of xorg) |
77 | src_compile() { return 0; } |
78 | |
79 | src_install() |
80 | { |
81 | cd ${SRCDIR} |
82 | |
83 | # use driver for xorg-6.9.0 with dll-loader libs |
84 | local DLL_EXT="so" |
85 | local NV_ROOT="/usr/$(mlibdir)/opengl/nvidia" || die |
86 | |
87 | # the glx libraries |
88 | minstalldir ${NV_ROOT}/lib || die |
89 | minstallexec usr/lib/libGL.so.${PVER} ${NV_ROOT}/lib || die |
90 | minstallexec usr/lib/libGLcore.so.${PVER} ${NV_ROOT}/lib || die |
91 | mlink libGL.so.${PVER} ${NV_ROOT}/lib/libGL.so || die |
92 | mlink libGL.so.${PVER} ${NV_ROOT}/lib/libGL.so.1 || die |
93 | mlink libGLcore.so.${PVER} ${NV_ROOT}/lib/libGLcore.so || die |
94 | mlink libGLcore.so.${PVER} ${NV_ROOT}/lib/libGLcore.so.1 || die |
95 | |
96 | # no-tls libs |
97 | local NO_TLS_ROOT="/usr/$(mlibdir)/opengl/nvidia/no-tls" |
98 | minstalldir ${NO_TLS_ROOT} || die |
99 | minstallexec usr/lib/libnvidia-tls.so.${PVER} ${NO_TLS_ROOT} || die |
100 | mlink libnvidia-tls.so.${PVER} ${NO_TLS_ROOT}/libnvidia-tls.so || die |
101 | mlink libnvidia-tls.so.${PVER} ${NO_TLS_ROOT}/libnvidia-tls.so.1 || die |
102 | |
103 | # tls libs |
104 | local TLS_ROOT="/usr/$(mlibdir)/opengl/nvidia/tls" |
105 | minstalldir ${TLS_ROOT} || die |
106 | minstallexec usr/lib/tls/libnvidia-tls.so.${PVER} ${TLS_ROOT} || die |
107 | mlink libnvidia-tls.so.${PVER} ${TLS_ROOT}/libnvidia-tls.so || die |
108 | mlink libnvidia-tls.so.${PVER} ${TLS_ROOT}/libnvidia-tls.so.1 || die |
109 | |
110 | # we want tls support |
111 | mlink ../tls/libnvidia-tls.so ${NV_ROOT}/lib || die |
112 | mlink ../tls/libnvidia-tls.so.1 ${NV_ROOT}/lib || die |
113 | mlink ../tls/libnvidia-tls.so.${PVER} ${NV_ROOT}/lib || die |
114 | |
115 | # not sure whether installing the .la file is neccessary; |
116 | local ver1="$(echo ${PVER} |cut -d '.' -f 1)" |
117 | local ver2="$(echo ${PVER} |cut -d '.' -f 2)" |
118 | local ver3="$(echo ${PVER} |cut -d '.' -f 3)" |
119 | sed -e "s:\${PVER}:${PVER}:" \ |
120 | -e "s:\${ver1}:${ver1}:" \ |
121 | -e "s:\${ver2}:${ver2}:" \ |
122 | -e "s:\${ver3}:${ver3}:" \ |
123 | ${SOURCEDIR}/${PNAME}/libGL.la-r2 > ${BINDIR}/${NV_ROOT}/lib/libGL.la || die |
124 | |
125 | # the x module |
126 | # since we moved away from libs in /usr/X11R6 need to check this |
127 | local X11_LIB_DIR="/usr/$(mlibdir)" |
128 | |
129 | minstalldir ${X11_LIB_DIR}/xorg/modules/drivers || die |
130 | if [ -f usr/X11R6/lib/modules/drivers/nvidia_drv.${DLL_EXT} ] |
131 | then |
132 | minstallexec usr/X11R6/lib/modules/drivers/nvidia_drv.${DLL_EXT} \ |
133 | ${X11_LIB_DIR}/xorg/modules/drivers || die |
134 | fi |
135 | |
136 | if [ -f usr/X11R6/libs/libXvMCNVIDIA.a ] |
137 | then |
138 | minstallfile usr/X11R6/lib/libXvMCNVIDIA.a ${X11_LIB_DIR} || die |
139 | fi |
140 | |
141 | if [ -f usr/X11R6/lib/libXvMCNVIDIA.so.${PVER} ] |
142 | then |
143 | minstallexec usr/X11R6/lib/libXvMCNVIDIA.so.${PVER} ${X11_LIB_DIR} || die |
144 | fi |
145 | |
146 | minstalldir ${NV_ROOT}/extensions || die |
147 | if [ -f usr/X11R6/lib/modules/extensions/libglx.so.${PVER} ] |
148 | then |
149 | minstallexec usr/X11R6/lib/modules/extensions/libglx.so.${PVER} \ |
150 | ${NV_ROOT}/extensions/libglx.so || die |
151 | fi |
152 | |
153 | # includes |
154 | minstalldir ${NV_ROOT}/include || die |
155 | minstallfile usr/include/GL/\*.h ${NV_ROOT}/include || die |
156 | |
157 | # install tls_test |
158 | minstalldir /usr/libexec/misc || die |
159 | minstallexec usr/bin/tls_test /usr/libexec/misc || die |
160 | minstallexec usr/bin/tls_test_dso.so /usr/libexec/misc || die |
161 | |
162 | # docs, remove nvidia-settings as provided by media-video/nvidia-settings |
163 | rm -f usr/share/doc/nvidia-settings* || die |
164 | minstalldocs usr/share/doc/* || die |
165 | |
166 | # nvidia want bug reports using this script |
167 | minstalldir /usr/bin || die |
168 | minstallexec usr/bin/nvidia-bug-report.sh || die |
169 | |
170 | # create a driver tarball |
171 | cd ${SRCDIR}/usr/src |
172 | minstalldir /usr/src/nvidia-drivers || die |
173 | mv ${SRCDIR}/usr/src/{nv,nvidia-drivers} || die |
174 | tar cvjf ${BINDIR}/usr/src/nvidia-drivers/nvidia-drivers-${PVER}.tar.bz2 nvidia-drivers/ || die |
175 | # install module-build script |
176 | minstallexec -s nvidia-module.sh-${MODULESH_REV} /usr/src/nvidia-drivers/nvidia-module.sh || die |
177 | # fix pver in nvidia-module.sh |
178 | sed -i "s:@@PVER@@:${PVER}:" ${BINDIR}/usr/src/nvidia-drivers/nvidia-module.sh || die |
179 | } |
180 | |
181 | preinstall() |
182 | { |
183 | if [[ ! -z $(magequery -n nvidia-glx-legacy) ]] |
184 | then |
185 | echo -e ${COLRED} |
186 | echo -e "Error: media-video/nvidia-glx-legacy is installed!!" |
187 | echo -e "These drivers and nvidia-glx-legacy cannot be installed at the same time." |
188 | echo -e "Please uninstall media-video/nvidia-glx-legacy first!" |
189 | echo -e ${COLDEFAULT} |
190 | die "nvidia-glx-legacy found!" |
191 | fi |
192 | |
193 | if [[ ! -z $(magequery -n nvidia-legacy-drivers) ]] |
194 | then |
195 | echo -e ${COLRED} |
196 | echo -e "Error: x11-drivers/nvidia-legacy-drivers are installed!!" |
197 | echo -e "These drivers and nvidia-legacy-drivers cannot be installed at the same time." |
198 | echo -e "Please uninstall x11-drivers/nvidia-legacy-drivers first!" |
199 | echo -e ${COLDEFAULT} |
200 | die "nvidia-legacy-drivers found!" |
201 | fi |
202 | |
203 | # clean the dynamic libGL stuff's home to ensure |
204 | # we dont have stale libs floating around |
205 | if [[ -d ${MROOT}/usr/$(mlibdir)/opengl/nvidia ]] |
206 | then |
207 | rm -rf ${MROOT}/usr/$(mlibdir)/opengl/nvidia/* |
208 | fi |
209 | |
210 | # make sure we nuke the old nvidia-glx's env.d file |
211 | if [[ -e ${MROOT}/etc/env.d/09nvidia ]] |
212 | then |
213 | rm -f ${MROOT}/etc/env.d/09nvidia |
214 | fi |
215 | } |
216 | |
217 | postinstall() |
218 | { |
219 | ${MROOT}/usr/sbin/opengl-update --use-old nvidia |
220 | |
221 | echo |
222 | echo "To use these driver you need to compile the kernel module first." |
223 | echo "Goto /usr/src/nvidia-drivers and run nvidia-module.sh:" |
224 | echo " 'cd /usr/src/nvidia-drivers && ./nvidia-module.sh'" |
225 | echo |
226 | echo "Please switch your opengl extension with: " |
227 | echo " 'opengl-update nvidia'" |
228 | echo |
229 | echo "Next step is to edit your xorg.conf:" |
230 | echo " rename your VGA card driver to: 'nvidia'" |
231 | echo " and enable the glx-module via 'Load \"glx\"." |
232 | echo |
233 | } |
Properties
Name | Value |
---|---|
svn:keywords | Id |