/[packages]/backports/5/nvidia-current/current/SPECS/nvidia-current.spec
ViewVC logotype

Annotation of /backports/5/nvidia-current/current/SPECS/nvidia-current.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 904031 - (hide annotations) (download)
Wed Nov 18 19:08:58 2015 UTC (8 years, 5 months ago) by tmb
Original Path: cauldron/nvidia-current/current/SPECS/nvidia-current.spec
File size: 42546 byte(s)
fix filelists
1 ahmad 56864 # 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 tmb 903985 %define version 352.63
19     %define rel 1
20 ahmad 56864 # the highest supported videodrv abi
21 tv 902295 %define videodrv_abi 20
22 ahmad 56864 %endif
23    
24     %define priority 9700
25    
26     %define pkgname32 NVIDIA-Linux-x86-%{version}
27     %define pkgname64 NVIDIA-Linux-x86_64-%{version}
28    
29 ahmad 131342 # Disable when the sources aren't on ftp yet, but can be downloaded from
30     # http://us.download.nvidia.com
31 tmb 447858 %define ftp 1
32 ahmad 131342
33 ahmad 56864 # For now, backportability is kept for 2008.0 forwards.
34    
35     %define drivername nvidia-current
36     %define driverpkgname x11-driver-video-%{drivername}
37     %define modulename %{drivername}
38     # for description and documentation
39 anssi 812247 %define cards GeForce 420 and later cards
40 ahmad 56864 %define xorg_extra_modules %{_libdir}/xorg/extra-modules
41     %define nvidia_driversdir %{_libdir}/%{drivername}/xorg
42     %define nvidia_extensionsdir %{_libdir}/%{drivername}/xorg
43     %define nvidia_modulesdir %{_libdir}/%{drivername}/xorg
44     %define nvidia_libdir %{_libdir}/%{drivername}
45     %define nvidia_libdir32 %{_prefix}/lib/%{drivername}
46     %define nvidia_bindir %{nvidia_libdir}/bin
47 anssi 812247 %define nvidia_datadir %{_datadir}/nvidia-alt-%{drivername}
48 ahmad 56864 # The entry in Cards+ this driver should be associated with, if there is
49     # no entry in ldetect-lst default pcitable:
50     # cooker ldetect-lst should be up-to-date
51     %define ldetect_cards_name %nil
52    
53 anssi 812247 %if %simple
54     # assign a Cards+ entry according to Mageia version
55     %define ldetect_cards_name NVIDIA GeForce 420 series and later
56     %if %mgaversion <= 4
57     # nvidia/nouveau
58 ahmad 56864 %define ldetect_cards_name NVIDIA GeForce 400 series and later
59     %endif
60 anssi 812247 %endif
61 ahmad 56864
62     %define biarches x86_64
63    
64     %if !%simple
65     %ifarch %{ix86}
66     %define nsource %{SOURCE0}
67     %define pkgname %{pkgname32}
68     %endif
69     %ifarch x86_64
70     %define nsource %{SOURCE1}
71     %define pkgname %{pkgname64}
72     %endif
73     %endif
74    
75     # Other packages should not require any NVIDIA libraries, and this package
76     # should not be pulled in when libGL.so.1 is required
77 tv 677249 %global __provides_exclude \\.so
78 tmb 795041 %global common__requires_exclude ^libGL\\.so|^libGLcore\\.so|^libnvidia.*\\.so
79 ahmad 56864
80     %ifarch %{biarches}
81     # (anssi) Allow installing of 64-bit package if the runtime dependencies
82     # of 32-bit libraries are not satisfied. If a 32-bit package that requires
83     # libGL.so.1 is installed, the 32-bit mesa libs are pulled in and that will
84     # pull the dependencies of 32-bit nvidia libraries in as well.
85 tmb 795041 %global __requires_exclude %common__requires_exclude|^libX11\\.so\\.6$|^libXext\\.so\\.6$|^libdl\\.so\\.2$|^libm\\.so\\.6$|^libpthread\\.so\\.0$|^librt\\.so\\.1$
86 ahmad 56864 %else
87 tmb 701446 %global __requires_exclude %common__requires_exclude
88 ahmad 56864 %endif
89    
90 anssi 320407 # (anssi) Workaround wrong linking as of 310.19.
91     # This will probably be fixed soon (at least similar issues have been in the past).
92     # https://devtalk.nvidia.com/default/topic/523762/libnvidia-encode-so-310-19-has-dependency-on-missing-library/
93 tv 677550 %global __requires_exclude_from libnvidia-encode.so.%version
94 anssi 320407
95 anssi 812247 # backportability
96     %global _provides_exceptions %(echo '%__provides_exclude' | sed 's,|,\\\\|,g')
97     %global _requires_exceptions %(echo '%__requires_exclude' | sed 's,|,\\\\|,g')
98     %global _exclude_files_from_autoreq %(echo '%__requires_exclude_from' | sed 's,|,\\\\|,g')
99    
100 ahmad 56864 Summary: NVIDIA proprietary X.org driver and libraries, current driver series
101     Name: %{name}
102     Version: %{version}
103     Release: %mkrel %{rel}
104     %if !%simple
105 ahmad 131342 %if %ftp
106 ahmad 56864 Source0: ftp://download.nvidia.com/XFree86/Linux-x86/%{version}/%{pkgname32}.run
107     Source1: ftp://download.nvidia.com/XFree86/Linux-x86_64/%{version}/%{pkgname64}.run
108     # GPLv2 source code; see also http://cgit.freedesktop.org/~aplattner/
109     Source2: ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-%{version}.tar.bz2
110     Source3: ftp://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-%{version}.tar.bz2
111 anssi 412170 Source4: ftp://download.nvidia.com/XFree86/nvidia-modprobe/nvidia-modprobe-%{version}.tar.bz2
112     Source5: ftp://download.nvidia.com/XFree86/nvidia-persistenced/nvidia-persistenced-%{version}.tar.bz2
113 ahmad 131342 %else
114     Source0: http://us.download.nvidia.com/XFree86/Linux-x86/%{version}/%{pkgname32}.run
115     Source1: http://us.download.nvidia.com/XFree86/Linux-x86_64/%{version}/%{pkgname64}.run
116     # GPLv2 source code; see also http://cgit.freedesktop.org/~aplattner/
117     Source2: http://us.download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-%{version}.tar.bz2
118     Source3: http://us.download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-%{version}.tar.bz2
119 anssi 412170 Source4: http://us.download.nvidia.com/XFree86/nvidia-modprobe/nvidia-modprobe-%{version}.tar.bz2
120     Source5: http://us.download.nvidia.com/XFree86/nvidia-persistenced/nvidia-persistenced-%{version}.tar.bz2
121 ahmad 131342 %endif
122 ahmad 56864 # Script for building rpms of arbitrary nvidia installers (needs this .spec appended)
123 anssi 412170 Source10: nvidia-mgabuild-skel
124 ahmad 56864 # include xf86vmproto for X_XF86VidModeGetGammaRampSize, fixes build on cooker
125     Patch3: nvidia-settings-include-xf86vmproto.patch
126     %endif
127 tmb 804013
128 ahmad 56864 License: Freeware
129     BuildRoot: %{_tmppath}/%{name}-buildroot
130     URL: http://www.nvidia.com/object/unix.html
131     Group: System/Kernel and hardware
132     ExclusiveArch: %{ix86} x86_64
133     %if !%simple
134     BuildRequires: ImageMagick
135     BuildRequires: gtk+2-devel
136 tmb 811410 BuildRequires: gtk+3-devel
137 ahmad 56864 BuildRequires: libxv-devel
138     BuildRequires: MesaGL-devel
139     BuildRequires: libxxf86vm-devel
140 tmb 811409 BuildRequires: vdpau-devel >= 0.9
141 tmb 866760
142 ahmad 56864 %endif
143    
144     %description
145     Source package of the current NVIDIA proprietary driver. Binary
146 anssi 812247 packages are named %{driverpkgname}.
147 ahmad 56864
148     %package -n %{driverpkgname}
149     Summary: NVIDIA proprietary X.org driver and libraries for %cards
150     Group: System/Kernel and hardware
151     Requires(post): update-alternatives >= 1.9.0
152     Requires(postun): update-alternatives >= 1.9.0
153     Requires: x11-server-common
154 tv 676075 Recommends: %{drivername}-doc-html = %{version}
155 ahmad 56864 # Proper support for versioned kmod() was added in 2008.1:
156 tmb 723397 Requires: kmod(%{modulename}.ko) = %{version}
157 ahmad 56864 # At least mplayer dlopens libvdpau.so.1, so the software will not pull in
158     # the vdpau library package. We ensure its installation here.
159     Requires: %{_lib}vdpau1
160 anssi 219541 %if !%simple && %mgaversion >= 2
161     Requires: xserver-abi(videodrv) < %(echo $((%{videodrv_abi}+1)))
162 ahmad 66356 %endif
163 tmb 274692 Conflicts: nvidia-current-cuda-opencl <= 295.59-1
164 ahmad 56864 # Obsoletes for naming changes:
165     Obsoletes: nvidia < 1:%{version}-%{release}
166     Provides: nvidia = 1:%{version}-%{release}
167     Obsoletes: nvidia97xx < %{version}-%{release}
168     Provides: nvidia97xx = %{version}-%{release}
169    
170     %description -n %{driverpkgname}
171     NVIDIA proprietary X.org graphics driver, related libraries and
172     configuration tools for %cards,
173     including the associated Quadro cards.
174    
175     NOTE: You should use XFdrake to configure your NVIDIA card. The
176     correct packages will be automatically installed and configured.
177    
178     If you do not want to use XFdrake, see README.manual-setup.
179    
180     This NVIDIA driver should be used with %cards,
181     including the associated Quadro cards.
182    
183     %package -n dkms-%{drivername}
184     Summary: NVIDIA kernel module for %cards
185     Group: System/Kernel and hardware
186     Requires: dkms
187     Requires(post): dkms
188     Requires(preun): dkms
189 tmb 723397 Provides: kmod(%{modulename}.ko) = %{version}
190 ahmad 56864 Obsoletes: dkms-nvidia < 1:%{version}-%{release}
191     Provides: dkms-nvidia = 1:%{version}-%{release}
192     Obsoletes: dkms-nvidia97xx < %{version}-%{release}
193     Provides: dkms-nvidia97xx = %{version}-%{release}
194    
195     %description -n dkms-%{drivername}
196     NVIDIA kernel module for %cards. This
197     is to be used with the %{driverpkgname} package.
198    
199     %package -n %{drivername}-devel
200 anssi 320407 Summary: NVIDIA OpenGL/CUDA development liraries and headers
201 ahmad 56864 Group: Development/C
202     Requires: %{driverpkgname} = %{version}-%{release}
203     Requires: %{drivername}-cuda-opencl = %{version}-%{release}
204     Obsoletes: nvidia-devel < 1:%{version}-%{release}
205     Provides: nvidia-devel = 1:%{version}-%{release}
206     Obsoletes: nvidia97xx-devel < %{version}-%{release}
207     Provides: nvidia97xx-devel = %{version}-%{release}
208     Requires: %{_lib}vdpau-devel
209    
210     %description -n %{drivername}-devel
211 anssi 320407 NVIDIA OpenGL/CUDA headers for %cards. This package
212     is not required for normal use.
213 ahmad 56864
214     %package -n %{drivername}-cuda-opencl
215     Summary: CUDA and OpenCL libraries for NVIDIA proprietary driver
216     Group: System/Kernel and hardware
217     Provides: %{drivername}-cuda = %{version}-%{release}
218 tmb 723397 Requires: kmod(%{modulename}.ko) = %{version}
219 ahmad 56864 Conflicts: nvidia < 1:195.36.15-4
220 tmb 274692 Conflicts: x11-driver-video-nvidia-current <= 295.59-1
221 ahmad 56864
222     %description -n %{drivername}-cuda-opencl
223     Cuda and OpenCL libraries for NVIDIA proprietary driver. This package is not
224     required for normal use, it provides libraries to use NVIDIA cards for High
225     Performance Computing (HPC).
226    
227     # HTML doc splitted off because of size, for live cds:
228     %package -n %{drivername}-doc-html
229     Summary: NVIDIA html documentation (%{drivername})
230     Group: System/Kernel and hardware
231     Requires: %{driverpkgname} = %{version}-%{release}
232    
233     %description -n %{drivername}-doc-html
234     HTML version of the README.txt file provided in package
235     %{driverpkgname}.
236    
237     %prep
238     # No patches applied when %simple is set
239     %if %simple
240     %setup -q -c -T
241     %else
242 anssi 412170 %setup -q -c -T -a 2 -a 3 -a 4 -a 5
243 ahmad 56864 cd nvidia-settings-%{version}
244     %patch3 -p1
245     cd ..
246     %endif
247     sh %{nsource} --extract-only
248    
249 tmb 817094 #if !%simple
250     #cd %{pkgname}
251     #cd ..
252     #endif
253 ahmad 56864
254     rm -rf %{pkgname}/usr/src/nv/precompiled
255    
256 anssi 412170 %if %simple
257     # for old releases
258     mkdir -p %{pkgname}/kernel
259     %endif
260    
261 tmb 282366 # (tmb) nuke nVidia provided dkms.conf as we need our own
262 tmb 550648 rm -f %{pkgname}/kernel/dkms.conf
263     rm -f %{pkgname}/kernel/uvm/dkms.conf.fragment
264 tmb 282366
265     # install our own dkms.conf
266     cat > %{pkgname}/kernel/dkms.conf <<EOF
267     PACKAGE_NAME="%{drivername}"
268     PACKAGE_VERSION="%{version}-%{release}"
269     BUILT_MODULE_NAME[0]="nvidia"
270 tmb 555885 DEST_MODULE_LOCATION[0]="/kernel/drivers/char/drm"
271 tmb 282366 DEST_MODULE_NAME[0]="%{modulename}"
272 tmb 812394 %ifarch x86_64
273 tmb 552586 BUILT_MODULE_NAME[1]="nvidia-uvm"
274     BUILT_MODULE_LOCATION[1]="uvm/"
275 tmb 812400 DEST_MODULE_LOCATION[1]="/kernel/drivers/char/drm"
276 tmb 812394 %endif
277 tmb 282366 MAKE[0]="make SYSSRC=\${kernel_source_dir} module"
278 tmb 812394 %ifarch x86_64
279 tmb 552614 MAKE[0]+="; make SYSSRC=\${kernel_source_dir} -C uvm module KBUILD_EXTMOD=\${dkms_tree}/%{drivername}/%{version}-%{release}/build/uvm"
280 tmb 812394 %endif
281 tmb 282366 CLEAN="make -f Makefile.kbuild clean"
282 tmb 812394 %ifarch x86_64
283 tmb 552586 CLEAN+="; make -C uvm clean"
284 tmb 812394 %endif
285 tmb 282366 AUTOINSTALL="yes"
286     EOF
287    
288 anssi 607237 %if %simple
289     # backward-compatibility randomness
290     if ! [ -e %{pkgname}/kernel/uvm ]; then
291     grep -v uvm %{pkgname}/kernel/dkms.conf > %{pkgname}/kernel/dkms.conf.2
292     mv -f %{pkgname}/kernel/dkms.conf.2 %{pkgname}/kernel/dkms.conf
293     fi
294     %endif
295    
296 ahmad 56864 cat > README.install.urpmi <<EOF
297     This driver is for %cards.
298    
299     Use XFdrake to configure X to use the correct NVIDIA driver. Any needed
300     packages will be automatically installed if not already present.
301     1. Run XFdrake as root.
302     2. Go to the Graphics Card list.
303     3. Select your card (it is usually already autoselected).
304     4. Answer any questions asked and then quit.
305    
306     If you do not want to use XFdrake, see README.manual-setup.
307     EOF
308    
309     cat > README.manual-setup <<EOF
310     This file describes the procedure for the manual installation of this NVIDIA
311     driver package. You can find the instructions for the recommended automatic
312     installation in the file 'README.install.urpmi' in this directory.
313    
314     - Open %{_sysconfdir}/X11/xorg.conf and make the following changes:
315     o Change the Driver to "nvidia" in the Device section
316     o Make the line below the only 'glx' related line in the Module section,
317     adding it if it is not already there:
318     Load "glx"
319     o Remove any 'ModulePath' lines from the Files section
320     - Run "update-alternatives --set gl_conf %{_sysconfdir}/%{drivername}/ld.so.conf" as root.
321     - Run "ldconfig -X" as root.
322     EOF
323    
324     %if !%simple
325 tmb 629397 #rm nvidia-settings-%{version}/src/*/*.a
326 ahmad 56864
327     %build
328 anssi 412170 # The code contains dozens on top of dozens on top of dozens of "false" positives
329     export CFLAGS="%optflags -Wno-error=format-security"
330 ahmad 56864 export CXXFLAGS="$CFLAGS"
331     export LDFLAGS="%{?ldflags}"
332     %make -C nvidia-settings-%{version}/src/libXNVCtrl
333     %make -C nvidia-settings-%{version} STRIP_CMD=true
334     %make -C nvidia-xconfig-%{version} STRIP_CMD=true
335 anssi 412170 %make -C nvidia-modprobe-%{version} STRIP_CMD=true
336     %make -C nvidia-persistenced-%{version} STRIP_CMD=true
337 ahmad 56864
338     # %simple
339     %endif
340    
341     %install
342     rm -rf %{buildroot}
343     cd %{pkgname}
344    
345     # menu entry
346     install -d -m755 %{buildroot}%{_datadir}/%{drivername}
347 ahmad 56909 cat > %{buildroot}%{_datadir}/%{drivername}/mageia-nvidia-settings.desktop <<EOF
348 ahmad 56864 [Desktop Entry]
349     Name=NVIDIA Display Settings
350     Comment=Configure NVIDIA X driver
351     Exec=%{_bindir}/nvidia-settings
352     Icon=%{drivername}-settings
353     Terminal=false
354     Type=Application
355 anssi 181441 Categories=GTK;Settings;HardwareSettings;
356 ahmad 56864 EOF
357    
358     install -d -m755 %{buildroot}%{_datadir}/applications
359 ahmad 56909 touch %{buildroot}%{_datadir}/applications/mageia-nvidia-settings.desktop
360 ahmad 56864
361     # icons
362     install -d -m755 %{buildroot}%{_iconsdir}/hicolor/{16x16,32x32,48x48}/apps
363     %if !%simple
364     convert nvidia-settings.png -resize 16x16 %{buildroot}%{_iconsdir}/hicolor/16x16/apps/%{drivername}-settings.png
365     convert nvidia-settings.png -resize 32x32 %{buildroot}%{_iconsdir}/hicolor/32x32/apps/%{drivername}-settings.png
366     convert nvidia-settings.png -resize 48x48 %{buildroot}%{_iconsdir}/hicolor/48x48/apps/%{drivername}-settings.png
367     %else
368     # no imagemagick
369     [ -e nvidia-settings.png ] || cp -a usr/share/pixmaps/nvidia-settings.png .
370     install -m644 nvidia-settings.png %{buildroot}%{_iconsdir}/hicolor/48x48/apps/%{drivername}-settings.png
371     %endif
372    
373     error_fatal() {
374     echo "Error: $@." >&2
375     exit 1
376     }
377    
378     error_unhandled() {
379     echo "Warning: $@." >&2
380     echo "Warning: $@." >> warns.log
381     %if !%simple
382     # cause distro builds to fail in case of unhandled files
383     exit 1
384     %endif
385     }
386    
387     parseparams() {
388     for value in $rest; do
389     local param=$1
390     [ -n "$param" ] || error_fatal "unhandled parameter $value"
391     shift
392     eval $param=$value
393    
394     [ -n "$value" ] || error_fatal "empty $param"
395    
396     # resolve libdir based on $arch
397     if [ "$param" = "arch" ]; then
398     case "$arch" in
399     NATIVE) nvidia_libdir=%{nvidia_libdir};;
400     COMPAT32) nvidia_libdir=%{nvidia_libdir32};;
401     *) error_fatal "unknown arch $arch"
402     esac
403     fi
404     done
405     }
406    
407     add_to_list() {
408     %if !%simple
409     # on distro builds, only use .manifest for %doc files
410     [ "${2#%doc}" = "${2}" ] && return
411     %endif
412     local list="$1.files"
413     local entry="$2"
414     echo $entry >> $list
415     }
416    
417     install_symlink() {
418     local pkg="$1"
419     local dir="$2"
420     mkdir -p %{buildroot}$dir
421     ln -s $dest %{buildroot}$dir/$file
422     add_to_list $pkg $dir/$file
423     }
424    
425     install_lib_symlink() {
426     local pkg="$1"
427     local dir="$2"
428     case "$file" in
429     libvdpau_*.so)
430     # vdpau drivers => not put into -devel
431     ;;
432     *.so)
433     pkg=nvidia-devel;;
434     esac
435     install_symlink $pkg $dir
436     }
437    
438     install_file_only() {
439     local pkg="$1"
440     local dir="$2"
441     mkdir -p %{buildroot}$dir
442     # replace 0444 with more usual 0644
443     [ "$perms" = "0444" ] && perms="0644"
444     install -m $perms $file %{buildroot}$dir
445     }
446    
447     install_file() {
448     local pkg="$1"
449     local dir="$2"
450     install_file_only $pkg $dir
451     add_to_list $pkg $dir/$(basename $file)
452     }
453    
454     get_module_dir() {
455     local subdir="$1"
456     case "$subdir" in
457     extensions*) echo %{nvidia_extensionsdir};;
458     drivers/) echo %{nvidia_driversdir};;
459     /) echo %{nvidia_modulesdir};;
460     *) error_unhandled "unhandled module subdir $subdir"
461     echo %{nvidia_modulesdir};;
462     esac
463     }
464    
465     for file in nvidia.files nvidia-devel.files nvidia-cuda.files nvidia-dkms.files nvidia-html.files; do
466     rm -f $file
467     touch $file
468     done
469    
470     # install files according to .manifest
471     cat .manifest | tail -n +9 | while read line; do
472 anssi 607208 arch=
473     style=
474     subdir=
475     dest=
476     nvidia_libdir=
477    
478 ahmad 56864 rest=${line}
479     file=${rest%%%% *}
480     rest=${rest#* }
481     perms=${rest%%%% *}
482     rest=${rest#* }
483     type=${rest%%%% *}
484 anssi 607208 [ "${rest#* }" = "$rest" ] && rest= || rest=${rest#* }
485 ahmad 56864
486     case "$type" in
487     CUDA_LIB)
488     parseparams arch subdir
489     install_file nvidia-cuda $nvidia_libdir/$subdir
490     ;;
491     CUDA_SYMLINK)
492     parseparams arch subdir dest
493     install_lib_symlink nvidia-cuda $nvidia_libdir/$subdir
494     ;;
495 tmb 319556 ENCODEAPI_LIB)
496 anssi 320407 parseparams arch subdir
497     install_file nvidia $nvidia_libdir/$subdir
498 tmb 319556 ;;
499     ENCODEAPI_LIB_SYMLINK)
500     parseparams arch dest
501     install_lib_symlink nvidia $nvidia_libdir
502     ;;
503 tmb 595302 EXPLICIT_PATH)
504     parseparams dest
505 anssi 812247 dest="$(echo "$dest" | sed s,%{_datadir}/nvidia,%{nvidia_datadir},)"
506     install_file nvidia $dest
507 tmb 595302 ;;
508 ahmad 56864 NVCUVID_LIB)
509 anssi 320407 parseparams arch subdir
510     install_file nvidia-cuda $nvidia_libdir/$subdir
511 ahmad 56864 ;;
512     NVCUVID_LIB_SYMLINK)
513     parseparams arch dest
514     install_lib_symlink nvidia-cuda $nvidia_libdir
515     ;;
516 tmb 469114 NVIFR_LIB)
517 anssi 607208 parseparams arch subdir
518     install_file nvidia $nvidia_libdir/$subdir
519 tmb 469114 ;;
520     NVIFR_LIB_SYMLINK)
521 anssi 607208 parseparams arch dest
522 tmb 469114 install_lib_symlink nvidia $nvidia_libdir
523     ;;
524 tmb 811426 OPENCL_LIB)
525     parseparams arch subdir
526     install_file nvidia-cuda $nvidia_libdir/$subdir
527     ;;
528     OPENCL_LIB_SYMLINK)
529     parseparams arch subdir dest
530     install_lib_symlink nvidia-cuda $nvidia_libdir/$subdir
531     ;;
532     OPENCL_WRAPPER_LIB)
533     parseparams arch subdir
534     install_file nvidia-cuda $nvidia_libdir/$subdir
535     ;;
536     OPENCL_WRAPPER_SYMLINK)
537     parseparams arch subdir dest
538     install_lib_symlink nvidia-cuda $nvidia_libdir/$subdir
539     ;;
540 ahmad 56864 OPENGL_LIB)
541     parseparams arch
542     install_file nvidia $nvidia_libdir
543     ;;
544     OPENGL_SYMLINK)
545     parseparams arch dest
546     install_lib_symlink nvidia $nvidia_libdir
547     ;;
548     TLS_LIB)
549     parseparams arch style subdir
550     install_file nvidia $nvidia_libdir/$subdir
551     ;;
552     TLS_SYMLINK)
553     parseparams arch style subdir dest
554     install_lib_symlink nvidia $nvidia_libdir/$subdir
555     ;;
556     UTILITY_LIB)
557 anssi 812247 %if !%simple
558     # skip libnvidia-gtk[23], we build those by ourself
559     echo "$file" | grep -q nvidia-gtk && continue
560     %endif
561 anssi 607208 # backward-compatibility
562     [ -n "${rest}" ] || rest="NATIVE $rest"
563     parseparams arch subdir
564     install_file nvidia $nvidia_libdir/$subdir
565 ahmad 56864 ;;
566     UTILITY_LIB_SYMLINK)
567 anssi 607208 # backward-compatibility
568     [ "${rest#* }" != "$rest" ] || rest="NATIVE $rest"
569     parseparams arch dest
570     install_lib_symlink nvidia $nvidia_libdir
571 ahmad 56864 ;;
572     VDPAU_LIB)
573     parseparams arch subdir
574     case $file in *libvdpau_nvidia.so*);; *) continue; esac
575     install_file nvidia $nvidia_libdir/$subdir
576     ;;
577     VDPAU_SYMLINK)
578     parseparams arch subdir dest
579     case $file in *libvdpau_nvidia.so*);; *) continue; esac
580     install_lib_symlink nvidia $nvidia_libdir/$subdir
581     ;;
582 tmb 550648 VDPAU_WRAPPER_LIB)
583     parseparams arch subdir
584     case $file in *libvdpau_nvidia.so*);; *) continue; esac
585     install_file nvidia $nvidia_libdir/$subdir
586     ;;
587     VDPAU_WRAPPER_SYMLINK)
588     parseparams arch subdir dest
589     case $file in *libvdpau_nvidia.so*);; *) continue; esac
590     install_lib_symlink nvidia $nvidia_libdir/$subdir
591     ;;
592 ahmad 56864 XLIB_STATIC_LIB)
593     install_file nvidia-devel %{nvidia_libdir}
594     ;;
595     XLIB_SHARED_LIB)
596     install_file nvidia %{nvidia_libdir}
597     ;;
598     XLIB_SYMLINK)
599     parseparams dest
600     install_lib_symlink nvidia %{nvidia_libdir}
601     ;;
602     LIBGL_LA)
603     # (Anssi) we don't install .la files
604     ;;
605 anssi 208481 XMODULE_SHARED_LIB|GLX_MODULE_SHARED_LIB)
606 ahmad 56864 parseparams subdir
607     install_file nvidia $(get_module_dir $subdir)
608     ;;
609     XMODULE_NEWSYM)
610     # symlink that is created only if it doesn't already
611     # exist (i.e. as part of x11-server)
612     case "$file" in
613     libwfb.so)
614     continue
615     ;;
616     *)
617     error_unhandled "unknown XMODULE_NEWSYM type file $file, skipped"
618     continue
619     esac
620     parseparams subdir dest
621     install_symlink nvidia $(get_module_dir $subdir)
622     ;;
623 tmb 811426 XORG_OUTPUTCLASS_CONFIG)
624     # (tmb) dont install xorg driver autoloader conf
625     continue
626     ;;
627 anssi 208481 XMODULE_SYMLINK|GLX_MODULE_SYMLINK)
628 ahmad 56864 parseparams subdir dest
629     install_symlink nvidia $(get_module_dir $subdir)
630     ;;
631     VDPAU_HEADER)
632     continue
633     parseparams subdir
634     install_file_only nvidia-devel %{_includedir}/%{drivername}/$subdir
635     ;;
636     OPENGL_HEADER|CUDA_HEADER)
637     parseparams subdir
638     install_file_only nvidia-devel %{_includedir}/%{drivername}/$subdir
639     ;;
640     DOCUMENTATION)
641     parseparams subdir
642     case $subdir in
643     */html)
644     add_to_list nvidia-html "%%doc %{pkgname}/$file"
645     continue
646     ;;
647     */include/*)
648     continue
649     ;;
650     esac
651     case $file in
652     *XF86Config*|*nvidia-settings.png)
653     continue;;
654     esac
655     add_to_list nvidia "%%doc %{pkgname}/$file"
656     ;;
657 anssi 412170 MANPAGE|NVIDIA_MODPROBE_MANPAGE)
658 ahmad 56864 parseparams subdir
659     case "$file" in
660     *nvidia-installer*)
661     # not installed
662     continue
663     ;;
664 anssi 412170 *nvidia-settings*|*nvidia-xconfig*|*nvidia-modprobe*|*nvidia-persistenced*)
665 ahmad 56864 %if !%simple
666     # installed separately below
667     continue
668     %endif
669     ;;
670 anssi 412170 *nvidia-smi*|*nvidia-cuda-mps-control*)
671 ahmad 56864 # ok
672     ;;
673     *)
674     error_unhandled "skipped unknown man page $(basename $file)"
675     continue
676     esac
677     install_file_only nvidia %{_mandir}/$subdir
678     ;;
679     UTILITY_BINARY)
680     case "$file" in
681 anssi 412170 *nvidia-settings|*nvidia-xconfig|*nvidia-persistenced)
682 ahmad 56864 %if !%simple
683     # not installed, we install our own copy
684     continue
685     %endif
686     ;;
687 anssi 412170 *nvidia-smi|*nvidia-bug-report.sh|*nvidia-debugdump)
688 ahmad 56864 # ok
689     ;;
690 anssi 412170 *nvidia-cuda-mps-control|*nvidia-cuda-mps-server)
691     # ok
692     ;;
693 ahmad 56864 *)
694     error_unhandled "unknown binary $(basename $file) will be installed to %{nvidia_bindir}/$(basename $file)"
695     ;;
696     esac
697     install_file nvidia %{nvidia_bindir}
698     ;;
699     UTILITY_BIN_SYMLINK)
700     case $file in nvidia-uninstall) continue;; esac
701     parseparams dest
702     install_symlink nvidia %{nvidia_bindir}
703     ;;
704 anssi 412170 NVIDIA_MODPROBE)
705     # A suid-root tool (GPLv2) used as fallback for loading the module and
706     # creating the device nodes in case the driver component is running as
707     # a non-root user (e.g. a CUDA application). While the module is automatically
708     # loaded by udev rules, the device nodes are not automatically created
709     # like with regular drivers and therefore this tool is installed on
710     # Mageia as well, at least for now.
711    
712     # We install our self-compiled version in non-simple mode
713     %if %simple
714     install_file nvidia %{nvidia_bindir}
715     %endif
716     ;;
717 ahmad 56864 INSTALLER_BINARY)
718     # not installed
719     ;;
720     KERNEL_MODULE_SRC)
721     install_file nvidia-dkms %{_usrsrc}/%{drivername}-%{version}-%{release}
722     ;;
723     CUDA_ICD)
724     # in theory this should go to the cuda subpackage, but it goes into the main package
725     # as this avoids one broken symlink and it is small enough to not cause space issues
726     install_file nvidia %{_sysconfdir}/%{drivername}
727     ;;
728 anssi 412170 APPLICATION_PROFILE)
729     parseparams subdir
730 anssi 812247 install_file nvidia %{nvidia_datadir}/$subdir
731 anssi 412170 ;;
732 ahmad 56864 DOT_DESKTOP)
733     # we provide our own for now
734     ;;
735 tmb 550648 UVM_MODULE_SRC)
736     install_file nvidia-dkms %{_usrsrc}/%{drivername}-%{version}-%{release}/uvm
737     ;;
738 ahmad 56864 *)
739     error_unhandled "file $(basename $file) of unknown type $type will be skipped"
740     esac
741     done
742    
743 anssi 108523 [ -z "$warnings" ] || echo "Please inform Anssi Hannula <anssi@mageia.org> or http://bugs.mageia.org/ of the above warnings." >> warns.log
744 ahmad 56864
745     %if %simple
746     find %{buildroot}%{_libdir} %{buildroot}%{_prefix}/lib -type d | while read dir; do
747     dir=${dir#%{buildroot}}
748     echo "$dir" | grep -q nvidia && echo "%%dir $dir" >> nvidia.files
749     done
750     [ -d %{buildroot}%{_includedir}/%{drivername} ] && echo "%{_includedir}/%{drivername}" >> nvidia-devel.files
751 anssi 412170
752     # for old releases in %%simple mode
753     if ! [ -e %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}/dkms.conf ]; then
754     install -m644 kernel/dkms.conf %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}/dkms.conf
755     fi
756 ahmad 56864 %endif
757    
758     %if !%simple
759     # confirm SONAME; if something else than libvdpau_nvidia.so or libvdpau_nvidia.so.1, adapt .spec as needed:
760     [ "$(objdump -p %{buildroot}%{nvidia_libdir}/vdpau/libvdpau_nvidia.so.%{version} | grep SONAME | gawk '{ print $2 }')" = "libvdpau_nvidia.so.1" ]
761    
762     rm -f %{buildroot}%{nvidia_libdir}/vdpau/libvdpau_nvidia.so.1
763     rm -f %{buildroot}%{nvidia_libdir32}/vdpau/libvdpau_nvidia.so.1
764     %endif
765    
766     # vdpau alternative symlink
767     install -d -m755 %{buildroot}%{_libdir}/vdpau
768     touch %{buildroot}%{_libdir}/vdpau/libvdpau_nvidia.so.1
769     %ifarch %{biarches}
770     install -d -m755 %{buildroot}%{_prefix}/lib/vdpau
771     touch %{buildroot}%{_prefix}/lib/vdpau/libvdpau_nvidia.so.1
772     %endif
773    
774     %if !%simple
775     # self-built binaries
776 tmb 282100 install -m755 ../nvidia-settings-%{version}/src/_out/*/nvidia-settings %{buildroot}%{nvidia_bindir}
777 ahmad 56864 install -m755 ../nvidia-xconfig-%{version}/_out/*/nvidia-xconfig %{buildroot}%{nvidia_bindir}
778 anssi 412170 install -m755 ../nvidia-persistenced-%{version}/_out/*/nvidia-persistenced %{buildroot}%{nvidia_bindir}
779     install -m4755 ../nvidia-modprobe-%{version}/_out/*/nvidia-modprobe %{buildroot}%{nvidia_bindir}
780 anssi 812377 # nvidia-settings dlopens libnvidia-gtk*.so.VERSION
781     for file in ../nvidia-settings-%{version}/src/_out/*/libnvidia-gtk*.so; do
782     install -m755 ${file} %{buildroot}%{nvidia_libdir}/$(basename "$file").%{version}
783     done
784 ahmad 56864 %endif
785     # binary alternatives
786     install -d -m755 %{buildroot}%{_bindir}
787 anssi 152893 touch %{buildroot}%{_bindir}/nvidia-debugdump
788 ahmad 56864 touch %{buildroot}%{_bindir}/nvidia-settings
789     touch %{buildroot}%{_bindir}/nvidia-smi
790     touch %{buildroot}%{_bindir}/nvidia-xconfig
791     touch %{buildroot}%{_bindir}/nvidia-bug-report.sh
792 anssi 412170 touch %{buildroot}%{_bindir}/nvidia-modprobe
793     touch %{buildroot}%{_bindir}/nvidia-persistenced
794     touch %{buildroot}%{_bindir}/nvidia-cuda-mps-control
795     touch %{buildroot}%{_bindir}/nvidia-cuda-mps-server
796 ahmad 56864 # rpmlint:
797     chmod 0755 %{buildroot}%{_bindir}/*
798    
799 anssi 812247 # datadir alternative
800     mkdir -p %{buildroot}%{_datadir}/nvidia
801    
802 ahmad 56864 %if !%simple
803 anssi 812247 # See posttrans script
804 tmb 837782 #for file in %{buildroot}%{nvidia_datadir}/pci.ids %{buildroot}%{nvidia_datadir}/monitoring.conf; do
805     # ln -T "$file" "%{buildroot}%{_datadir}/%{drivername}/$(basename "$file").mga"
806     #done
807 anssi 812247
808 ahmad 56864 # install man pages
809 anssi 412170 install -m644 ../nvidia-settings-%{version}/doc/_out/*/nvidia-settings.1 %{buildroot}%{_mandir}/man1
810     install -m644 ../nvidia-xconfig-%{version}/_out/*/nvidia-xconfig.1 %{buildroot}%{_mandir}/man1
811     install -m644 ../nvidia-modprobe-%{version}/_out/*/nvidia-modprobe.1 %{buildroot}%{_mandir}/man1
812     install -m644 ../nvidia-persistenced-%{version}/_out/*/nvidia-persistenced.1 %{buildroot}%{_mandir}/man1
813 ahmad 56864 %endif
814     # bug #41638 - whatis entries of nvidia man pages appear wrong
815     gunzip %{buildroot}%{_mandir}/man1/*.gz
816     sed -r -i '/^nvidia\\-[a-z]+ \\- NVIDIA/s,^nvidia\\-,nvidia-,' %{buildroot}%{_mandir}/man1/*.1
817     cd %{buildroot}%{_mandir}/man1
818     rename nvidia alt-%{drivername} *
819     cd -
820     touch %{buildroot}%{_mandir}/man1/nvidia-xconfig.1%{_extension}
821     touch %{buildroot}%{_mandir}/man1/nvidia-settings.1%{_extension}
822 anssi 412170 touch %{buildroot}%{_mandir}/man1/nvidia-modprobe.1%{_extension}
823     touch %{buildroot}%{_mandir}/man1/nvidia-persistenced.1%{_extension}
824 ahmad 56864 touch %{buildroot}%{_mandir}/man1/nvidia-smi.1%{_extension}
825 anssi 412170 touch %{buildroot}%{_mandir}/man1/nvidia-cuda-mps-control.1%{_extension}
826 ahmad 56864
827     # cuda nvidia.icd
828     install -d -m755 %{buildroot}%{_sysconfdir}/OpenCL/vendors
829     touch %{buildroot}%{_sysconfdir}/OpenCL/vendors/nvidia.icd
830    
831     # ld.so.conf
832     install -d -m755 %{buildroot}%{_sysconfdir}/%{drivername}
833     echo "%{nvidia_libdir}" > %{buildroot}%{_sysconfdir}/%{drivername}/ld.so.conf
834     %ifarch %{biarches}
835     echo "%{nvidia_libdir32}" >> %{buildroot}%{_sysconfdir}/%{drivername}/ld.so.conf
836     %endif
837     install -d -m755 %{buildroot}%{_sysconfdir}/ld.so.conf.d
838     touch %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL.conf
839    
840     # modprobe.conf
841     install -d -m755 %{buildroot}%{_sysconfdir}/modprobe.d
842 ahmad 66356 touch %{buildroot}%{_sysconfdir}/modprobe.d/display-driver.conf
843 anssi 87268 echo "install nvidia /sbin/modprobe %{modulename} \$CMDLINE_OPTS" > %{buildroot}%{_sysconfdir}/%{drivername}/modprobe.conf
844 ahmad 56864
845     # xinit script
846     install -d -m755 %{buildroot}%{_sysconfdir}/%{drivername}
847     cat > %{buildroot}%{_sysconfdir}/%{drivername}/nvidia-settings.xinit <<EOF
848     # to be sourced
849     #
850     # Do not modify this file; the changes will be overwritten.
851     # If you want to disable automatic configuration loading, create
852     # /etc/sysconfig/nvidia-settings with this line: LOAD_NVIDIA_SETTINGS="no"
853     #
854     LOAD_NVIDIA_SETTINGS="yes"
855     [ -f %{_sysconfdir}/sysconfig/nvidia-settings ] && . %{_sysconfdir}/sysconfig/nvidia-settings
856     [ "\$LOAD_NVIDIA_SETTINGS" = "yes" ] && %{_bindir}/nvidia-settings --load-config-only
857     EOF
858     chmod 0755 %{buildroot}%{_sysconfdir}/%{drivername}/nvidia-settings.xinit
859     install -d -m755 %{buildroot}%{_sysconfdir}/X11/xinit.d
860     touch %{buildroot}%{_sysconfdir}/X11/xinit.d/nvidia-settings.xinit
861    
862     # install ldetect-lst pcitable files for backports
863     # local version of merge2pcitable.pl:read_nvidia_readme:
864 anssi 412170 section="nothingyet"
865 ahmad 56864 set +x
866     [ -e README.txt ] || cp -a usr/share/doc/README.txt .
867     cat README.txt | while read line; do
868 anssi 412170 if [ "$section" = "nothingyet" ] || [ "$section" = "midspace" ]; then
869     if echo "$line" | grep -Pq "^\s*NVIDIA GPU product\s+Device PCI ID"; then
870     section="data"
871     elif [ "$section" = "midspace" ] && echo "$line" | grep -Pq "legacy"; then
872     break
873     fi
874 ahmad 56864 continue
875     fi
876 anssi 412170
877     if [ "$section" = "data" ] && echo "$line" | grep -Pq "^\s*$"; then
878     section="midspace"
879 ahmad 56864 continue
880     fi
881 anssi 412170
882 ahmad 56864 echo "$line" | grep -Pq "^\s*-+[\s-]+$" && continue
883 anssi 812247 id=$(echo "$line" | sed -nre 's,^\s*.+?\s\s+(0x)?([0-9a-fA-F]{4}).*$,\2,p' | tr '[:upper:]' '[:lower:]')
884     #id2=$(echo "$line" | sed -nre 's,^\s*.+?\s\s+0x(....)\s0x(....).*$,\2,p' | tr '[:upper:]' '[:lower:]')
885 anssi 412170 subsysid=
886     # not useful as of 2013-05 -Anssi
887     #[ -n "$id2" ] && subsysid=" 0x10de 0x$id2"
888     echo "0x10de 0x$id$subsysid \"Card:%{ldetect_cards_name}\""
889 ahmad 56864 done | sort -u > pcitable.nvidia.lst
890     set -x
891     [ $(wc -l pcitable.nvidia.lst | cut -f1 -d" ") -gt 200 ]
892     %if "%{ldetect_cards_name}" != ""
893     install -d -m755 %{buildroot}%{_datadir}/ldetect-lst/pcitable.d
894     gzip -c pcitable.nvidia.lst > %{buildroot}%{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz
895     %endif
896    
897 anssi 812247 export EXCLUDE_FROM_STRIP="$(find %{buildroot} -type f \! -name nvidia-settings \! -name nvidia-xconfig \! -name nvidia-modprobe \! -name nvidia-persistenced \! -name 'libnvidia-gtk*.so')"
898 ahmad 56864
899 anssi 812247 %pretrans -n %{driverpkgname}
900     # Migrate old non-alternativeszificated datadir
901     if ! [ -L %{_datadir}/nvidia ] && [ -d %{_datadir}/nvidia ]; then
902     if ! [ -e %{nvidia_datadir} ]; then
903     mv -T %{_datadir}/nvidia %{nvidia_datadir}
904     else
905     # should not really be encountered
906     mv -T %{_datadir}/nvidia %{_datadir}/nvidia.${RANDOM}
907     fi
908     fi
909    
910 ahmad 56864 %post -n %{driverpkgname}
911     # XFdrake used to generate an nvidia.conf file
912     [ -L %{_sysconfdir}/modprobe.d/nvidia.conf ] || rm -f %{_sysconfdir}/modprobe.d/nvidia.conf
913    
914     current_glconf="$(readlink -e %{_sysconfdir}/ld.so.conf.d/GL.conf)"
915    
916     # owned by libvdpau1, created in case libvdpau1 is installed only just after
917     # this package
918     mkdir -p %{_libdir}/vdpau
919    
920     %{_sbindir}/update-alternatives \
921     --install %{_sysconfdir}/ld.so.conf.d/GL.conf gl_conf %{_sysconfdir}/%{drivername}/ld.so.conf %{priority} \
922     --slave %{_mandir}/man1/nvidia-settings.1%{_extension} man_nvidiasettings%{_extension} %{_mandir}/man1/alt-%{drivername}-settings.1%{_extension} \
923     --slave %{_mandir}/man1/nvidia-xconfig.1%{_extension} man_nvidiaxconfig%{_extension} %{_mandir}/man1/alt-%{drivername}-xconfig.1%{_extension} \
924     --slave %{_mandir}/man1/nvidia-smi.1%{_extension} nvidia-smi.1%{_extension} %{_mandir}/man1/alt-%{drivername}-smi.1%{_extension} \
925 anssi 412170 --slave %{_mandir}/man1/nvidia-cuda-mps-control.1%{_extension} nvidia-cuda-mps-control.1%{_extension} %{_mandir}/man1/alt-%{drivername}-cuda-mps-control.1%{_extension} \
926 ahmad 56909 --slave %{_datadir}/applications/mageia-nvidia-settings.desktop nvidia_desktop %{_datadir}/%{drivername}/mageia-nvidia-settings.desktop \
927 ahmad 56864 --slave %{_bindir}/nvidia-settings nvidia_settings %{nvidia_bindir}/nvidia-settings \
928     --slave %{_bindir}/nvidia-smi nvidia_smi %{nvidia_bindir}/nvidia-smi \
929     --slave %{_bindir}/nvidia-xconfig nvidia_xconfig %{nvidia_bindir}/nvidia-xconfig \
930 anssi 152893 --slave %{_bindir}/nvidia-debugdump nvidia-debugdump %{nvidia_bindir}/nvidia-debugdump \
931 ahmad 56864 --slave %{_bindir}/nvidia-bug-report.sh nvidia_bug_report %{nvidia_bindir}/nvidia-bug-report.sh \
932 anssi 412170 --slave %{_bindir}/nvidia-cuda-mps-control nvidia-cuda-mps-control %{nvidia_bindir}/nvidia-cuda-mps-control \
933     --slave %{_bindir}/nvidia-cuda-mps-server nvidia-cuda-mps-server %{nvidia_bindir}/nvidia-cuda-mps-server \
934     --slave %{_bindir}/nvidia-modprobe nvidia-modprobe %{nvidia_bindir}/nvidia-modprobe \
935     --slave %{_bindir}/nvidia-persistenced nvidia-persistenced %{nvidia_bindir}/nvidia-persistenced \
936 ahmad 56864 --slave %{_sysconfdir}/X11/xinit.d/nvidia-settings.xinit nvidia-settings.xinit %{_sysconfdir}/%{drivername}/nvidia-settings.xinit \
937     --slave %{_libdir}/vdpau/libvdpau_nvidia.so.1 %{_lib}vdpau_nvidia.so.1 %{nvidia_libdir}/vdpau/libvdpau_nvidia.so.%{version} \
938 anssi 87344 --slave %{_sysconfdir}/modprobe.d/display-driver.conf display-driver.conf %{_sysconfdir}/%{drivername}/modprobe.conf \
939 ahmad 56864 --slave %{_sysconfdir}/OpenCL/vendors/nvidia.icd nvidia.icd %{_sysconfdir}/%{drivername}/nvidia.icd \
940     %ifarch %{biarches}
941     --slave %{_prefix}/lib/vdpau/libvdpau_nvidia.so.1 libvdpau_nvidia.so.1 %{nvidia_libdir32}/vdpau/libvdpau_nvidia.so.%{version} \
942     %endif
943     --slave %{xorg_extra_modules} xorg_extra_modules %{nvidia_extensionsdir} \
944 anssi 812247 --slave %{_datadir}/nvidia nvidia_datadir %{nvidia_datadir} \
945 ahmad 56864
946     if [ "${current_glconf}" = "%{_sysconfdir}/nvidia97xx/ld.so.conf" ]; then
947     # Adapt for the renaming of the driver. X.org config still has the old ModulePaths
948     # but they do not matter as we are using alternatives for libglx.so now.
949     %{_sbindir}/update-alternatives --set gl_conf %{_sysconfdir}/%{drivername}/ld.so.conf
950     fi
951     # explicit /sbin/ldconfig due to alternatives
952     /sbin/ldconfig -X
953    
954     %if "%{ldetect_cards_name}" != ""
955     [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
956     %endif
957    
958 anssi 812247 %posttrans -n %{driverpkgname}
959     # When upgrading 340 => 346, the alternativeszification of /usr/share/nvidia may
960     # cause uninstallation of 340 (during upgrade) to remove these files through
961     # the /usr/share/nvidia symlink. Restore them.
962     for file in %{nvidia_datadir}/pci.ids %{nvidia_datadir}/monitoring.conf; do
963     backupfile="%{_datadir}/%{drivername}/$(basename "$file").mga"
964     if ! [ -e $file ] && [ -e "$backupfile" ]; then
965     ln -T "$backupfile" "$file"
966     fi
967     done
968    
969 ahmad 56864 %postun -n %{driverpkgname}
970     if [ ! -f %{_sysconfdir}/%{drivername}/ld.so.conf ]; then
971     %{_sbindir}/update-alternatives --remove gl_conf %{_sysconfdir}/%{drivername}/ld.so.conf
972     fi
973     # explicit /sbin/ldconfig due to alternatives
974     /sbin/ldconfig -X
975    
976     %if "%{ldetect_cards_name}" != ""
977     [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
978     %endif
979    
980 anssi 174611 %post -n %{drivername}-cuda-opencl
981     # explicit /sbin/ldconfig due to a non-standard library directory
982     /sbin/ldconfig -X
983 ahmad 56864
984     %post -n dkms-%{drivername}
985     /usr/sbin/dkms --rpm_safe_upgrade add -m %{drivername} -v %{version}-%{release} &&
986     /usr/sbin/dkms --rpm_safe_upgrade build -m %{drivername} -v %{version}-%{release} &&
987     /usr/sbin/dkms --rpm_safe_upgrade install -m %{drivername} -v %{version}-%{release} --force
988    
989     # rmmod any old driver if present and not in use (e.g. by X)
990     rmmod nvidia > /dev/null 2>&1 || true
991    
992     %preun -n dkms-%{drivername}
993     /usr/sbin/dkms --rpm_safe_upgrade remove -m %{drivername} -v %{version}-%{release} --all
994    
995     # rmmod any old driver if present and not in use (e.g. by X)
996     rmmod nvidia > /dev/null 2>&1 || true
997    
998     %clean
999     rm -rf %{buildroot}
1000    
1001     %files -n %{driverpkgname} -f %{pkgname}/nvidia.files
1002     %defattr(-,root,root)
1003     # other documentation files are listed in nvidia.files
1004     %doc README.install.urpmi README.manual-setup
1005    
1006     %if "%{ldetect_cards_name}" != ""
1007     %{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz
1008     %endif
1009    
1010 anssi 320407 # ld.so.conf, modprobe.conf, xinit
1011 ahmad 56864 %ghost %{_sysconfdir}/ld.so.conf.d/GL.conf
1012     %ghost %{_sysconfdir}/X11/xinit.d/nvidia-settings.xinit
1013 ahmad 66356 %ghost %{_sysconfdir}/modprobe.d/display-driver.conf
1014 ahmad 56864 %dir %{_sysconfdir}/%{drivername}
1015     %{_sysconfdir}/%{drivername}/modprobe.conf
1016     %{_sysconfdir}/%{drivername}/ld.so.conf
1017     %{_sysconfdir}/%{drivername}/nvidia-settings.xinit
1018 anssi 812247 %ghost %{_datadir}/nvidia
1019 ahmad 56864 %if !%simple
1020     %{_sysconfdir}/%{drivername}/nvidia.icd
1021 anssi 812247 %dir %{nvidia_datadir}
1022     %{nvidia_datadir}/nvidia-application-profiles-%{version}-rc
1023     %{nvidia_datadir}/nvidia-application-profiles-%{version}-key-documentation
1024 tmb 837782 #{nvidia_datadir}/monitoring.conf
1025     #{nvidia_datadir}/pci.ids
1026 anssi 812247 # backups, see posttrans
1027 tmb 837782 #{_datadir}/%{drivername}/monitoring.conf.mga
1028     #{_datadir}/%{drivername}/pci.ids.mga
1029 ahmad 56864 %endif
1030    
1031     %dir %{_sysconfdir}/OpenCL
1032     %dir %{_sysconfdir}/OpenCL/vendors
1033     %ghost %{_sysconfdir}/OpenCL/vendors/nvidia.icd
1034    
1035 anssi 152893 %ghost %{_bindir}/nvidia-debugdump
1036 ahmad 56864 %ghost %{_bindir}/nvidia-settings
1037     %ghost %{_bindir}/nvidia-smi
1038     %ghost %{_bindir}/nvidia-xconfig
1039 anssi 412170 %ghost %{_bindir}/nvidia-modprobe
1040     %ghost %{_bindir}/nvidia-persistenced
1041 ahmad 56864 %ghost %{_bindir}/nvidia-bug-report.sh
1042 anssi 412170 %ghost %{_bindir}/nvidia-cuda-mps-control
1043     %ghost %{_bindir}/nvidia-cuda-mps-server
1044 ahmad 56864 %if !%simple
1045     %dir %{nvidia_bindir}
1046 anssi 152893 %{nvidia_bindir}/nvidia-debugdump
1047 ahmad 56864 %{nvidia_bindir}/nvidia-settings
1048     %{nvidia_bindir}/nvidia-smi
1049     %{nvidia_bindir}/nvidia-xconfig
1050 anssi 412170 %{nvidia_bindir}/nvidia-modprobe
1051     %{nvidia_bindir}/nvidia-persistenced
1052 ahmad 56864 %{nvidia_bindir}/nvidia-bug-report.sh
1053 anssi 412170 %{nvidia_bindir}/nvidia-cuda-mps-control
1054     %{nvidia_bindir}/nvidia-cuda-mps-server
1055 ahmad 56864 %endif
1056    
1057     %ghost %{_mandir}/man1/nvidia-xconfig.1%{_extension}
1058     %ghost %{_mandir}/man1/nvidia-settings.1%{_extension}
1059 anssi 412170 %ghost %{_mandir}/man1/nvidia-modprobe.1%{_extension}
1060     %ghost %{_mandir}/man1/nvidia-persistenced.1%{_extension}
1061 ahmad 56864 %ghost %{_mandir}/man1/nvidia-smi.1%{_extension}
1062 anssi 412170 %ghost %{_mandir}/man1/nvidia-cuda-mps-control.1%{_extension}
1063 ahmad 56864 %if !%simple
1064     %{_mandir}/man1/alt-%{drivername}-xconfig.1*
1065     %{_mandir}/man1/alt-%{drivername}-settings.1*
1066 anssi 412170 %{_mandir}/man1/alt-%{drivername}-modprobe.1*
1067     %{_mandir}/man1/alt-%{drivername}-persistenced.1*
1068 ahmad 56864 %{_mandir}/man1/alt-%{drivername}-smi.1*
1069 anssi 412170 %{_mandir}/man1/alt-%{drivername}-cuda-mps-control.1*
1070 ahmad 56864 %else
1071     %{_mandir}/man1/alt-%{drivername}-*
1072     %endif
1073    
1074 ahmad 56909 %ghost %{_datadir}/applications/mageia-nvidia-settings.desktop
1075 ahmad 56864 %dir %{_datadir}/%{drivername}
1076 ahmad 56909 %{_datadir}/%{drivername}/mageia-nvidia-settings.desktop
1077 ahmad 56864
1078     %if !%simple
1079     %{_iconsdir}/hicolor/16x16/apps/%{drivername}-settings.png
1080     %{_iconsdir}/hicolor/32x32/apps/%{drivername}-settings.png
1081     %endif
1082     %{_iconsdir}/hicolor/48x48/apps/%{drivername}-settings.png
1083    
1084     %if !%simple
1085     %dir %{nvidia_libdir}
1086     %dir %{nvidia_libdir}/tls
1087     %dir %{nvidia_libdir}/vdpau
1088     %{nvidia_libdir}/libGL.so.%{version}
1089 tmb 629397 %{nvidia_libdir}/libnvidia-cfg.so.%{version}
1090 ahmad 56864 %{nvidia_libdir}/libnvidia-glcore.so.%{version}
1091     %{nvidia_libdir}/libnvidia-tls.so.%{version}
1092 tmb 629397 %{nvidia_libdir}/libEGL.so.1
1093     %{nvidia_libdir}/libEGL.so.%{version}
1094 ahmad 56864 %{nvidia_libdir}/libGL.so.1
1095 tmb 629397 %{nvidia_libdir}/libGLESv1_CM.so.1
1096     %{nvidia_libdir}/libGLESv1_CM.so.%{version}
1097     %{nvidia_libdir}/libGLESv2.so.2
1098     %{nvidia_libdir}/libGLESv2.so.%{version}
1099 ahmad 56864 %{nvidia_libdir}/libnvidia-cfg.so.1
1100 tmb 629397 %{nvidia_libdir}/libnvidia-eglcore.so.%{version}
1101 tmb 550648 %{nvidia_libdir}/libnvidia-fbc.so.1
1102     %{nvidia_libdir}/libnvidia-fbc.so.%{version}
1103 tmb 629397 %{nvidia_libdir}/libnvidia-glsi.so.%{version}
1104 anssi 812377 %{nvidia_libdir}/libnvidia-gtk2.so.%{version}
1105     %{nvidia_libdir}/libnvidia-gtk3.so.%{version}
1106 tmb 469114 %{nvidia_libdir}/libnvidia-ifr.so.1
1107     %{nvidia_libdir}/libnvidia-ifr.so.%{version}
1108 tmb 274692 %{nvidia_libdir}/libnvidia-ml.so.1
1109     %{nvidia_libdir}/libnvidia-ml.so.%{version}
1110 ahmad 56864 %{nvidia_libdir}/libvdpau_nvidia.so
1111     %{nvidia_libdir}/tls/libnvidia-tls.so.%{version}
1112 tmb 629397 %{nvidia_libdir}/vdpau/libvdpau_nvidia.so.%{version}
1113     %ifarch %{biarches}
1114     %dir %{nvidia_libdir32}
1115     %dir %{nvidia_libdir32}/tls
1116     %dir %{nvidia_libdir32}/vdpau
1117 tmb 550648 %{nvidia_libdir32}/libEGL.so.1
1118     %{nvidia_libdir32}/libEGL.so.%{version}
1119 tmb 629397 %{nvidia_libdir32}/libGL.so.1
1120     %{nvidia_libdir32}/libGL.so.%{version}
1121 tmb 550648 %{nvidia_libdir32}/libGLESv1_CM.so.1
1122     %{nvidia_libdir32}/libGLESv1_CM.so.%{version}
1123     %{nvidia_libdir32}/libGLESv2.so.2
1124     %{nvidia_libdir32}/libGLESv2.so.%{version}
1125     %{nvidia_libdir32}/libnvidia-eglcore.so.%{version}
1126 tmb 618433 %{nvidia_libdir32}/libnvidia-fbc.so.1
1127     %{nvidia_libdir32}/libnvidia-fbc.so.%{version}
1128 ahmad 56864 %{nvidia_libdir32}/libnvidia-glcore.so.%{version}
1129 tmb 629397 %{nvidia_libdir32}/libnvidia-glsi.so.%{version}
1130 tmb 469114 %{nvidia_libdir32}/libnvidia-ifr.so.1
1131     %{nvidia_libdir32}/libnvidia-ifr.so.%{version}
1132 tmb 274692 %{nvidia_libdir32}/libnvidia-ml.so.1
1133     %{nvidia_libdir32}/libnvidia-ml.so.%{version}
1134 ahmad 56864 %{nvidia_libdir32}/libnvidia-tls.so.%{version}
1135     %{nvidia_libdir32}/libvdpau_nvidia.so
1136 tmb 629397 %{nvidia_libdir32}/tls/libnvidia-tls.so.%{version}
1137 ahmad 56864 %{nvidia_libdir32}/vdpau/libvdpau_nvidia.so.%{version}
1138     %endif
1139     # %simple
1140     %endif
1141    
1142     %ghost %{_libdir}/vdpau/libvdpau_nvidia.so.1
1143     %ifarch %{biarches}
1144     # avoid unowned directory
1145     %dir %{_prefix}/lib/vdpau
1146     %ghost %{_prefix}/lib/vdpau/libvdpau_nvidia.so.1
1147     %endif
1148    
1149 ahmad 56909 %if !%simple
1150 ahmad 56864 %dir %{nvidia_modulesdir}
1151     %{nvidia_modulesdir}/libnvidia-wfb.so.1
1152     %endif
1153    
1154     %if !%simple
1155     %{nvidia_modulesdir}/libnvidia-wfb.so.%{version}
1156     %endif
1157    
1158     %if !%simple
1159     %{nvidia_extensionsdir}/libglx.so.%{version}
1160     %{nvidia_extensionsdir}/libglx.so
1161     %endif
1162    
1163     %if !%simple
1164     %{nvidia_driversdir}/nvidia_drv.so
1165     %endif
1166    
1167 tmb 904031 %if %simple
1168 ahmad 56864 %files -n %{drivername}-devel -f %pkgname/nvidia-devel.files
1169 tmb 904031 %else
1170     %files -n %{drivername}-devel
1171 ahmad 56864 %defattr(-,root,root)
1172     %{_includedir}/%{drivername}
1173 tmb 629397 %{nvidia_libdir}/libEGL.so
1174 ahmad 56864 %{nvidia_libdir}/libGL.so
1175 tmb 629397 %{nvidia_libdir}/libGLESv1_CM.so
1176     %{nvidia_libdir}/libGLESv2.so
1177     %{nvidia_libdir}/libOpenCL.so
1178 ahmad 56864 %{nvidia_libdir}/libcuda.so
1179     %{nvidia_libdir}/libnvcuvid.so
1180     %{nvidia_libdir}/libnvidia-cfg.so
1181 tmb 629397 %{nvidia_libdir}/libnvidia-encode.so
1182 tmb 550648 %{nvidia_libdir}/libnvidia-fbc.so
1183 tmb 469114 %{nvidia_libdir}/libnvidia-ifr.so
1184 ahmad 56909 %{nvidia_libdir}/libnvidia-ml.so
1185 tmb 629397 %ifarch %{biarches}
1186 tmb 551069 %{nvidia_libdir32}/libEGL.so
1187 tmb 629397 %{nvidia_libdir32}/libGL.so
1188 tmb 551069 %{nvidia_libdir32}/libGLESv1_CM.so
1189     %{nvidia_libdir32}/libGLESv2.so
1190 tmb 629397 %{nvidia_libdir32}/libOpenCL.so
1191 ahmad 56864 %{nvidia_libdir32}/libcuda.so
1192 anssi 320407 %{nvidia_libdir32}/libnvcuvid.so
1193 tmb 629397 %{nvidia_libdir32}/libnvidia-encode.so
1194     %{nvidia_libdir32}/libnvidia-fbc.so
1195 tmb 469114 %{nvidia_libdir32}/libnvidia-ifr.so
1196 tmb 629397 %{nvidia_libdir32}/libnvidia-ml.so
1197 ahmad 56864 %endif
1198     %endif
1199    
1200     %files -n dkms-%{drivername}
1201     %defattr(-,root,root)
1202     %doc %{pkgname}/LICENSE
1203     %{_usrsrc}/%{drivername}-%{version}-%{release}
1204    
1205     %files -n %{drivername}-doc-html -f %pkgname/nvidia-html.files
1206     %defattr(-,root,root)
1207    
1208 tmb 904031 %if %simple
1209 ahmad 56864 %files -n %{drivername}-cuda-opencl -f %pkgname/nvidia-cuda.files
1210 tmb 904031 %else
1211     %files -n %{drivername}-cuda-opencl
1212 ahmad 56864 %defattr(-,root,root)
1213 anssi 412170 # Do not preferably add any alternativeszificated binaries here,
1214     # they cause broken symlinks.
1215 ahmad 56864 %{nvidia_libdir}/libOpenCL.so.1.0.0
1216     %{nvidia_libdir}/libOpenCL.so.1.0
1217     %{nvidia_libdir}/libOpenCL.so.1
1218     %{nvidia_libdir}/libnvcuvid.so.%{version}
1219     %{nvidia_libdir}/libnvcuvid.so.1
1220     %{nvidia_libdir}/libnvidia-compiler.so.%{version}
1221 anssi 320407 %{nvidia_libdir}/libnvidia-encode.so.1
1222     %{nvidia_libdir}/libnvidia-encode.so.%{version}
1223 tmb 282100 %{nvidia_libdir}/libnvidia-opencl.so.1
1224     %{nvidia_libdir}/libnvidia-opencl.so.%{version}
1225 ahmad 56864 %{nvidia_libdir}/libcuda.so.%{version}
1226     %{nvidia_libdir}/libcuda.so.1
1227     %ifarch %{biarches}
1228     %{nvidia_libdir32}/libOpenCL.so.1.0.0
1229     %{nvidia_libdir32}/libOpenCL.so.1.0
1230     %{nvidia_libdir32}/libOpenCL.so.1
1231 anssi 320407 %{nvidia_libdir32}/libnvcuvid.so.%{version}
1232     %{nvidia_libdir32}/libnvcuvid.so.1
1233 ahmad 56864 %{nvidia_libdir32}/libnvidia-compiler.so.%{version}
1234 anssi 320407 %{nvidia_libdir32}/libnvidia-encode.so.1
1235     %{nvidia_libdir32}/libnvidia-encode.so.%{version}
1236     %{nvidia_libdir32}/libnvidia-opencl.so.1
1237     %{nvidia_libdir32}/libnvidia-opencl.so.%{version}
1238 ahmad 56864 %{nvidia_libdir32}/libcuda.so.%{version}
1239     %{nvidia_libdir32}/libcuda.so.1
1240     %endif
1241     %endif

  ViewVC Help
Powered by ViewVC 1.1.30