/[packages]/updates/1/nvidia-current/current/SPECS/nvidia-current.spec
ViewVC logotype

Contents of /updates/1/nvidia-current/current/SPECS/nvidia-current.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 108075 - (show annotations) (download)
Thu Jun 16 02:16:43 2011 UTC (12 years, 5 months ago) by ahmad
File size: 31423 byte(s)
- Disable the kernel-rt patch, we don't even have kernel-rt in the repos
1 # I love OpenSource :-(
2
3 ## NOTE: When modifying this .spec, you do not necessarily need to care about
4 ## the %simple stuff. It is fine to break them, I'll fix it when I need them :)
5 ## - Anssi
6
7 # %simple mode can be used to transform an arbitrary nvidia installer
8 # package to rpms, similar to %atibuild mode in fglrx.
9 # Macros version, rel, nsource, pkgname, distsuffix should be manually defined.
10 %define simple 0
11 %{?_without_simple: %global simple 0}
12 %{?_with_simple: %global simple 1}
13
14 %define name nvidia-current
15
16 %if !%simple
17 # When updating, please add new ids to ldetect-lst (merge2pcitable.pl)
18 %define version 275.09.07
19 %define rel 0
20 %define subrel 1
21 # the highest supported videodrv abi
22 %define videodrv_abi 10
23 %endif
24
25 %define priority 9700
26
27 %define pkgname32 NVIDIA-Linux-x86-%{version}
28 %define pkgname64 NVIDIA-Linux-x86_64-%{version}
29
30 # For now, backportability is kept for 2008.0 forwards.
31
32 %define drivername nvidia-current
33 %define driverpkgname x11-driver-video-%{drivername}
34 %define modulename %{drivername}
35 # for description and documentation
36 %define cards GeForce 6 and later cards
37 %define xorg_extra_modules %{_libdir}/xorg/extra-modules
38 %define nvidia_driversdir %{_libdir}/%{drivername}/xorg
39 %define nvidia_extensionsdir %{_libdir}/%{drivername}/xorg
40 %define nvidia_modulesdir %{_libdir}/%{drivername}/xorg
41 %define nvidia_libdir %{_libdir}/%{drivername}
42 %define nvidia_libdir32 %{_prefix}/lib/%{drivername}
43 %define nvidia_bindir %{nvidia_libdir}/bin
44 # The entry in Cards+ this driver should be associated with, if there is
45 # no entry in ldetect-lst default pcitable:
46 # cooker ldetect-lst should be up-to-date
47 %define ldetect_cards_name %nil
48
49 # NVIDIA cards not listed in main ldetect-lst pcitable are not likely
50 # to be supported by nv which is from the same time period. Therefore
51 # mark them as not working with nv. (main pcitable entries override
52 # our entries)
53 %if %simple
54 # nvidia/vesa
55 %define ldetect_cards_name NVIDIA GeForce 400 series and later
56 %endif
57
58 %define biarches x86_64
59
60 %if !%simple
61 %ifarch %{ix86}
62 %define nsource %{SOURCE0}
63 %define pkgname %{pkgname32}
64 %endif
65 %ifarch x86_64
66 %define nsource %{SOURCE1}
67 %define pkgname %{pkgname64}
68 %endif
69 %endif
70
71 # Other packages should not require any NVIDIA libraries, and this package
72 # should not be pulled in when libGL.so.1 is required
73 %define _provides_exceptions \\.so
74 %define common_requires_exceptions libGLcore\\.so\\|libnvidia.*\\.so
75
76 %ifarch %{biarches}
77 # (anssi) Allow installing of 64-bit package if the runtime dependencies
78 # of 32-bit libraries are not satisfied. If a 32-bit package that requires
79 # libGL.so.1 is installed, the 32-bit mesa libs are pulled in and that will
80 # pull the dependencies of 32-bit nvidia libraries in as well.
81 %define _requires_exceptions %common_requires_exceptions\\|lib.*so\\.[^(]\\+\\(([^)]\\+)\\)\\?$
82 %else
83 %define _requires_exceptions %common_requires_exceptions
84 %endif
85
86 Summary: NVIDIA proprietary X.org driver and libraries, current driver series
87 Name: %{name}
88 Version: %{version}
89 Release: %mkrel %{rel}
90 %if !%simple
91 Source0: ftp://download.nvidia.com/XFree86/Linux-x86/%{version}/%{pkgname32}.run
92 Source1: ftp://download.nvidia.com/XFree86/Linux-x86_64/%{version}/%{pkgname64}.run
93 # GPLv2 source code; see also http://cgit.freedesktop.org/~aplattner/
94 Source2: ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-%{version}.tar.bz2
95 Source3: ftp://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-%{version}.tar.bz2
96 # Script for building rpms of arbitrary nvidia installers (needs this .spec appended)
97 Source4: nvidia-mdvbuild-skel
98 # -Werror=format-string
99 Patch0: nvidia-settings-format-string.patch
100 # https://qa.mandriva.com/show_bug.cgi?id=39921
101 Patch1: nvidia-settings-enable-dyntwinview-mga.patch
102 # include xf86vmproto for X_XF86VidModeGetGammaRampSize, fixes build on cooker
103 Patch3: nvidia-settings-include-xf86vmproto.patch
104 # fix build with -rt patched 2.6.33+
105 Patch4: nvidia-rt-2.6.33.patch
106 %endif
107 License: Freeware
108 BuildRoot: %{_tmppath}/%{name}-buildroot
109 URL: http://www.nvidia.com/object/unix.html
110 Group: System/Kernel and hardware
111 ExclusiveArch: %{ix86} x86_64
112 %if !%simple
113 BuildRequires: ImageMagick
114 BuildRequires: gtk+2-devel
115 BuildRequires: libxv-devel
116 BuildRequires: MesaGL-devel
117 BuildRequires: libxxf86vm-devel
118 %endif
119
120 %description
121 Source package of the current NVIDIA proprietary driver. Binary
122 packages are named x11-driver-video-nvidia-current.
123
124 %package -n %{driverpkgname}
125 Summary: NVIDIA proprietary X.org driver and libraries for %cards
126 Group: System/Kernel and hardware
127 Requires(post): update-alternatives >= 1.9.0
128 Requires(postun): update-alternatives >= 1.9.0
129 Requires: x11-server-common
130 Suggests: %{drivername}-doc-html = %{version}
131 # Proper support for versioned kmod() was added in 2008.1:
132 Requires: kmod(%{modulename}) = %{version}
133 # At least mplayer dlopens libvdpau.so.1, so the software will not pull in
134 # the vdpau library package. We ensure its installation here.
135 Requires: %{_lib}vdpau1
136 %if !%simple
137 # Conflict with the next videodrv ABI break.
138 # The NVIDIA driver supports the previous ABI versions as well and therefore
139 # a strict version-specific requirement would not be enough.
140 ### This is problematic as it can cause removal of xserver instead (Anssi 04/2011)
141 ###Conflicts: xserver-abi(videodrv-%(echo $((%{videodrv_abi} + 1))))
142 %endif
143 # Obsoletes for naming changes:
144 Obsoletes: nvidia < 1:%{version}-%{release}
145 Provides: nvidia = 1:%{version}-%{release}
146 Obsoletes: nvidia97xx < %{version}-%{release}
147 Provides: nvidia97xx = %{version}-%{release}
148
149 %description -n %{driverpkgname}
150 NVIDIA proprietary X.org graphics driver, related libraries and
151 configuration tools for %cards,
152 including the associated Quadro cards.
153
154 NOTE: You should use XFdrake to configure your NVIDIA card. The
155 correct packages will be automatically installed and configured.
156
157 If you do not want to use XFdrake, see README.manual-setup.
158
159 This NVIDIA driver should be used with %cards,
160 including the associated Quadro cards.
161
162 %package -n dkms-%{drivername}
163 Summary: NVIDIA kernel module for %cards
164 Group: System/Kernel and hardware
165 Requires: dkms
166 Requires(post): dkms
167 Requires(preun): dkms
168 Obsoletes: dkms-nvidia < 1:%{version}-%{release}
169 Provides: dkms-nvidia = 1:%{version}-%{release}
170 Obsoletes: dkms-nvidia97xx < %{version}-%{release}
171 Provides: dkms-nvidia97xx = %{version}-%{release}
172
173 %description -n dkms-%{drivername}
174 NVIDIA kernel module for %cards. This
175 is to be used with the %{driverpkgname} package.
176
177 %package -n %{drivername}-devel
178 Summary: NVIDIA XvMC/OpenGL/CUDA development liraries and headers
179 Group: Development/C
180 Requires: %{driverpkgname} = %{version}-%{release}
181 Requires: %{drivername}-cuda-opencl = %{version}-%{release}
182 Obsoletes: nvidia-devel < 1:%{version}-%{release}
183 Provides: nvidia-devel = 1:%{version}-%{release}
184 Obsoletes: nvidia97xx-devel < %{version}-%{release}
185 Provides: nvidia97xx-devel = %{version}-%{release}
186 Requires: %{_lib}vdpau-devel
187
188 %description -n %{drivername}-devel
189 NVIDIA XvMC static development library and OpenGL/CUDA headers for
190 %cards. This package is not required for
191 normal use.
192
193 %package -n %{drivername}-cuda-opencl
194 Summary: CUDA and OpenCL libraries for NVIDIA proprietary driver
195 Group: System/Kernel and hardware
196 Provides: %{drivername}-cuda = %{version}-%{release}
197 Requires: kmod(%{modulename}) = %{version}
198 Conflicts: nvidia < 1:195.36.15-4
199
200 %description -n %{drivername}-cuda-opencl
201 Cuda and OpenCL libraries for NVIDIA proprietary driver. This package is not
202 required for normal use, it provides libraries to use NVIDIA cards for High
203 Performance Computing (HPC).
204
205 # HTML doc splitted off because of size, for live cds:
206 %package -n %{drivername}-doc-html
207 Summary: NVIDIA html documentation (%{drivername})
208 Group: System/Kernel and hardware
209 Requires: %{driverpkgname} = %{version}-%{release}
210
211 %description -n %{drivername}-doc-html
212 HTML version of the README.txt file provided in package
213 %{driverpkgname}.
214
215 %prep
216 # No patches applied when %simple is set
217 %if %simple
218 %setup -q -c -T
219 %else
220 %setup -q -c -T -a 2 -a 3
221 cd nvidia-settings-%{version}
222 %patch0 -p1
223 %patch1 -p1
224 %patch3 -p1
225 cd ..
226 %endif
227 sh %{nsource} --extract-only
228
229 %if !%simple
230 cd %{pkgname}
231 #%patch4 -p1
232 cd ..
233 %endif
234
235 rm -rf %{pkgname}/usr/src/nv/precompiled
236
237 cat > README.install.urpmi <<EOF
238 This driver is for %cards.
239
240 Use XFdrake to configure X to use the correct NVIDIA driver. Any needed
241 packages will be automatically installed if not already present.
242 1. Run XFdrake as root.
243 2. Go to the Graphics Card list.
244 3. Select your card (it is usually already autoselected).
245 4. Answer any questions asked and then quit.
246
247 If you do not want to use XFdrake, see README.manual-setup.
248 EOF
249
250 cat > README.manual-setup <<EOF
251 This file describes the procedure for the manual installation of this NVIDIA
252 driver package. You can find the instructions for the recommended automatic
253 installation in the file 'README.install.urpmi' in this directory.
254
255 - Open %{_sysconfdir}/X11/xorg.conf and make the following changes:
256 o Change the Driver to "nvidia" in the Device section
257 o Make the line below the only 'glx' related line in the Module section,
258 adding it if it is not already there:
259 Load "glx"
260 o Remove any 'ModulePath' lines from the Files section
261 - Run "update-alternatives --set gl_conf %{_sysconfdir}/%{drivername}/ld.so.conf" as root.
262 - Run "ldconfig -X" as root.
263 EOF
264
265 %if !%simple
266 rm nvidia-settings-%{version}/src/*/*.a
267
268 %build
269 export CFLAGS="%optflags"
270 export CXXFLAGS="$CFLAGS"
271 export LDFLAGS="%{?ldflags}"
272 %make -C nvidia-settings-%{version}/src/libXNVCtrl
273 %make -C nvidia-settings-%{version} STRIP_CMD=true
274 %make -C nvidia-xconfig-%{version} STRIP_CMD=true
275
276 # %simple
277 %endif
278
279 %install
280 rm -rf %{buildroot}
281 cd %{pkgname}
282
283 # dkms
284 install -d -m755 %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}
285 cat > %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}/dkms.conf <<EOF
286 PACKAGE_NAME="%{drivername}"
287 PACKAGE_VERSION="%{version}-%{release}"
288 BUILT_MODULE_NAME[0]="nvidia"
289 DEST_MODULE_LOCATION[0]="/kernel/drivers/char/drm"
290 DEST_MODULE_NAME[0]="%{modulename}"
291 MAKE[0]="make SYSSRC=\${kernel_source_dir} module"
292 CLEAN="make -f Makefile.kbuild clean"
293 AUTOINSTALL="yes"
294 EOF
295
296 # menu entry
297 install -d -m755 %{buildroot}%{_datadir}/%{drivername}
298 cat > %{buildroot}%{_datadir}/%{drivername}/mageia-nvidia-settings.desktop <<EOF
299 [Desktop Entry]
300 Name=NVIDIA Display Settings
301 Comment=Configure NVIDIA X driver
302 Exec=%{_bindir}/nvidia-settings
303 Icon=%{drivername}-settings
304 Terminal=false
305 Type=Application
306 Categories=GTK;Settings;HardwareSettings;X-MandrivaLinux-System-Configuration;
307 EOF
308
309 install -d -m755 %{buildroot}%{_datadir}/applications
310 touch %{buildroot}%{_datadir}/applications/mageia-nvidia-settings.desktop
311
312 # icons
313 install -d -m755 %{buildroot}%{_iconsdir}/hicolor/{16x16,32x32,48x48}/apps
314 %if !%simple
315 convert nvidia-settings.png -resize 16x16 %{buildroot}%{_iconsdir}/hicolor/16x16/apps/%{drivername}-settings.png
316 convert nvidia-settings.png -resize 32x32 %{buildroot}%{_iconsdir}/hicolor/32x32/apps/%{drivername}-settings.png
317 convert nvidia-settings.png -resize 48x48 %{buildroot}%{_iconsdir}/hicolor/48x48/apps/%{drivername}-settings.png
318 %else
319 # no imagemagick
320 [ -e nvidia-settings.png ] || cp -a usr/share/pixmaps/nvidia-settings.png .
321 install -m644 nvidia-settings.png %{buildroot}%{_iconsdir}/hicolor/48x48/apps/%{drivername}-settings.png
322 %endif
323
324 error_fatal() {
325 echo "Error: $@." >&2
326 exit 1
327 }
328
329 error_unhandled() {
330 echo "Warning: $@." >&2
331 echo "Warning: $@." >> warns.log
332 %if !%simple
333 # cause distro builds to fail in case of unhandled files
334 exit 1
335 %endif
336 }
337
338 parseparams() {
339 for value in $rest; do
340 local param=$1
341 [ -n "$param" ] || error_fatal "unhandled parameter $value"
342 shift
343 eval $param=$value
344
345 [ -n "$value" ] || error_fatal "empty $param"
346
347 # resolve libdir based on $arch
348 if [ "$param" = "arch" ]; then
349 case "$arch" in
350 NATIVE) nvidia_libdir=%{nvidia_libdir};;
351 COMPAT32) nvidia_libdir=%{nvidia_libdir32};;
352 *) error_fatal "unknown arch $arch"
353 esac
354 fi
355 done
356 }
357
358 add_to_list() {
359 %if !%simple
360 # on distro builds, only use .manifest for %doc files
361 [ "${2#%doc}" = "${2}" ] && return
362 %endif
363 local list="$1.files"
364 local entry="$2"
365 echo $entry >> $list
366 }
367
368 install_symlink() {
369 local pkg="$1"
370 local dir="$2"
371 mkdir -p %{buildroot}$dir
372 ln -s $dest %{buildroot}$dir/$file
373 add_to_list $pkg $dir/$file
374 }
375
376 install_lib_symlink() {
377 local pkg="$1"
378 local dir="$2"
379 case "$file" in
380 libvdpau_*.so)
381 # vdpau drivers => not put into -devel
382 ;;
383 *.so)
384 pkg=nvidia-devel;;
385 esac
386 install_symlink $pkg $dir
387 }
388
389 install_file_only() {
390 local pkg="$1"
391 local dir="$2"
392 mkdir -p %{buildroot}$dir
393 # replace 0444 with more usual 0644
394 [ "$perms" = "0444" ] && perms="0644"
395 install -m $perms $file %{buildroot}$dir
396 }
397
398 install_file() {
399 local pkg="$1"
400 local dir="$2"
401 install_file_only $pkg $dir
402 add_to_list $pkg $dir/$(basename $file)
403 }
404
405 get_module_dir() {
406 local subdir="$1"
407 case "$subdir" in
408 extensions*) echo %{nvidia_extensionsdir};;
409 drivers/) echo %{nvidia_driversdir};;
410 /) echo %{nvidia_modulesdir};;
411 *) error_unhandled "unhandled module subdir $subdir"
412 echo %{nvidia_modulesdir};;
413 esac
414 }
415
416 for file in nvidia.files nvidia-devel.files nvidia-cuda.files nvidia-dkms.files nvidia-html.files; do
417 rm -f $file
418 touch $file
419 done
420
421 # install files according to .manifest
422 cat .manifest | tail -n +9 | while read line; do
423 rest=${line}
424 file=${rest%%%% *}
425 rest=${rest#* }
426 perms=${rest%%%% *}
427 rest=${rest#* }
428 type=${rest%%%% *}
429 rest=${rest#* }
430
431 case "$type" in
432 CUDA_LIB)
433 parseparams arch subdir
434 install_file nvidia-cuda $nvidia_libdir/$subdir
435 ;;
436 CUDA_SYMLINK)
437 parseparams arch subdir dest
438 install_lib_symlink nvidia-cuda $nvidia_libdir/$subdir
439 ;;
440 NVCUVID_LIB)
441 parseparams arch
442 install_file nvidia-cuda $nvidia_libdir
443 ;;
444 NVCUVID_LIB_SYMLINK)
445 parseparams arch dest
446 install_lib_symlink nvidia-cuda $nvidia_libdir
447 ;;
448 OPENGL_LIB)
449 parseparams arch
450 install_file nvidia $nvidia_libdir
451 ;;
452 OPENGL_SYMLINK)
453 parseparams arch dest
454 install_lib_symlink nvidia $nvidia_libdir
455 ;;
456 TLS_LIB)
457 parseparams arch style subdir
458 install_file nvidia $nvidia_libdir/$subdir
459 ;;
460 TLS_SYMLINK)
461 parseparams arch style subdir dest
462 install_lib_symlink nvidia $nvidia_libdir/$subdir
463 ;;
464 UTILITY_LIB)
465 install_file nvidia %{nvidia_libdir}
466 ;;
467 UTILITY_LIB_SYMLINK)
468 parseparams dest
469 install_lib_symlink nvidia %{nvidia_libdir}
470 ;;
471 VDPAU_LIB)
472 parseparams arch subdir
473 case $file in *libvdpau_nvidia.so*);; *) continue; esac
474 install_file nvidia $nvidia_libdir/$subdir
475 ;;
476 VDPAU_SYMLINK)
477 parseparams arch subdir dest
478 case $file in *libvdpau_nvidia.so*);; *) continue; esac
479 install_lib_symlink nvidia $nvidia_libdir/$subdir
480 ;;
481 XLIB_STATIC_LIB)
482 install_file nvidia-devel %{nvidia_libdir}
483 ;;
484 XLIB_SHARED_LIB)
485 install_file nvidia %{nvidia_libdir}
486 ;;
487 XLIB_SYMLINK)
488 parseparams dest
489 install_lib_symlink nvidia %{nvidia_libdir}
490 ;;
491 LIBGL_LA)
492 # (Anssi) we don't install .la files
493 ;;
494 XMODULE_SHARED_LIB)
495 parseparams subdir
496 install_file nvidia $(get_module_dir $subdir)
497 ;;
498 XMODULE_NEWSYM)
499 # symlink that is created only if it doesn't already
500 # exist (i.e. as part of x11-server)
501 case "$file" in
502 libwfb.so)
503 continue
504 ;;
505 *)
506 error_unhandled "unknown XMODULE_NEWSYM type file $file, skipped"
507 continue
508 esac
509 parseparams subdir dest
510 install_symlink nvidia $(get_module_dir $subdir)
511 ;;
512 XMODULE_SYMLINK)
513 parseparams subdir dest
514 install_symlink nvidia $(get_module_dir $subdir)
515 ;;
516 VDPAU_HEADER)
517 continue
518 parseparams subdir
519 install_file_only nvidia-devel %{_includedir}/%{drivername}/$subdir
520 ;;
521 OPENGL_HEADER|CUDA_HEADER)
522 parseparams subdir
523 install_file_only nvidia-devel %{_includedir}/%{drivername}/$subdir
524 ;;
525 DOCUMENTATION)
526 parseparams subdir
527 case $subdir in
528 */html)
529 add_to_list nvidia-html "%%doc %{pkgname}/$file"
530 continue
531 ;;
532 */include/*)
533 continue
534 ;;
535 esac
536 case $file in
537 *XF86Config*|*nvidia-settings.png)
538 continue;;
539 esac
540 add_to_list nvidia "%%doc %{pkgname}/$file"
541 ;;
542 MANPAGE)
543 parseparams subdir
544 case "$file" in
545 *nvidia-installer*)
546 # not installed
547 continue
548 ;;
549 *nvidia-settings*|*nvidia-xconfig*)
550 %if !%simple
551 # installed separately below
552 continue
553 %endif
554 ;;
555 *nvidia-smi*)
556 # ok
557 ;;
558 *)
559 error_unhandled "skipped unknown man page $(basename $file)"
560 continue
561 esac
562 install_file_only nvidia %{_mandir}/$subdir
563 ;;
564 UTILITY_BINARY)
565 case "$file" in
566 *nvidia-settings|*nvidia-xconfig)
567 %if !%simple
568 # not installed, we install our own copy
569 continue
570 %endif
571 ;;
572 *nvidia-smi|*nvidia-bug-report.sh)
573 # ok
574 ;;
575 *)
576 error_unhandled "unknown binary $(basename $file) will be installed to %{nvidia_bindir}/$(basename $file)"
577 ;;
578 esac
579 install_file nvidia %{nvidia_bindir}
580 ;;
581 UTILITY_BIN_SYMLINK)
582 case $file in nvidia-uninstall) continue;; esac
583 parseparams dest
584 install_symlink nvidia %{nvidia_bindir}
585 ;;
586 INSTALLER_BINARY)
587 # not installed
588 ;;
589 KERNEL_MODULE_SRC)
590 install_file nvidia-dkms %{_usrsrc}/%{drivername}-%{version}-%{release}
591 ;;
592 CUDA_ICD)
593 # in theory this should go to the cuda subpackage, but it goes into the main package
594 # as this avoids one broken symlink and it is small enough to not cause space issues
595 install_file nvidia %{_sysconfdir}/%{drivername}
596 ;;
597 DOT_DESKTOP)
598 # we provide our own for now
599 ;;
600 *)
601 error_unhandled "file $(basename $file) of unknown type $type will be skipped"
602 esac
603 done
604
605 [ -z "$warnings" ] || echo "Please inform Anssi Hannula <anssi@mandriva.org> or http://qa.mandriva.com/ of the above warnings." >> warns.log
606
607 %if %simple
608 find %{buildroot}%{_libdir} %{buildroot}%{_prefix}/lib -type d | while read dir; do
609 dir=${dir#%{buildroot}}
610 echo "$dir" | grep -q nvidia && echo "%%dir $dir" >> nvidia.files
611 done
612 [ -d %{buildroot}%{_includedir}/%{drivername} ] && echo "%{_includedir}/%{drivername}" >> nvidia-devel.files
613 %endif
614
615 %if !%simple
616 # confirm SONAME; if something else than libvdpau_nvidia.so or libvdpau_nvidia.so.1, adapt .spec as needed:
617 [ "$(objdump -p %{buildroot}%{nvidia_libdir}/vdpau/libvdpau_nvidia.so.%{version} | grep SONAME | gawk '{ print $2 }')" = "libvdpau_nvidia.so.1" ]
618
619 rm -f %{buildroot}%{nvidia_libdir}/vdpau/libvdpau_nvidia.so.1
620 rm -f %{buildroot}%{nvidia_libdir32}/vdpau/libvdpau_nvidia.so.1
621 %endif
622
623 # vdpau alternative symlink
624 install -d -m755 %{buildroot}%{_libdir}/vdpau
625 touch %{buildroot}%{_libdir}/vdpau/libvdpau_nvidia.so.1
626 %ifarch %{biarches}
627 install -d -m755 %{buildroot}%{_prefix}/lib/vdpau
628 touch %{buildroot}%{_prefix}/lib/vdpau/libvdpau_nvidia.so.1
629 %endif
630
631 %if !%simple
632 # self-built binaries
633 install -m755 ../nvidia-settings-%{version}/_out/*/nvidia-settings %{buildroot}%{nvidia_bindir}
634 install -m755 ../nvidia-xconfig-%{version}/_out/*/nvidia-xconfig %{buildroot}%{nvidia_bindir}
635 %endif
636 # binary alternatives
637 install -d -m755 %{buildroot}%{_bindir}
638 touch %{buildroot}%{_bindir}/nvidia-settings
639 touch %{buildroot}%{_bindir}/nvidia-smi
640 touch %{buildroot}%{_bindir}/nvidia-xconfig
641 touch %{buildroot}%{_bindir}/nvidia-bug-report.sh
642 # rpmlint:
643 chmod 0755 %{buildroot}%{_bindir}/*
644
645 %if !%simple
646 # install man pages
647 install -m755 ../nvidia-settings-%{version}/_out/*/nvidia-settings.1 %{buildroot}%{_mandir}/man1
648 install -m755 ../nvidia-xconfig-%{version}/_out/*/nvidia-xconfig.1 %{buildroot}%{_mandir}/man1
649 %endif
650 # bug #41638 - whatis entries of nvidia man pages appear wrong
651 gunzip %{buildroot}%{_mandir}/man1/*.gz
652 sed -r -i '/^nvidia\\-[a-z]+ \\- NVIDIA/s,^nvidia\\-,nvidia-,' %{buildroot}%{_mandir}/man1/*.1
653 cd %{buildroot}%{_mandir}/man1
654 rename nvidia alt-%{drivername} *
655 cd -
656 touch %{buildroot}%{_mandir}/man1/nvidia-xconfig.1%{_extension}
657 touch %{buildroot}%{_mandir}/man1/nvidia-settings.1%{_extension}
658 touch %{buildroot}%{_mandir}/man1/nvidia-smi.1%{_extension}
659
660 # cuda nvidia.icd
661 install -d -m755 %{buildroot}%{_sysconfdir}/OpenCL/vendors
662 touch %{buildroot}%{_sysconfdir}/OpenCL/vendors/nvidia.icd
663 # override apparently wrong reference to the development symlink name:
664 [ "$(cat %{buildroot}%{_sysconfdir}/%{drivername}/nvidia.icd)" = "libcuda.so" ] &&
665 echo libcuda.so.1 > %{buildroot}%{_sysconfdir}/%{drivername}/nvidia.icd
666
667 # ld.so.conf
668 install -d -m755 %{buildroot}%{_sysconfdir}/%{drivername}
669 echo "%{nvidia_libdir}" > %{buildroot}%{_sysconfdir}/%{drivername}/ld.so.conf
670 %ifarch %{biarches}
671 echo "%{nvidia_libdir32}" >> %{buildroot}%{_sysconfdir}/%{drivername}/ld.so.conf
672 %endif
673 install -d -m755 %{buildroot}%{_sysconfdir}/ld.so.conf.d
674 touch %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL.conf
675
676 # modprobe.conf
677 install -d -m755 %{buildroot}%{_sysconfdir}/modprobe.d
678 touch %{buildroot}%{_sysconfdir}/modprobe.d/display-driver.conf
679 echo "install nvidia /sbin/modprobe %{modulename} \$CMDLINE_OPTS" > %{buildroot}%{_sysconfdir}/%{drivername}/modprobe.conf
680
681 # XvMCConfig
682 install -d -m755 %{buildroot}%{_sysconfdir}/%{drivername}
683 echo "libXvMCNVIDIA_dynamic.so.1" > %{buildroot}%{_sysconfdir}/%{drivername}/XvMCConfig
684
685 # xinit script
686 install -d -m755 %{buildroot}%{_sysconfdir}/%{drivername}
687 cat > %{buildroot}%{_sysconfdir}/%{drivername}/nvidia-settings.xinit <<EOF
688 # to be sourced
689 #
690 # Do not modify this file; the changes will be overwritten.
691 # If you want to disable automatic configuration loading, create
692 # /etc/sysconfig/nvidia-settings with this line: LOAD_NVIDIA_SETTINGS="no"
693 #
694 LOAD_NVIDIA_SETTINGS="yes"
695 [ -f %{_sysconfdir}/sysconfig/nvidia-settings ] && . %{_sysconfdir}/sysconfig/nvidia-settings
696 [ "\$LOAD_NVIDIA_SETTINGS" = "yes" ] && %{_bindir}/nvidia-settings --load-config-only
697 EOF
698 chmod 0755 %{buildroot}%{_sysconfdir}/%{drivername}/nvidia-settings.xinit
699 install -d -m755 %{buildroot}%{_sysconfdir}/X11/xinit.d
700 touch %{buildroot}%{_sysconfdir}/X11/xinit.d/nvidia-settings.xinit
701
702 # install ldetect-lst pcitable files for backports
703 # local version of merge2pcitable.pl:read_nvidia_readme:
704 section=0
705 set +x
706 [ -e README.txt ] || cp -a usr/share/doc/README.txt .
707 cat README.txt | while read line; do
708 [ $section -gt 3 ] && break
709 if [ $((section %% 2)) -eq 0 ]; then
710 echo "$line" | grep -Pq "^\s*NVIDIA GPU product\s+Device PCI ID" && section=$((section+1))
711 continue
712 fi
713 if echo "$line" | grep -Pq "^\s*$"; then
714 section=$((section+1))
715 continue
716 fi
717 echo "$line" | grep -Pq "^\s*-+[\s-]+$" && continue
718 id=$(echo "$line" | sed -nre 's,^\s*.+?\s+0x(....).*$,\1,p' | tr '[:upper:]' '[:lower:]')
719 echo "0x10de 0x$id \"Card:%{ldetect_cards_name}\""
720 done | sort -u > pcitable.nvidia.lst
721 set -x
722 [ $(wc -l pcitable.nvidia.lst | cut -f1 -d" ") -gt 200 ]
723 %if "%{ldetect_cards_name}" != ""
724 install -d -m755 %{buildroot}%{_datadir}/ldetect-lst/pcitable.d
725 gzip -c pcitable.nvidia.lst > %{buildroot}%{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz
726 %endif
727
728 export EXCLUDE_FROM_STRIP="$(find %{buildroot} -type f \! -name nvidia-settings \! -name nvidia-xconfig)"
729
730 %post -n %{driverpkgname}
731 # XFdrake used to generate an nvidia.conf file
732 [ -L %{_sysconfdir}/modprobe.d/nvidia.conf ] || rm -f %{_sysconfdir}/modprobe.d/nvidia.conf
733
734 current_glconf="$(readlink -e %{_sysconfdir}/ld.so.conf.d/GL.conf)"
735
736 # owned by libvdpau1, created in case libvdpau1 is installed only just after
737 # this package
738 mkdir -p %{_libdir}/vdpau
739
740 %{_sbindir}/update-alternatives \
741 --install %{_sysconfdir}/ld.so.conf.d/GL.conf gl_conf %{_sysconfdir}/%{drivername}/ld.so.conf %{priority} \
742 --slave %{_mandir}/man1/nvidia-settings.1%{_extension} man_nvidiasettings%{_extension} %{_mandir}/man1/alt-%{drivername}-settings.1%{_extension} \
743 --slave %{_mandir}/man1/nvidia-xconfig.1%{_extension} man_nvidiaxconfig%{_extension} %{_mandir}/man1/alt-%{drivername}-xconfig.1%{_extension} \
744 --slave %{_mandir}/man1/nvidia-smi.1%{_extension} nvidia-smi.1%{_extension} %{_mandir}/man1/alt-%{drivername}-smi.1%{_extension} \
745 --slave %{_datadir}/applications/mageia-nvidia-settings.desktop nvidia_desktop %{_datadir}/%{drivername}/mageia-nvidia-settings.desktop \
746 --slave %{_bindir}/nvidia-settings nvidia_settings %{nvidia_bindir}/nvidia-settings \
747 --slave %{_bindir}/nvidia-smi nvidia_smi %{nvidia_bindir}/nvidia-smi \
748 --slave %{_bindir}/nvidia-xconfig nvidia_xconfig %{nvidia_bindir}/nvidia-xconfig \
749 --slave %{_bindir}/nvidia-bug-report.sh nvidia_bug_report %{nvidia_bindir}/nvidia-bug-report.sh \
750 --slave %{_sysconfdir}/X11/XvMCConfig xvmcconfig %{_sysconfdir}/%{drivername}/XvMCConfig \
751 --slave %{_sysconfdir}/X11/xinit.d/nvidia-settings.xinit nvidia-settings.xinit %{_sysconfdir}/%{drivername}/nvidia-settings.xinit \
752 --slave %{_libdir}/vdpau/libvdpau_nvidia.so.1 %{_lib}vdpau_nvidia.so.1 %{nvidia_libdir}/vdpau/libvdpau_nvidia.so.%{version} \
753 --slave %{_sysconfdir}/modprobe.d/display-driver.conf display-driver.conf %{_sysconfdir}/%{drivername}/modprobe.conf \
754 --slave %{_sysconfdir}/OpenCL/vendors/nvidia.icd nvidia.icd %{_sysconfdir}/%{drivername}/nvidia.icd \
755 %ifarch %{biarches}
756 --slave %{_prefix}/lib/vdpau/libvdpau_nvidia.so.1 libvdpau_nvidia.so.1 %{nvidia_libdir32}/vdpau/libvdpau_nvidia.so.%{version} \
757 %endif
758 --slave %{xorg_extra_modules} xorg_extra_modules %{nvidia_extensionsdir} \
759
760 if [ "${current_glconf}" = "%{_sysconfdir}/nvidia97xx/ld.so.conf" ]; then
761 # Adapt for the renaming of the driver. X.org config still has the old ModulePaths
762 # but they do not matter as we are using alternatives for libglx.so now.
763 %{_sbindir}/update-alternatives --set gl_conf %{_sysconfdir}/%{drivername}/ld.so.conf
764 fi
765 # explicit /sbin/ldconfig due to alternatives
766 /sbin/ldconfig -X
767
768 %if "%{ldetect_cards_name}" != ""
769 [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
770 %endif
771
772 %postun -n %{driverpkgname}
773 if [ ! -f %{_sysconfdir}/%{drivername}/ld.so.conf ]; then
774 %{_sbindir}/update-alternatives --remove gl_conf %{_sysconfdir}/%{drivername}/ld.so.conf
775 fi
776 # explicit /sbin/ldconfig due to alternatives
777 /sbin/ldconfig -X
778
779 %if "%{ldetect_cards_name}" != ""
780 [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
781 %endif
782
783
784 %post -n dkms-%{drivername}
785 /usr/sbin/dkms --rpm_safe_upgrade add -m %{drivername} -v %{version}-%{release} &&
786 /usr/sbin/dkms --rpm_safe_upgrade build -m %{drivername} -v %{version}-%{release} &&
787 /usr/sbin/dkms --rpm_safe_upgrade install -m %{drivername} -v %{version}-%{release} --force
788
789 # rmmod any old driver if present and not in use (e.g. by X)
790 rmmod nvidia > /dev/null 2>&1 || true
791
792 %preun -n dkms-%{drivername}
793 /usr/sbin/dkms --rpm_safe_upgrade remove -m %{drivername} -v %{version}-%{release} --all
794
795 # rmmod any old driver if present and not in use (e.g. by X)
796 rmmod nvidia > /dev/null 2>&1 || true
797
798 %clean
799 rm -rf %{buildroot}
800
801 %files -n %{driverpkgname} -f %{pkgname}/nvidia.files
802 %defattr(-,root,root)
803 # other documentation files are listed in nvidia.files
804 %doc README.install.urpmi README.manual-setup
805
806 %if "%{ldetect_cards_name}" != ""
807 %{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz
808 %endif
809
810 # ld.so.conf, modprobe.conf, xvmcconfig, xinit
811 %ghost %{_sysconfdir}/ld.so.conf.d/GL.conf
812 %ghost %{_sysconfdir}/X11/xinit.d/nvidia-settings.xinit
813 %ghost %{_sysconfdir}/modprobe.d/display-driver.conf
814 %dir %{_sysconfdir}/%{drivername}
815 %{_sysconfdir}/%{drivername}/modprobe.conf
816 %{_sysconfdir}/%{drivername}/ld.so.conf
817 %{_sysconfdir}/%{drivername}/XvMCConfig
818 %{_sysconfdir}/%{drivername}/nvidia-settings.xinit
819 %if !%simple
820 %{_sysconfdir}/%{drivername}/nvidia.icd
821 %endif
822
823 %dir %{_sysconfdir}/OpenCL
824 %dir %{_sysconfdir}/OpenCL/vendors
825 %ghost %{_sysconfdir}/OpenCL/vendors/nvidia.icd
826
827 %ghost %{_bindir}/nvidia-settings
828 %ghost %{_bindir}/nvidia-smi
829 %ghost %{_bindir}/nvidia-xconfig
830 %ghost %{_bindir}/nvidia-bug-report.sh
831 %if !%simple
832 %dir %{nvidia_bindir}
833 %{nvidia_bindir}/nvidia-settings
834 %{nvidia_bindir}/nvidia-smi
835 %{nvidia_bindir}/nvidia-xconfig
836 %{nvidia_bindir}/nvidia-bug-report.sh
837 %endif
838
839 %ghost %{_mandir}/man1/nvidia-xconfig.1%{_extension}
840 %ghost %{_mandir}/man1/nvidia-settings.1%{_extension}
841 %ghost %{_mandir}/man1/nvidia-smi.1%{_extension}
842 %if !%simple
843 %{_mandir}/man1/alt-%{drivername}-xconfig.1*
844 %{_mandir}/man1/alt-%{drivername}-settings.1*
845 %{_mandir}/man1/alt-%{drivername}-smi.1*
846 %else
847 %{_mandir}/man1/alt-%{drivername}-*
848 %endif
849
850 %ghost %{_datadir}/applications/mageia-nvidia-settings.desktop
851 %dir %{_datadir}/%{drivername}
852 %{_datadir}/%{drivername}/mageia-nvidia-settings.desktop
853
854 %if !%simple
855 %{_iconsdir}/hicolor/16x16/apps/%{drivername}-settings.png
856 %{_iconsdir}/hicolor/32x32/apps/%{drivername}-settings.png
857 %endif
858 %{_iconsdir}/hicolor/48x48/apps/%{drivername}-settings.png
859
860 %if !%simple
861 %dir %{nvidia_libdir}
862 %dir %{nvidia_libdir}/tls
863 %dir %{nvidia_libdir}/vdpau
864 %{nvidia_libdir}/libGL.so.%{version}
865 %{nvidia_libdir}/libnvidia-glcore.so.%{version}
866 %{nvidia_libdir}/libXvMCNVIDIA.so.%{version}
867 %{nvidia_libdir}/libnvidia-cfg.so.%{version}
868 %{nvidia_libdir}/libnvidia-tls.so.%{version}
869 %{nvidia_libdir}/vdpau/libvdpau_nvidia.so.%{version}
870 %{nvidia_libdir}/libGL.so.1
871 %{nvidia_libdir}/libXvMCNVIDIA_dynamic.so.1
872 %{nvidia_libdir}/libnvidia-cfg.so.1
873 %{nvidia_libdir}/libvdpau_nvidia.so
874 %{nvidia_libdir}/tls/libnvidia-tls.so.%{version}
875 %ifarch %{biarches}
876 %dir %{nvidia_libdir32}
877 %dir %{nvidia_libdir32}/tls
878 %dir %{nvidia_libdir32}/vdpau
879 %{nvidia_libdir32}/libGL.so.%{version}
880 %{nvidia_libdir32}/libnvidia-glcore.so.%{version}
881 %{nvidia_libdir32}/libnvidia-tls.so.%{version}
882 %{nvidia_libdir32}/libvdpau_nvidia.so
883 %{nvidia_libdir32}/vdpau/libvdpau_nvidia.so.%{version}
884 %{nvidia_libdir32}/libGL.so.1
885 %{nvidia_libdir32}/tls/libnvidia-tls.so.%{version}
886 %endif
887 # %simple
888 %endif
889
890 %ghost %{_libdir}/vdpau/libvdpau_nvidia.so.1
891 %ifarch %{biarches}
892 # avoid unowned directory
893 %dir %{_prefix}/lib/vdpau
894 %ghost %{_prefix}/lib/vdpau/libvdpau_nvidia.so.1
895 %endif
896
897 %if !%simple
898 %dir %{nvidia_modulesdir}
899 %{nvidia_modulesdir}/libnvidia-wfb.so.1
900 %endif
901
902 %if !%simple
903 %{nvidia_modulesdir}/libnvidia-wfb.so.%{version}
904 %endif
905
906 %if !%simple
907 %{nvidia_extensionsdir}/libglx.so.%{version}
908 %{nvidia_extensionsdir}/libglx.so
909 %endif
910
911 %if !%simple
912 %{nvidia_driversdir}/nvidia_drv.so
913 %endif
914
915 %files -n %{drivername}-devel -f %pkgname/nvidia-devel.files
916 %defattr(-,root,root)
917 %if !%simple
918 %{_includedir}/%{drivername}
919 %{nvidia_libdir}/libXvMCNVIDIA.a
920 %{nvidia_libdir}/libXvMCNVIDIA_dynamic.so
921 %{nvidia_libdir}/libGL.so
922 %{nvidia_libdir}/libcuda.so
923 %{nvidia_libdir}/libnvcuvid.so
924 %{nvidia_libdir}/libnvidia-cfg.so
925 %{nvidia_libdir}/libOpenCL.so
926 %{nvidia_libdir}/libnvidia-ml.so
927 %ifarch %{biarches}
928 %{nvidia_libdir32}/libGL.so
929 %{nvidia_libdir32}/libcuda.so
930 %{nvidia_libdir32}/libOpenCL.so
931 %endif
932 %endif
933
934 %files -n dkms-%{drivername}
935 %defattr(-,root,root)
936 %doc %{pkgname}/LICENSE
937 %{_usrsrc}/%{drivername}-%{version}-%{release}
938
939 %files -n %{drivername}-doc-html -f %pkgname/nvidia-html.files
940 %defattr(-,root,root)
941
942 %files -n %{drivername}-cuda-opencl -f %pkgname/nvidia-cuda.files
943 %defattr(-,root,root)
944 %if !%simple
945 %{nvidia_libdir}/libOpenCL.so.1.0.0
946 %{nvidia_libdir}/libOpenCL.so.1.0
947 %{nvidia_libdir}/libOpenCL.so.1
948 %{nvidia_libdir}/libnvcuvid.so.%{version}
949 %{nvidia_libdir}/libnvcuvid.so.1
950 %{nvidia_libdir}/libnvidia-compiler.so.%{version}
951 %{nvidia_libdir}/libcuda.so.%{version}
952 %{nvidia_libdir}/libcuda.so.1
953 %{nvidia_libdir}/libnvidia-ml.so.1
954 %{nvidia_libdir}/libnvidia-ml.so.%{version}
955 %ifarch %{biarches}
956 %{nvidia_libdir32}/libOpenCL.so.1.0.0
957 %{nvidia_libdir32}/libOpenCL.so.1.0
958 %{nvidia_libdir32}/libOpenCL.so.1
959 %{nvidia_libdir32}/libnvidia-compiler.so.%{version}
960 %{nvidia_libdir32}/libcuda.so.%{version}
961 %{nvidia_libdir32}/libcuda.so.1
962 %endif
963 %endif

  ViewVC Help
Powered by ViewVC 1.1.28