Magellan Linux

Contents of /trunk/extras/nvidia-drivers/nvidia-drivers-173.14.05-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (show annotations) (download)
Fri Oct 10 13:29:42 2008 UTC (15 years, 7 months ago) by niro
File size: 7632 byte(s)
import repo
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