Annotation of /trunk/todo/nvidia-drivers/nvidia-drivers-173.14.05-r1.smage2
Parent Directory | Revision Log
Revision 2493 -
(hide annotations)
(download)
Thu Jul 9 20:09:29 2009 UTC (15 years, 2 months ago) by niro
File size: 7632 byte(s)
Thu Jul 9 20:09:29 2009 UTC (15 years, 2 months ago) by niro
File size: 7632 byte(s)
-moved to 'todo'
1 | niro | 2 | # $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 |