- added fixes from Lukasz Krotowski
[packages/xorg-driver-video-nvidia.git] / xorg-driver-video-nvidia.spec
1 #
2 # Conditional build:
3 %bcond_without  dist_kernel     # without distribution kernel
4 %bcond_without  smp             # without smp packages
5 %bcond_without  kernel          # without kernel packages
6 %bcond_without  incall          # include all tarballs
7 %bcond_without  userspace       # don't build userspace programs
8 %bcond_with     verbose         # verbose build (V=1)
9 #
10 %define         _nv_ver         1.0
11 %define         _nv_rel         8756
12 %define         _min_x11        6.7.0
13 %define         _rel            0.1
14 #
15 %define         need_x86        0
16 %define         need_x8664      0
17 %if %{with incall}
18 %define         need_x86        1
19 %define         need_x8664      1
20 %else
21 %ifarch %{ix86}
22 %define         need_x86        1
23 %endif
24 %ifarch %{x8664}
25 %define         need_x8664      1
26 %endif
27 %endif
28 #
29 Summary:        Linux Drivers for nVidia TNT/TNT2/GeForce/Quadro Chips
30 Summary(pl):    Sterowniki do kart graficznych nVidia TNT/TNT2/GeForce/Quadro
31 Name:           xorg-driver-video-nvidia
32 Version:        %{_nv_ver}.%{_nv_rel}
33 Release:        %{_rel}
34 License:        nVidia Binary
35 Vendor:         nVidia Corp.
36 Group:          X11
37 # why not pkg0!?
38 %if %{need_x86}
39 Source0:        http://download.nvidia.com/XFree86/Linux-x86/%{_nv_ver}-%{_nv_rel}/NVIDIA-Linux-x86-%{_nv_ver}-%{_nv_rel}-pkg1.run
40 # Source0-md5:  67293549b90f549ca9210743eaa5b09c
41 %endif
42 %if %{need_x8664}
43 Source1:        http://download.nvidia.com/XFree86/Linux-x86_64/%{_nv_ver}-%{_nv_rel}/NVIDIA-Linux-x86_64-%{_nv_ver}-%{_nv_rel}-pkg1.run
44 # Source1-md5:  cbefbe43bca916f536872a994da8dcec
45 %endif
46 #Patch0:                X11-driver-nvidia-gcc34.patch
47 Patch1:         X11-driver-nvidia-GL.patch
48 # http://www.minion.de/files/1.0-6629/
49 URL:            http://www.nvidia.com/object/linux.html
50 BuildRequires:  grep
51 %if %{with kernel}
52 %{?with_dist_kernel:BuildRequires:      kernel-module-build >= 2.6.7}
53 %endif
54 BuildRequires:  %{kgcc_package}
55 BuildRequires:  rpmbuild(macros) >= 1.213
56 BuildRequires:  sed >= 4.0
57 BuildRequires:  textutils
58 BuildConflicts: XFree86-nvidia
59 Provides:       X11-OpenGL-core
60 Provides:       X11-OpenGL-libGL
61 Provides:       XFree86-OpenGL-core
62 Provides:       XFree86-OpenGL-libGL
63 Provides:       OpenGL = 1.5
64 Provides:       OpenGL-GLX
65 Provides:       xorg-xserver-modules-libglx
66 Obsoletes:      Mesa
67 Obsoletes:      X11-OpenGL-core
68 Obsoletes:      X11-OpenGL-libGL
69 Obsoletes:      XFree86-OpenGL-core
70 Obsoletes:      XFree86-OpenGL-libGL
71 Obsoletes:      XFree86-driver-nvidia
72 Obsoletes:      XFree86-nvidia
73 Conflicts:      XFree86-OpenGL-devel <= 4.2.0-3
74 ExclusiveArch:  %{ix86} %{x8664}
75 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
76
77 %define         _noautoreqdep   libGL.so.1 libGLcore.so.1
78
79 %description
80 This driver set adds improved 2D functionality to the Xorg/XFree86 X
81 server as well as high performance OpenGL acceleration, AGP support,
82 support for most flat panels, and 2D multiple monitor support.
83
84 Hardware: nVidia TNT, TNT2, GeForce, or Quadro based graphics
85 accelerator. The nVidia NV1 and RIVA 128/128ZX chips are supported in
86 the base Xorg/XFree86 install and are not supported by this driver
87 set.
88
89 %description -l pl
90 Usprawnione sterowniki dla kart graficznych nVidia do serwera
91 Xorg/XFree86, daj±ce wysokowydajn± akceleracjê OpenGL, obs³ugê AGP i
92 wielu monitorów 2D.
93
94 Obs³uguj± karty nVidia TNT/TNT2/GeForce/Quadro do serwera
95 Xorg/XFree86; Karty nVidia NV1 i Riva 128/128ZX s± obs³ugiwane przez
96 sterownik nv z pakietów Xorg/XFree8 - NIE s± obs³ugiwane przez ten
97 pakiet.
98
99 %package devel
100 Summary:        OpenGL for X11R6 development (only gl?.h)
101 Summary(pl):    Pliki nag³ówkowe OpenGL dla systemu X11R6 (tylko gl?.h)
102 Group:          X11/Development/Libraries
103 Requires:       %{name} = %{version}-%{release}
104 Provides:       OpenGL-devel-base
105 Provides:       OpenGL-devel = 1.5
106 Provides:       OpenGL-GLX-devel
107 Obsoletes:      OpenGL-devel-base
108 Obsoletes:      XFree86-driver-nvidia-devel
109 Conflicts:      XFree86-OpenGL-devel < 4.3.99.902-0.3
110
111 %description devel
112 Base headers (only gl?.h) for OpenGL for X11R6 for nvidia drivers.
113
114 %description devel -l pl
115 Podstawowe pliki nag³ówkowe (tylko gl?.h) OpenGL dla systemu X11R6 dla
116 sterowników nvidii.
117
118 %package progs
119 Summary:        Tools for advanced control of nVidia graphic cards
120 Summary(pl):    Narzêdzia do zarz±dzania kartami graficznymi nVidia
121 Group:          Applications/System
122 Requires:       %{name} = %{version}-%{release}
123 Obsoletes:      XFree86-driver-nvidia-progs
124
125 %description progs
126 Tools for advanced control of nVidia graphic cards.
127
128 %description progs -l pl
129 Narzêdzia do zarz±dzania kartami graficznymi nVidia.
130
131 %package -n kernel-video-nvidia
132 Summary:        nVidia kernel module for nVidia Architecture support
133 Summary(de):    Das nVidia-Kern-Modul für die nVidia-Architektur-Unterstützung
134 Summary(pl):    Modu³ j±dra dla obs³ugi kart graficznych nVidia
135 Version:        %{_nv_ver}.%{_nv_rel}
136 Release:        %{_rel}@%{_kernel_ver_str}
137 Group:          Base/Kernel
138 Requires(post,postun):  /sbin/depmod
139 Requires:       dev >= 2.7.7-10
140 %{?with_dist_kernel:%requires_releq_kernel_up}
141 Provides:       X11-driver-nvidia(kernel)
142 Obsoletes:      XFree86-nvidia-kernel
143
144 %description -n kernel-video-nvidia
145 nVidia Architecture support for Linux kernel.
146
147 %description -n kernel-video-nvidia -l de
148 Die nVidia-Architektur-Unterstützung für den Linux-Kern.
149
150 %description -n kernel-video-nvidia -l pl
151 Obs³uga architektury nVidia dla j±dra Linuksa. Pakiet wymagany przez
152 sterownik nVidii dla Xorg/XFree86.
153
154 %package -n kernel-smp-video-nvidia
155 Summary:        nVidia kernel module for nVidia Architecture support
156 Summary(de):    Das nVidia-Kern-Modul für die nVidia-Architektur-Unterstützung
157 Summary(pl):    Modu³ j±dra dla obs³ugi kart graficznych nVidia
158 Release:        %{_rel}@%{_kernel_ver_str}
159 Group:          Base/Kernel
160 Requires(post,postun):  /sbin/depmod
161 Requires:       dev >= 2.7.7-10
162 %{?with_dist_kernel:%requires_releq_kernel_smp}
163 Provides:       X11-driver-nvidia(kernel)
164 Obsoletes:      XFree86-nvidia-kernel
165
166 %description -n kernel-smp-video-nvidia
167 nVidia Architecture support for Linux kernel SMP.
168
169 %description -n kernel-smp-video-nvidia -l de
170 Die nVidia-Architektur-Unterstützung für den Linux-Kern SMP.
171
172 %description -n kernel-smp-video-nvidia -l pl
173 Obs³uga architektury nVidia dla j±dra Linuksa SMP. Pakiet wymagany
174 przez sterownik nVidii dla Xorg/XFree86.
175
176 %prep
177 cd %{_builddir}
178 rm -rf NVIDIA-Linux-x86*-%{_nv_ver}-%{_nv_rel}-pkg*
179 %ifarch %{ix86}
180 /bin/sh %{SOURCE0} --extract-only
181 %setup -qDT -n NVIDIA-Linux-x86-%{_nv_ver}-%{_nv_rel}-pkg1
182 %else
183 /bin/sh %{SOURCE1} --extract-only
184 %setup -qDT -n NVIDIA-Linux-x86_64-%{_nv_ver}-%{_nv_rel}-pkg1
185 %endif
186 #%patch0 -p1
187 %patch1 -p1
188 echo 'EXTRA_CFLAGS += -Wno-pointer-arith -Wno-sign-compare -Wno-unused' >> usr/src/nv/Makefile.kbuild
189
190 %build
191 %if %{with kernel}
192 cd usr/src/nv/
193 ln -sf Makefile.kbuild Makefile
194 for cfg in %{?with_dist_kernel:%{?with_smp:smp} up}%{!?with_dist_kernel:nondist}; do
195         if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
196                 exit 1
197         fi
198         install -d o/include/linux
199         ln -sf %{_kernelsrcdir}/config-$cfg o/.config
200         ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
201         ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
202 %if %{with dist_kernel}
203         %{__make} -C %{_kernelsrcdir} O=$PWD/o prepare scripts
204 %else
205         install -d o/include/config
206         touch o/include/config/MARKER
207         ln -sf %{_kernelsrcdir}/scripts o/scripts
208 %endif
209         %{__make} -C %{_kernelsrcdir} clean \
210                 RCS_FIND_IGNORE="-name '*.ko' -o -name nv-kernel.o -o" \
211                 SYSSRC=%{_kernelsrcdir} \
212                 SYSOUT=$PWD/o \
213                 M=$PWD O=$PWD/o \
214                 %{?with_verbose:V=1}
215         %{__make} -C %{_kernelsrcdir} modules \
216                 CC="%{__cc}" CPP="%{__cpp}" \
217                 SYSSRC=%{_kernelsrcdir} \
218                 SYSOUT=$PWD/o \
219                 M=$PWD O=$PWD/o \
220                 %{?with_verbose:V=1}
221         mv nvidia.ko nvidia-$cfg.ko
222 done
223 %endif
224
225 %install
226 rm -rf $RPM_BUILD_ROOT
227
228 %if %{with userspace}
229 install -d $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,extensions} \
230         $RPM_BUILD_ROOT{%{_includedir}/GL,%{_libdir},%{_bindir}}
231
232 install usr/bin/nvidia-settings $RPM_BUILD_ROOT%{_bindir}
233
234 for f in \
235         usr/lib/tls/libnvidia-tls.so.%{version}         \
236         usr/lib/libGL{,core}.so.%{version}              \
237         usr/X11R6/lib/libXvMCNVIDIA.so.%{version}       \
238         usr/X11R6/lib/libXvMCNVIDIA.a                   \
239 ; do
240         install $f $RPM_BUILD_ROOT%{_libdir}
241 done
242
243 install usr/X11R6/lib/modules/extensions/libglx.so.%{version} \
244         $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions
245 install usr/X11R6/lib/modules/drivers/nvidia_drv.o \
246         $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers
247
248 install usr/include/GL/*.h $RPM_BUILD_ROOT%{_includedir}/GL
249
250 ln -sf libglx.so.%{version} $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions/libglx.so
251 ln -sf libXvMCNVIDIA.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libXvMCNVIDIA.so
252 ln -sf libXvMCNVIDIA.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libXvMCNVIDIA_dynamic.so.1
253
254 # OpenGL ABI for Linux compatibility
255 ln -sf libGL.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libGL.so.1
256 ln -sf libGL.so.1 $RPM_BUILD_ROOT%{_libdir}/libGL.so
257 %endif
258
259 %if %{with kernel}
260 cd usr/src/nv/
261 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
262 install nvidia-%{?with_dist_kernel:up}%{!?with_dist_kernel:nondist}.ko \
263         $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/nvidia.ko
264 %if %{with smp} && %{with dist_kernel}
265 install nvidia-smp.ko \
266         $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/nvidia.ko
267 %endif
268 %endif
269
270 %clean
271 rm -rf $RPM_BUILD_ROOT
272
273 %post
274 /sbin/ldconfig
275 cat << EOF
276
277  *******************************************************
278  *                                                     *
279  *  NOTE:                                              *
280  *  You must install:                                  *
281  *  kernel(24)(-smp)-video-nvidia-%{version}             *
282  *  for this driver to work                            *
283  *                                                     *
284  *******************************************************
285
286 EOF
287
288 %postun -p /sbin/ldconfig
289
290 %post   -n kernel-video-nvidia
291 %depmod %{_kernel_ver}
292
293 %postun -n kernel-video-nvidia
294 %depmod %{_kernel_ver}
295
296 %post   -n kernel-smp-video-nvidia
297 %depmod %{_kernel_ver}smp
298
299 %postun -n kernel-smp-video-nvidia
300 %depmod %{_kernel_ver}smp
301
302 %if %{with userspace}
303 %files
304 %defattr(644,root,root,755)
305 %doc LICENSE
306 %doc usr/share/doc/{README.txt,NVIDIA_Changelog,XF86Config.sample}
307 # OpenGL ABI for Linux compatibility
308 %attr(755,root,root) %{_libdir}/libGL.so
309 %attr(755,root,root) %{_libdir}/libGL.so.1
310 #
311 %attr(755,root,root) %{_libdir}/libGL.so.*.*
312 %attr(755,root,root) %{_libdir}/libGLcore.so.*.*
313 %attr(755,root,root) %{_libdir}/libXvMCNVIDIA.so.*.*
314 %attr(755,root,root) %{_libdir}/libXvMCNVIDIA_dynamic.so.1
315 %attr(755,root,root) %{_libdir}/libnvidia-tls.so.*.*.*
316 %attr(755,root,root) %{_libdir}/xorg/modules/extensions/libglx.so*
317 %attr(755,root,root) %{_libdir}/xorg/modules/drivers/nvidia_drv.o
318 %endif
319
320 %if %{with kernel}
321 %files -n kernel-video-nvidia
322 %defattr(644,root,root,755)
323 /lib/modules/%{_kernel_ver}/misc/*.ko*
324
325 %if %{with smp} && %{with dist_kernel}
326 %files -n kernel-smp-video-nvidia
327 %defattr(644,root,root,755)
328 /lib/modules/%{_kernel_ver}smp/misc/*.ko*
329 %endif
330 %endif
331
332 %if %{with userspace}
333 %files devel
334 %defattr(644,root,root,755)
335 %attr(755,root,root) %{_libdir}/libXvMCNVIDIA.so
336 %{_includedir}/GL/*.h
337 # -static
338 %{_libdir}/libXvMCNVIDIA.a
339
340 %files progs
341 %defattr(644,root,root,755)
342 %doc usr/share/doc/nvidia-settings-user-guide.txt
343 %attr(755,root,root) %{_bindir}/nvidia-settings
344 %endif
This page took 0.12811 seconds and 3 git commands to generate.