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