/[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 1000686 - (hide annotations) (download)
Tue Apr 12 01:30:10 2016 UTC (8 years ago) by tmb
Original Path: cauldron/nvidia-current/current/SPECS/nvidia-current.spec
File size: 44371 byte(s)
split out uvm fix from P10 as its 64bit only (P11)
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 1000684 %define version 361.42
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 1000684 %global common__requires_exclude ^libGL\\.so|^libGLcore\\.so|^libGLdispatch\\.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 1000684 # (tmb) fix build with kernel 4.6
128     Patch10: NVIDIA-Linux-x86_64-361.42-kernel-4.6-buildfix.patch
129 tmb 1000686 Patch11: NVIDIA-Linux-x86_64-361.42-uvm-kernel-4.6-buildfix.patch
130 tmb 804013
131 ahmad 56864 License: Freeware
132     BuildRoot: %{_tmppath}/%{name}-buildroot
133     URL: http://www.nvidia.com/object/unix.html
134     Group: System/Kernel and hardware
135     ExclusiveArch: %{ix86} x86_64
136     %if !%simple
137     BuildRequires: ImageMagick
138     BuildRequires: gtk+2-devel
139 tmb 811410 BuildRequires: gtk+3-devel
140 ahmad 56864 BuildRequires: libxv-devel
141     BuildRequires: MesaGL-devel
142     BuildRequires: libxxf86vm-devel
143 tmb 811409 BuildRequires: vdpau-devel >= 0.9
144 tmb 866760
145 ahmad 56864 %endif
146    
147     %description
148     Source package of the current NVIDIA proprietary driver. Binary
149 anssi 812247 packages are named %{driverpkgname}.
150 ahmad 56864
151     %package -n %{driverpkgname}
152     Summary: NVIDIA proprietary X.org driver and libraries for %cards
153     Group: System/Kernel and hardware
154 luigiwalser 928604 Requires(post): update-alternatives
155     Requires(postun): update-alternatives
156 ahmad 56864 Requires: x11-server-common
157 tv 676075 Recommends: %{drivername}-doc-html = %{version}
158 ahmad 56864 # Proper support for versioned kmod() was added in 2008.1:
159 tmb 723397 Requires: kmod(%{modulename}.ko) = %{version}
160 ahmad 56864 # At least mplayer dlopens libvdpau.so.1, so the software will not pull in
161     # the vdpau library package. We ensure its installation here.
162     Requires: %{_lib}vdpau1
163 anssi 219541 %if !%simple && %mgaversion >= 2
164     Requires: xserver-abi(videodrv) < %(echo $((%{videodrv_abi}+1)))
165 ahmad 66356 %endif
166 tmb 274692 Conflicts: nvidia-current-cuda-opencl <= 295.59-1
167 ahmad 56864 # Obsoletes for naming changes:
168     Obsoletes: nvidia < 1:%{version}-%{release}
169     Provides: nvidia = 1:%{version}-%{release}
170     Obsoletes: nvidia97xx < %{version}-%{release}
171     Provides: nvidia97xx = %{version}-%{release}
172    
173     %description -n %{driverpkgname}
174     NVIDIA proprietary X.org graphics driver, related libraries and
175     configuration tools for %cards,
176     including the associated Quadro cards.
177    
178     NOTE: You should use XFdrake to configure your NVIDIA card. The
179     correct packages will be automatically installed and configured.
180    
181     If you do not want to use XFdrake, see README.manual-setup.
182    
183     This NVIDIA driver should be used with %cards,
184     including the associated Quadro cards.
185    
186     %package -n dkms-%{drivername}
187     Summary: NVIDIA kernel module for %cards
188     Group: System/Kernel and hardware
189     Requires: dkms
190     Requires(post): dkms
191     Requires(preun): dkms
192 tmb 723397 Provides: kmod(%{modulename}.ko) = %{version}
193 ahmad 56864 Obsoletes: dkms-nvidia < 1:%{version}-%{release}
194     Provides: dkms-nvidia = 1:%{version}-%{release}
195     Obsoletes: dkms-nvidia97xx < %{version}-%{release}
196     Provides: dkms-nvidia97xx = %{version}-%{release}
197    
198     %description -n dkms-%{drivername}
199     NVIDIA kernel module for %cards. This
200     is to be used with the %{driverpkgname} package.
201    
202     %package -n %{drivername}-devel
203 anssi 320407 Summary: NVIDIA OpenGL/CUDA development liraries and headers
204 ahmad 56864 Group: Development/C
205     Requires: %{driverpkgname} = %{version}-%{release}
206     Requires: %{drivername}-cuda-opencl = %{version}-%{release}
207     Obsoletes: nvidia-devel < 1:%{version}-%{release}
208     Provides: nvidia-devel = 1:%{version}-%{release}
209     Obsoletes: nvidia97xx-devel < %{version}-%{release}
210     Provides: nvidia97xx-devel = %{version}-%{release}
211     Requires: %{_lib}vdpau-devel
212    
213     %description -n %{drivername}-devel
214 anssi 320407 NVIDIA OpenGL/CUDA headers for %cards. This package
215     is not required for normal use.
216 ahmad 56864
217     %package -n %{drivername}-cuda-opencl
218     Summary: CUDA and OpenCL libraries for NVIDIA proprietary driver
219     Group: System/Kernel and hardware
220     Provides: %{drivername}-cuda = %{version}-%{release}
221 tmb 723397 Requires: kmod(%{modulename}.ko) = %{version}
222 ahmad 56864 Conflicts: nvidia < 1:195.36.15-4
223 tmb 274692 Conflicts: x11-driver-video-nvidia-current <= 295.59-1
224 ahmad 56864
225     %description -n %{drivername}-cuda-opencl
226     Cuda and OpenCL libraries for NVIDIA proprietary driver. This package is not
227     required for normal use, it provides libraries to use NVIDIA cards for High
228     Performance Computing (HPC).
229    
230     # HTML doc splitted off because of size, for live cds:
231     %package -n %{drivername}-doc-html
232     Summary: NVIDIA html documentation (%{drivername})
233     Group: System/Kernel and hardware
234     Requires: %{driverpkgname} = %{version}-%{release}
235    
236     %description -n %{drivername}-doc-html
237     HTML version of the README.txt file provided in package
238     %{driverpkgname}.
239    
240     %prep
241     # No patches applied when %simple is set
242     %if %simple
243     %setup -q -c -T
244     %else
245 anssi 412170 %setup -q -c -T -a 2 -a 3 -a 4 -a 5
246 ahmad 56864 cd nvidia-settings-%{version}
247     %patch3 -p1
248     cd ..
249     %endif
250     sh %{nsource} --extract-only
251    
252 tmb 1000684 %if !%simple
253     cd %{pkgname}
254     %patch10 -p1
255 tmb 1000686 %ifarch x86_64
256     %patch11 -p1
257     ¤endif
258 tmb 1000684 cd ..
259     %endif
260 ahmad 56864
261     rm -rf %{pkgname}/usr/src/nv/precompiled
262    
263 anssi 412170 %if %simple
264     # for old releases
265     mkdir -p %{pkgname}/kernel
266     %endif
267    
268 tmb 282366 # (tmb) nuke nVidia provided dkms.conf as we need our own
269 tmb 550648 rm -f %{pkgname}/kernel/dkms.conf
270 tmb 282366
271     # install our own dkms.conf
272     cat > %{pkgname}/kernel/dkms.conf <<EOF
273     PACKAGE_NAME="%{drivername}"
274     PACKAGE_VERSION="%{version}-%{release}"
275     BUILT_MODULE_NAME[0]="nvidia"
276 tmb 555885 DEST_MODULE_LOCATION[0]="/kernel/drivers/char/drm"
277 tmb 282366 DEST_MODULE_NAME[0]="%{modulename}"
278 tmb 1000684 BUILT_MODULE_NAME[1]="nvidia-modeset"
279 tmb 812400 DEST_MODULE_LOCATION[1]="/kernel/drivers/char/drm"
280 tmb 812394 %ifarch x86_64
281 tmb 1000684 BUILT_MODULE_NAME[2]="nvidia-uvm"
282     DEST_MODULE_LOCATION[2]="/kernel/drivers/char/drm"
283 tmb 812394 %endif
284 tmb 1000684 MAKE[0]="'make' SYSSRC=\${kernel_source_dir} modules"
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 tmb 1000684 if [ "$param" = "libtype" ]; then
405     case "$libtype" in
406     NON_GLVND);;
407     GLVND);;
408     *) error_fatal "unknown libtype $libtype"
409     esac
410     fi
411 ahmad 56864 done
412     }
413    
414     add_to_list() {
415     %if !%simple
416     # on distro builds, only use .manifest for %doc files
417     [ "${2#%doc}" = "${2}" ] && return
418     %endif
419     local list="$1.files"
420     local entry="$2"
421     echo $entry >> $list
422     }
423    
424     install_symlink() {
425     local pkg="$1"
426     local dir="$2"
427     mkdir -p %{buildroot}$dir
428     ln -s $dest %{buildroot}$dir/$file
429     add_to_list $pkg $dir/$file
430     }
431    
432     install_lib_symlink() {
433     local pkg="$1"
434     local dir="$2"
435     case "$file" in
436     libvdpau_*.so)
437     # vdpau drivers => not put into -devel
438     ;;
439     *.so)
440     pkg=nvidia-devel;;
441     esac
442     install_symlink $pkg $dir
443     }
444    
445     install_file_only() {
446     local pkg="$1"
447     local dir="$2"
448     mkdir -p %{buildroot}$dir
449     # replace 0444 with more usual 0644
450     [ "$perms" = "0444" ] && perms="0644"
451     install -m $perms $file %{buildroot}$dir
452     }
453    
454     install_file() {
455     local pkg="$1"
456     local dir="$2"
457     install_file_only $pkg $dir
458     add_to_list $pkg $dir/$(basename $file)
459     }
460    
461 tmb 1000684 install_src_file() {
462     local pkg="$1"
463     local dir="$2"
464     local moddir=$(dirname $file)
465     local subdir=${moddir#kernel}
466     install_file_only $pkg $dir$subdir
467     add_to_list $pkg $dir$subdir/$(basename $file)
468     }
469    
470 ahmad 56864 get_module_dir() {
471     local subdir="$1"
472     case "$subdir" in
473     extensions*) echo %{nvidia_extensionsdir};;
474     drivers/) echo %{nvidia_driversdir};;
475     /) echo %{nvidia_modulesdir};;
476     *) error_unhandled "unhandled module subdir $subdir"
477     echo %{nvidia_modulesdir};;
478     esac
479     }
480    
481     for file in nvidia.files nvidia-devel.files nvidia-cuda.files nvidia-dkms.files nvidia-html.files; do
482     rm -f $file
483     touch $file
484     done
485    
486     # install files according to .manifest
487     cat .manifest | tail -n +9 | while read line; do
488 anssi 607208 arch=
489     style=
490     subdir=
491     dest=
492     nvidia_libdir=
493 tmb 1000684 libtype=
494 anssi 607208
495 ahmad 56864 rest=${line}
496     file=${rest%%%% *}
497     rest=${rest#* }
498     perms=${rest%%%% *}
499     rest=${rest#* }
500     type=${rest%%%% *}
501 anssi 607208 [ "${rest#* }" = "$rest" ] && rest= || rest=${rest#* }
502 ahmad 56864
503     case "$type" in
504     CUDA_LIB)
505     parseparams arch subdir
506     install_file nvidia-cuda $nvidia_libdir/$subdir
507     ;;
508     CUDA_SYMLINK)
509     parseparams arch subdir dest
510     install_lib_symlink nvidia-cuda $nvidia_libdir/$subdir
511     ;;
512 tmb 319556 ENCODEAPI_LIB)
513 anssi 320407 parseparams arch subdir
514     install_file nvidia $nvidia_libdir/$subdir
515 tmb 319556 ;;
516     ENCODEAPI_LIB_SYMLINK)
517     parseparams arch dest
518     install_lib_symlink nvidia $nvidia_libdir
519     ;;
520 tmb 595302 EXPLICIT_PATH)
521     parseparams dest
522 anssi 812247 dest="$(echo "$dest" | sed s,%{_datadir}/nvidia,%{nvidia_datadir},)"
523     install_file nvidia $dest
524 tmb 595302 ;;
525 tmb 1000684 GLVND_LIB)
526     parseparams arch
527     install_file nvidia $nvidia_libdir
528     ;;
529     GLVND_SYMLINK)
530     parseparams arch dest
531     install_lib_symlink nvidia $nvidia_libdir
532     ;;
533     GLX_CLIENT_LIB)
534     parseparams arch libtype
535     # (tmb) skip for now
536     case $libtype in NON_GLVND);; *) continue; esac
537     install_file nvidia $nvidia_libdir
538     ;;
539     GLX_CLIENT_SYMLINK)
540     parseparams arch dest libtype
541     # (tmb) skip for now
542     case $libtype in NON_GLVND);; *) continue; esac
543     install_lib_symlink nvidia $nvidia_libdir
544     ;;
545 ahmad 56864 NVCUVID_LIB)
546 anssi 320407 parseparams arch subdir
547     install_file nvidia-cuda $nvidia_libdir/$subdir
548 ahmad 56864 ;;
549     NVCUVID_LIB_SYMLINK)
550     parseparams arch dest
551     install_lib_symlink nvidia-cuda $nvidia_libdir
552     ;;
553 tmb 469114 NVIFR_LIB)
554 anssi 607208 parseparams arch subdir
555     install_file nvidia $nvidia_libdir/$subdir
556 tmb 469114 ;;
557     NVIFR_LIB_SYMLINK)
558 anssi 607208 parseparams arch dest
559 tmb 469114 install_lib_symlink nvidia $nvidia_libdir
560     ;;
561 tmb 811426 OPENCL_LIB)
562     parseparams arch subdir
563     install_file nvidia-cuda $nvidia_libdir/$subdir
564     ;;
565     OPENCL_LIB_SYMLINK)
566     parseparams arch subdir dest
567     install_lib_symlink nvidia-cuda $nvidia_libdir/$subdir
568     ;;
569     OPENCL_WRAPPER_LIB)
570     parseparams arch subdir
571     install_file nvidia-cuda $nvidia_libdir/$subdir
572     ;;
573     OPENCL_WRAPPER_SYMLINK)
574     parseparams arch subdir dest
575     install_lib_symlink nvidia-cuda $nvidia_libdir/$subdir
576     ;;
577 ahmad 56864 OPENGL_LIB)
578     parseparams arch
579     install_file nvidia $nvidia_libdir
580     ;;
581     OPENGL_SYMLINK)
582     parseparams arch dest
583     install_lib_symlink nvidia $nvidia_libdir
584     ;;
585     TLS_LIB)
586     parseparams arch style subdir
587     install_file nvidia $nvidia_libdir/$subdir
588     ;;
589     TLS_SYMLINK)
590     parseparams arch style subdir dest
591     install_lib_symlink nvidia $nvidia_libdir/$subdir
592     ;;
593     UTILITY_LIB)
594 anssi 812247 %if !%simple
595     # skip libnvidia-gtk[23], we build those by ourself
596     echo "$file" | grep -q nvidia-gtk && continue
597     %endif
598 anssi 607208 # backward-compatibility
599     [ -n "${rest}" ] || rest="NATIVE $rest"
600     parseparams arch subdir
601     install_file nvidia $nvidia_libdir/$subdir
602 ahmad 56864 ;;
603     UTILITY_LIB_SYMLINK)
604 anssi 607208 # backward-compatibility
605     [ "${rest#* }" != "$rest" ] || rest="NATIVE $rest"
606     parseparams arch dest
607     install_lib_symlink nvidia $nvidia_libdir
608 ahmad 56864 ;;
609     VDPAU_LIB)
610     parseparams arch subdir
611     case $file in *libvdpau_nvidia.so*);; *) continue; esac
612     install_file nvidia $nvidia_libdir/$subdir
613     ;;
614     VDPAU_SYMLINK)
615     parseparams arch subdir dest
616     case $file in *libvdpau_nvidia.so*);; *) continue; esac
617     install_lib_symlink nvidia $nvidia_libdir/$subdir
618     ;;
619 tmb 550648 VDPAU_WRAPPER_LIB)
620     parseparams arch subdir
621     case $file in *libvdpau_nvidia.so*);; *) continue; esac
622     install_file nvidia $nvidia_libdir/$subdir
623     ;;
624     VDPAU_WRAPPER_SYMLINK)
625     parseparams arch subdir dest
626     case $file in *libvdpau_nvidia.so*);; *) continue; esac
627     install_lib_symlink nvidia $nvidia_libdir/$subdir
628     ;;
629 ahmad 56864 XLIB_STATIC_LIB)
630     install_file nvidia-devel %{nvidia_libdir}
631     ;;
632     XLIB_SHARED_LIB)
633     install_file nvidia %{nvidia_libdir}
634     ;;
635     XLIB_SYMLINK)
636     parseparams dest
637     install_lib_symlink nvidia %{nvidia_libdir}
638     ;;
639     LIBGL_LA)
640     # (Anssi) we don't install .la files
641     ;;
642 anssi 208481 XMODULE_SHARED_LIB|GLX_MODULE_SHARED_LIB)
643 ahmad 56864 parseparams subdir
644     install_file nvidia $(get_module_dir $subdir)
645     ;;
646     XMODULE_NEWSYM)
647     # symlink that is created only if it doesn't already
648     # exist (i.e. as part of x11-server)
649     case "$file" in
650     libwfb.so)
651     continue
652     ;;
653     *)
654     error_unhandled "unknown XMODULE_NEWSYM type file $file, skipped"
655     continue
656     esac
657     parseparams subdir dest
658     install_symlink nvidia $(get_module_dir $subdir)
659     ;;
660 tmb 811426 XORG_OUTPUTCLASS_CONFIG)
661     # (tmb) dont install xorg driver autoloader conf
662     continue
663     ;;
664 anssi 208481 XMODULE_SYMLINK|GLX_MODULE_SYMLINK)
665 ahmad 56864 parseparams subdir dest
666     install_symlink nvidia $(get_module_dir $subdir)
667     ;;
668     VDPAU_HEADER)
669     continue
670     parseparams subdir
671     install_file_only nvidia-devel %{_includedir}/%{drivername}/$subdir
672     ;;
673     OPENGL_HEADER|CUDA_HEADER)
674     parseparams subdir
675     install_file_only nvidia-devel %{_includedir}/%{drivername}/$subdir
676     ;;
677     DOCUMENTATION)
678     parseparams subdir
679     case $subdir in
680     */html)
681     add_to_list nvidia-html "%%doc %{pkgname}/$file"
682     continue
683     ;;
684     */include/*)
685     continue
686     ;;
687     esac
688     case $file in
689     *XF86Config*|*nvidia-settings.png)
690     continue;;
691     esac
692     add_to_list nvidia "%%doc %{pkgname}/$file"
693     ;;
694 anssi 412170 MANPAGE|NVIDIA_MODPROBE_MANPAGE)
695 ahmad 56864 parseparams subdir
696     case "$file" in
697     *nvidia-installer*)
698     # not installed
699     continue
700     ;;
701 anssi 412170 *nvidia-settings*|*nvidia-xconfig*|*nvidia-modprobe*|*nvidia-persistenced*)
702 ahmad 56864 %if !%simple
703     # installed separately below
704     continue
705     %endif
706     ;;
707 anssi 412170 *nvidia-smi*|*nvidia-cuda-mps-control*)
708 ahmad 56864 # ok
709     ;;
710     *)
711     error_unhandled "skipped unknown man page $(basename $file)"
712     continue
713     esac
714     install_file_only nvidia %{_mandir}/$subdir
715     ;;
716     UTILITY_BINARY)
717     case "$file" in
718 anssi 412170 *nvidia-settings|*nvidia-xconfig|*nvidia-persistenced)
719 ahmad 56864 %if !%simple
720     # not installed, we install our own copy
721     continue
722     %endif
723     ;;
724 anssi 412170 *nvidia-smi|*nvidia-bug-report.sh|*nvidia-debugdump)
725 ahmad 56864 # ok
726     ;;
727 anssi 412170 *nvidia-cuda-mps-control|*nvidia-cuda-mps-server)
728     # ok
729     ;;
730 ahmad 56864 *)
731     error_unhandled "unknown binary $(basename $file) will be installed to %{nvidia_bindir}/$(basename $file)"
732     ;;
733     esac
734     install_file nvidia %{nvidia_bindir}
735     ;;
736     UTILITY_BIN_SYMLINK)
737     case $file in nvidia-uninstall) continue;; esac
738     parseparams dest
739     install_symlink nvidia %{nvidia_bindir}
740     ;;
741 anssi 412170 NVIDIA_MODPROBE)
742     # A suid-root tool (GPLv2) used as fallback for loading the module and
743     # creating the device nodes in case the driver component is running as
744     # a non-root user (e.g. a CUDA application). While the module is automatically
745     # loaded by udev rules, the device nodes are not automatically created
746     # like with regular drivers and therefore this tool is installed on
747     # Mageia as well, at least for now.
748    
749     # We install our self-compiled version in non-simple mode
750     %if %simple
751     install_file nvidia %{nvidia_bindir}
752     %endif
753     ;;
754 ahmad 56864 INSTALLER_BINARY)
755     # not installed
756     ;;
757 tmb 1000684 KERNEL_MODULE_SRC|DKMS_CONF)
758     install_src_file nvidia-dkms %{_usrsrc}/%{drivername}-%{version}-%{release}
759 ahmad 56864 ;;
760     CUDA_ICD)
761     # in theory this should go to the cuda subpackage, but it goes into the main package
762     # as this avoids one broken symlink and it is small enough to not cause space issues
763     install_file nvidia %{_sysconfdir}/%{drivername}
764     ;;
765 anssi 412170 APPLICATION_PROFILE)
766     parseparams subdir
767 anssi 812247 install_file nvidia %{nvidia_datadir}/$subdir
768 anssi 412170 ;;
769 ahmad 56864 DOT_DESKTOP)
770     # we provide our own for now
771     ;;
772     *)
773     error_unhandled "file $(basename $file) of unknown type $type will be skipped"
774     esac
775     done
776    
777 anssi 108523 [ -z "$warnings" ] || echo "Please inform Anssi Hannula <anssi@mageia.org> or http://bugs.mageia.org/ of the above warnings." >> warns.log
778 ahmad 56864
779     %if %simple
780     find %{buildroot}%{_libdir} %{buildroot}%{_prefix}/lib -type d | while read dir; do
781     dir=${dir#%{buildroot}}
782     echo "$dir" | grep -q nvidia && echo "%%dir $dir" >> nvidia.files
783     done
784     [ -d %{buildroot}%{_includedir}/%{drivername} ] && echo "%{_includedir}/%{drivername}" >> nvidia-devel.files
785 anssi 412170
786     # for old releases in %%simple mode
787     if ! [ -e %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}/dkms.conf ]; then
788     install -m644 kernel/dkms.conf %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}/dkms.conf
789     fi
790 ahmad 56864 %endif
791    
792     %if !%simple
793     # confirm SONAME; if something else than libvdpau_nvidia.so or libvdpau_nvidia.so.1, adapt .spec as needed:
794     [ "$(objdump -p %{buildroot}%{nvidia_libdir}/vdpau/libvdpau_nvidia.so.%{version} | grep SONAME | gawk '{ print $2 }')" = "libvdpau_nvidia.so.1" ]
795    
796     rm -f %{buildroot}%{nvidia_libdir}/vdpau/libvdpau_nvidia.so.1
797     rm -f %{buildroot}%{nvidia_libdir32}/vdpau/libvdpau_nvidia.so.1
798     %endif
799    
800     # vdpau alternative symlink
801     install -d -m755 %{buildroot}%{_libdir}/vdpau
802     touch %{buildroot}%{_libdir}/vdpau/libvdpau_nvidia.so.1
803     %ifarch %{biarches}
804     install -d -m755 %{buildroot}%{_prefix}/lib/vdpau
805     touch %{buildroot}%{_prefix}/lib/vdpau/libvdpau_nvidia.so.1
806     %endif
807    
808     %if !%simple
809     # self-built binaries
810 tmb 282100 install -m755 ../nvidia-settings-%{version}/src/_out/*/nvidia-settings %{buildroot}%{nvidia_bindir}
811 ahmad 56864 install -m755 ../nvidia-xconfig-%{version}/_out/*/nvidia-xconfig %{buildroot}%{nvidia_bindir}
812 anssi 412170 install -m755 ../nvidia-persistenced-%{version}/_out/*/nvidia-persistenced %{buildroot}%{nvidia_bindir}
813     install -m4755 ../nvidia-modprobe-%{version}/_out/*/nvidia-modprobe %{buildroot}%{nvidia_bindir}
814 anssi 812377 # nvidia-settings dlopens libnvidia-gtk*.so.VERSION
815     for file in ../nvidia-settings-%{version}/src/_out/*/libnvidia-gtk*.so; do
816     install -m755 ${file} %{buildroot}%{nvidia_libdir}/$(basename "$file").%{version}
817     done
818 ahmad 56864 %endif
819     # binary alternatives
820     install -d -m755 %{buildroot}%{_bindir}
821 anssi 152893 touch %{buildroot}%{_bindir}/nvidia-debugdump
822 ahmad 56864 touch %{buildroot}%{_bindir}/nvidia-settings
823     touch %{buildroot}%{_bindir}/nvidia-smi
824     touch %{buildroot}%{_bindir}/nvidia-xconfig
825     touch %{buildroot}%{_bindir}/nvidia-bug-report.sh
826 anssi 412170 touch %{buildroot}%{_bindir}/nvidia-modprobe
827     touch %{buildroot}%{_bindir}/nvidia-persistenced
828     touch %{buildroot}%{_bindir}/nvidia-cuda-mps-control
829     touch %{buildroot}%{_bindir}/nvidia-cuda-mps-server
830 ahmad 56864 # rpmlint:
831     chmod 0755 %{buildroot}%{_bindir}/*
832    
833 anssi 812247 # datadir alternative
834     mkdir -p %{buildroot}%{_datadir}/nvidia
835    
836 ahmad 56864 %if !%simple
837 anssi 812247 # See posttrans script
838 tmb 837782 #for file in %{buildroot}%{nvidia_datadir}/pci.ids %{buildroot}%{nvidia_datadir}/monitoring.conf; do
839     # ln -T "$file" "%{buildroot}%{_datadir}/%{drivername}/$(basename "$file").mga"
840     #done
841 anssi 812247
842 ahmad 56864 # install man pages
843 anssi 412170 install -m644 ../nvidia-settings-%{version}/doc/_out/*/nvidia-settings.1 %{buildroot}%{_mandir}/man1
844     install -m644 ../nvidia-xconfig-%{version}/_out/*/nvidia-xconfig.1 %{buildroot}%{_mandir}/man1
845     install -m644 ../nvidia-modprobe-%{version}/_out/*/nvidia-modprobe.1 %{buildroot}%{_mandir}/man1
846     install -m644 ../nvidia-persistenced-%{version}/_out/*/nvidia-persistenced.1 %{buildroot}%{_mandir}/man1
847 ahmad 56864 %endif
848     # bug #41638 - whatis entries of nvidia man pages appear wrong
849     gunzip %{buildroot}%{_mandir}/man1/*.gz
850     sed -r -i '/^nvidia\\-[a-z]+ \\- NVIDIA/s,^nvidia\\-,nvidia-,' %{buildroot}%{_mandir}/man1/*.1
851     cd %{buildroot}%{_mandir}/man1
852     rename nvidia alt-%{drivername} *
853     cd -
854     touch %{buildroot}%{_mandir}/man1/nvidia-xconfig.1%{_extension}
855     touch %{buildroot}%{_mandir}/man1/nvidia-settings.1%{_extension}
856 anssi 412170 touch %{buildroot}%{_mandir}/man1/nvidia-modprobe.1%{_extension}
857     touch %{buildroot}%{_mandir}/man1/nvidia-persistenced.1%{_extension}
858 ahmad 56864 touch %{buildroot}%{_mandir}/man1/nvidia-smi.1%{_extension}
859 anssi 412170 touch %{buildroot}%{_mandir}/man1/nvidia-cuda-mps-control.1%{_extension}
860 ahmad 56864
861     # cuda nvidia.icd
862     install -d -m755 %{buildroot}%{_sysconfdir}/OpenCL/vendors
863     touch %{buildroot}%{_sysconfdir}/OpenCL/vendors/nvidia.icd
864    
865     # ld.so.conf
866     install -d -m755 %{buildroot}%{_sysconfdir}/%{drivername}
867     echo "%{nvidia_libdir}" > %{buildroot}%{_sysconfdir}/%{drivername}/ld.so.conf
868     %ifarch %{biarches}
869     echo "%{nvidia_libdir32}" >> %{buildroot}%{_sysconfdir}/%{drivername}/ld.so.conf
870     %endif
871     install -d -m755 %{buildroot}%{_sysconfdir}/ld.so.conf.d
872     touch %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL.conf
873    
874     # modprobe.conf
875     install -d -m755 %{buildroot}%{_sysconfdir}/modprobe.d
876 ahmad 66356 touch %{buildroot}%{_sysconfdir}/modprobe.d/display-driver.conf
877 anssi 87268 echo "install nvidia /sbin/modprobe %{modulename} \$CMDLINE_OPTS" > %{buildroot}%{_sysconfdir}/%{drivername}/modprobe.conf
878 ahmad 56864
879     # xinit script
880     install -d -m755 %{buildroot}%{_sysconfdir}/%{drivername}
881     cat > %{buildroot}%{_sysconfdir}/%{drivername}/nvidia-settings.xinit <<EOF
882     # to be sourced
883     #
884     # Do not modify this file; the changes will be overwritten.
885     # If you want to disable automatic configuration loading, create
886     # /etc/sysconfig/nvidia-settings with this line: LOAD_NVIDIA_SETTINGS="no"
887     #
888     LOAD_NVIDIA_SETTINGS="yes"
889     [ -f %{_sysconfdir}/sysconfig/nvidia-settings ] && . %{_sysconfdir}/sysconfig/nvidia-settings
890     [ "\$LOAD_NVIDIA_SETTINGS" = "yes" ] && %{_bindir}/nvidia-settings --load-config-only
891     EOF
892     chmod 0755 %{buildroot}%{_sysconfdir}/%{drivername}/nvidia-settings.xinit
893     install -d -m755 %{buildroot}%{_sysconfdir}/X11/xinit.d
894     touch %{buildroot}%{_sysconfdir}/X11/xinit.d/nvidia-settings.xinit
895    
896     # install ldetect-lst pcitable files for backports
897     # local version of merge2pcitable.pl:read_nvidia_readme:
898 anssi 412170 section="nothingyet"
899 ahmad 56864 set +x
900     [ -e README.txt ] || cp -a usr/share/doc/README.txt .
901     cat README.txt | while read line; do
902 anssi 412170 if [ "$section" = "nothingyet" ] || [ "$section" = "midspace" ]; then
903     if echo "$line" | grep -Pq "^\s*NVIDIA GPU product\s+Device PCI ID"; then
904     section="data"
905     elif [ "$section" = "midspace" ] && echo "$line" | grep -Pq "legacy"; then
906     break
907     fi
908 ahmad 56864 continue
909     fi
910 anssi 412170
911     if [ "$section" = "data" ] && echo "$line" | grep -Pq "^\s*$"; then
912     section="midspace"
913 ahmad 56864 continue
914     fi
915 anssi 412170
916 ahmad 56864 echo "$line" | grep -Pq "^\s*-+[\s-]+$" && continue
917 anssi 812247 id=$(echo "$line" | sed -nre 's,^\s*.+?\s\s+(0x)?([0-9a-fA-F]{4}).*$,\2,p' | tr '[:upper:]' '[:lower:]')
918     #id2=$(echo "$line" | sed -nre 's,^\s*.+?\s\s+0x(....)\s0x(....).*$,\2,p' | tr '[:upper:]' '[:lower:]')
919 anssi 412170 subsysid=
920     # not useful as of 2013-05 -Anssi
921     #[ -n "$id2" ] && subsysid=" 0x10de 0x$id2"
922     echo "0x10de 0x$id$subsysid \"Card:%{ldetect_cards_name}\""
923 ahmad 56864 done | sort -u > pcitable.nvidia.lst
924     set -x
925     [ $(wc -l pcitable.nvidia.lst | cut -f1 -d" ") -gt 200 ]
926     %if "%{ldetect_cards_name}" != ""
927     install -d -m755 %{buildroot}%{_datadir}/ldetect-lst/pcitable.d
928     gzip -c pcitable.nvidia.lst > %{buildroot}%{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz
929     %endif
930    
931 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')"
932 ahmad 56864
933 anssi 812247 %pretrans -n %{driverpkgname}
934     # Migrate old non-alternativeszificated datadir
935     if ! [ -L %{_datadir}/nvidia ] && [ -d %{_datadir}/nvidia ]; then
936     if ! [ -e %{nvidia_datadir} ]; then
937     mv -T %{_datadir}/nvidia %{nvidia_datadir}
938     else
939     # should not really be encountered
940     mv -T %{_datadir}/nvidia %{_datadir}/nvidia.${RANDOM}
941     fi
942     fi
943    
944 ahmad 56864 %post -n %{driverpkgname}
945     # XFdrake used to generate an nvidia.conf file
946     [ -L %{_sysconfdir}/modprobe.d/nvidia.conf ] || rm -f %{_sysconfdir}/modprobe.d/nvidia.conf
947    
948     current_glconf="$(readlink -e %{_sysconfdir}/ld.so.conf.d/GL.conf)"
949    
950     # owned by libvdpau1, created in case libvdpau1 is installed only just after
951     # this package
952     mkdir -p %{_libdir}/vdpau
953    
954     %{_sbindir}/update-alternatives \
955     --install %{_sysconfdir}/ld.so.conf.d/GL.conf gl_conf %{_sysconfdir}/%{drivername}/ld.so.conf %{priority} \
956     --slave %{_mandir}/man1/nvidia-settings.1%{_extension} man_nvidiasettings%{_extension} %{_mandir}/man1/alt-%{drivername}-settings.1%{_extension} \
957     --slave %{_mandir}/man1/nvidia-xconfig.1%{_extension} man_nvidiaxconfig%{_extension} %{_mandir}/man1/alt-%{drivername}-xconfig.1%{_extension} \
958     --slave %{_mandir}/man1/nvidia-smi.1%{_extension} nvidia-smi.1%{_extension} %{_mandir}/man1/alt-%{drivername}-smi.1%{_extension} \
959 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} \
960 ahmad 56909 --slave %{_datadir}/applications/mageia-nvidia-settings.desktop nvidia_desktop %{_datadir}/%{drivername}/mageia-nvidia-settings.desktop \
961 ahmad 56864 --slave %{_bindir}/nvidia-settings nvidia_settings %{nvidia_bindir}/nvidia-settings \
962     --slave %{_bindir}/nvidia-smi nvidia_smi %{nvidia_bindir}/nvidia-smi \
963     --slave %{_bindir}/nvidia-xconfig nvidia_xconfig %{nvidia_bindir}/nvidia-xconfig \
964 anssi 152893 --slave %{_bindir}/nvidia-debugdump nvidia-debugdump %{nvidia_bindir}/nvidia-debugdump \
965 ahmad 56864 --slave %{_bindir}/nvidia-bug-report.sh nvidia_bug_report %{nvidia_bindir}/nvidia-bug-report.sh \
966 anssi 412170 --slave %{_bindir}/nvidia-cuda-mps-control nvidia-cuda-mps-control %{nvidia_bindir}/nvidia-cuda-mps-control \
967     --slave %{_bindir}/nvidia-cuda-mps-server nvidia-cuda-mps-server %{nvidia_bindir}/nvidia-cuda-mps-server \
968     --slave %{_bindir}/nvidia-modprobe nvidia-modprobe %{nvidia_bindir}/nvidia-modprobe \
969     --slave %{_bindir}/nvidia-persistenced nvidia-persistenced %{nvidia_bindir}/nvidia-persistenced \
970 ahmad 56864 --slave %{_sysconfdir}/X11/xinit.d/nvidia-settings.xinit nvidia-settings.xinit %{_sysconfdir}/%{drivername}/nvidia-settings.xinit \
971     --slave %{_libdir}/vdpau/libvdpau_nvidia.so.1 %{_lib}vdpau_nvidia.so.1 %{nvidia_libdir}/vdpau/libvdpau_nvidia.so.%{version} \
972 anssi 87344 --slave %{_sysconfdir}/modprobe.d/display-driver.conf display-driver.conf %{_sysconfdir}/%{drivername}/modprobe.conf \
973 ahmad 56864 --slave %{_sysconfdir}/OpenCL/vendors/nvidia.icd nvidia.icd %{_sysconfdir}/%{drivername}/nvidia.icd \
974     %ifarch %{biarches}
975     --slave %{_prefix}/lib/vdpau/libvdpau_nvidia.so.1 libvdpau_nvidia.so.1 %{nvidia_libdir32}/vdpau/libvdpau_nvidia.so.%{version} \
976     %endif
977     --slave %{xorg_extra_modules} xorg_extra_modules %{nvidia_extensionsdir} \
978 anssi 812247 --slave %{_datadir}/nvidia nvidia_datadir %{nvidia_datadir} \
979 ahmad 56864
980     if [ "${current_glconf}" = "%{_sysconfdir}/nvidia97xx/ld.so.conf" ]; then
981     # Adapt for the renaming of the driver. X.org config still has the old ModulePaths
982     # but they do not matter as we are using alternatives for libglx.so now.
983     %{_sbindir}/update-alternatives --set gl_conf %{_sysconfdir}/%{drivername}/ld.so.conf
984     fi
985     # explicit /sbin/ldconfig due to alternatives
986     /sbin/ldconfig -X
987    
988     %if "%{ldetect_cards_name}" != ""
989     [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
990     %endif
991    
992 anssi 812247 %posttrans -n %{driverpkgname}
993     # When upgrading 340 => 346, the alternativeszification of /usr/share/nvidia may
994     # cause uninstallation of 340 (during upgrade) to remove these files through
995     # the /usr/share/nvidia symlink. Restore them.
996     for file in %{nvidia_datadir}/pci.ids %{nvidia_datadir}/monitoring.conf; do
997     backupfile="%{_datadir}/%{drivername}/$(basename "$file").mga"
998     if ! [ -e $file ] && [ -e "$backupfile" ]; then
999     ln -T "$backupfile" "$file"
1000     fi
1001     done
1002    
1003 ahmad 56864 %postun -n %{driverpkgname}
1004     if [ ! -f %{_sysconfdir}/%{drivername}/ld.so.conf ]; then
1005     %{_sbindir}/update-alternatives --remove gl_conf %{_sysconfdir}/%{drivername}/ld.so.conf
1006     fi
1007     # explicit /sbin/ldconfig due to alternatives
1008     /sbin/ldconfig -X
1009    
1010     %if "%{ldetect_cards_name}" != ""
1011     [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
1012     %endif
1013    
1014 anssi 174611 %post -n %{drivername}-cuda-opencl
1015     # explicit /sbin/ldconfig due to a non-standard library directory
1016     /sbin/ldconfig -X
1017 ahmad 56864
1018 tmb 925016 %post -n %{drivername}-devel
1019     # explicit /sbin/ldconfig due to a non-standard library directory (mga#14462)
1020     /sbin/ldconfig -X
1021    
1022 ahmad 56864 %post -n dkms-%{drivername}
1023     /usr/sbin/dkms --rpm_safe_upgrade add -m %{drivername} -v %{version}-%{release} &&
1024     /usr/sbin/dkms --rpm_safe_upgrade build -m %{drivername} -v %{version}-%{release} &&
1025     /usr/sbin/dkms --rpm_safe_upgrade install -m %{drivername} -v %{version}-%{release} --force
1026    
1027     # rmmod any old driver if present and not in use (e.g. by X)
1028     rmmod nvidia > /dev/null 2>&1 || true
1029    
1030     %preun -n dkms-%{drivername}
1031     /usr/sbin/dkms --rpm_safe_upgrade remove -m %{drivername} -v %{version}-%{release} --all
1032    
1033     # rmmod any old driver if present and not in use (e.g. by X)
1034     rmmod nvidia > /dev/null 2>&1 || true
1035    
1036     %clean
1037     rm -rf %{buildroot}
1038    
1039     %files -n %{driverpkgname} -f %{pkgname}/nvidia.files
1040     %defattr(-,root,root)
1041     # other documentation files are listed in nvidia.files
1042     %doc README.install.urpmi README.manual-setup
1043    
1044     %if "%{ldetect_cards_name}" != ""
1045     %{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz
1046     %endif
1047    
1048 anssi 320407 # ld.so.conf, modprobe.conf, xinit
1049 ahmad 56864 %ghost %{_sysconfdir}/ld.so.conf.d/GL.conf
1050     %ghost %{_sysconfdir}/X11/xinit.d/nvidia-settings.xinit
1051 ahmad 66356 %ghost %{_sysconfdir}/modprobe.d/display-driver.conf
1052 ahmad 56864 %dir %{_sysconfdir}/%{drivername}
1053     %{_sysconfdir}/%{drivername}/modprobe.conf
1054     %{_sysconfdir}/%{drivername}/ld.so.conf
1055     %{_sysconfdir}/%{drivername}/nvidia-settings.xinit
1056 anssi 812247 %ghost %{_datadir}/nvidia
1057 ahmad 56864 %if !%simple
1058     %{_sysconfdir}/%{drivername}/nvidia.icd
1059 anssi 812247 %dir %{nvidia_datadir}
1060     %{nvidia_datadir}/nvidia-application-profiles-%{version}-rc
1061     %{nvidia_datadir}/nvidia-application-profiles-%{version}-key-documentation
1062 tmb 837782 #{nvidia_datadir}/monitoring.conf
1063     #{nvidia_datadir}/pci.ids
1064 anssi 812247 # backups, see posttrans
1065 tmb 837782 #{_datadir}/%{drivername}/monitoring.conf.mga
1066     #{_datadir}/%{drivername}/pci.ids.mga
1067 ahmad 56864 %endif
1068    
1069     %dir %{_sysconfdir}/OpenCL
1070     %dir %{_sysconfdir}/OpenCL/vendors
1071     %ghost %{_sysconfdir}/OpenCL/vendors/nvidia.icd
1072    
1073 anssi 152893 %ghost %{_bindir}/nvidia-debugdump
1074 ahmad 56864 %ghost %{_bindir}/nvidia-settings
1075     %ghost %{_bindir}/nvidia-smi
1076     %ghost %{_bindir}/nvidia-xconfig
1077 anssi 412170 %ghost %{_bindir}/nvidia-modprobe
1078     %ghost %{_bindir}/nvidia-persistenced
1079 ahmad 56864 %ghost %{_bindir}/nvidia-bug-report.sh
1080 anssi 412170 %ghost %{_bindir}/nvidia-cuda-mps-control
1081     %ghost %{_bindir}/nvidia-cuda-mps-server
1082 ahmad 56864 %if !%simple
1083     %dir %{nvidia_bindir}
1084 anssi 152893 %{nvidia_bindir}/nvidia-debugdump
1085 ahmad 56864 %{nvidia_bindir}/nvidia-settings
1086     %{nvidia_bindir}/nvidia-smi
1087     %{nvidia_bindir}/nvidia-xconfig
1088 anssi 412170 %{nvidia_bindir}/nvidia-modprobe
1089     %{nvidia_bindir}/nvidia-persistenced
1090 ahmad 56864 %{nvidia_bindir}/nvidia-bug-report.sh
1091 anssi 412170 %{nvidia_bindir}/nvidia-cuda-mps-control
1092     %{nvidia_bindir}/nvidia-cuda-mps-server
1093 ahmad 56864 %endif
1094    
1095     %ghost %{_mandir}/man1/nvidia-xconfig.1%{_extension}
1096     %ghost %{_mandir}/man1/nvidia-settings.1%{_extension}
1097 anssi 412170 %ghost %{_mandir}/man1/nvidia-modprobe.1%{_extension}
1098     %ghost %{_mandir}/man1/nvidia-persistenced.1%{_extension}
1099 ahmad 56864 %ghost %{_mandir}/man1/nvidia-smi.1%{_extension}
1100 anssi 412170 %ghost %{_mandir}/man1/nvidia-cuda-mps-control.1%{_extension}
1101 ahmad 56864 %if !%simple
1102     %{_mandir}/man1/alt-%{drivername}-xconfig.1*
1103     %{_mandir}/man1/alt-%{drivername}-settings.1*
1104 anssi 412170 %{_mandir}/man1/alt-%{drivername}-modprobe.1*
1105     %{_mandir}/man1/alt-%{drivername}-persistenced.1*
1106 ahmad 56864 %{_mandir}/man1/alt-%{drivername}-smi.1*
1107 anssi 412170 %{_mandir}/man1/alt-%{drivername}-cuda-mps-control.1*
1108 ahmad 56864 %else
1109     %{_mandir}/man1/alt-%{drivername}-*
1110     %endif
1111    
1112 ahmad 56909 %ghost %{_datadir}/applications/mageia-nvidia-settings.desktop
1113 ahmad 56864 %dir %{_datadir}/%{drivername}
1114 ahmad 56909 %{_datadir}/%{drivername}/mageia-nvidia-settings.desktop
1115 ahmad 56864
1116     %if !%simple
1117     %{_iconsdir}/hicolor/16x16/apps/%{drivername}-settings.png
1118     %{_iconsdir}/hicolor/32x32/apps/%{drivername}-settings.png
1119     %endif
1120     %{_iconsdir}/hicolor/48x48/apps/%{drivername}-settings.png
1121    
1122     %if !%simple
1123     %dir %{nvidia_libdir}
1124     %dir %{nvidia_libdir}/tls
1125     %dir %{nvidia_libdir}/vdpau
1126     %{nvidia_libdir}/libGL.so.%{version}
1127 tmb 629397 %{nvidia_libdir}/libnvidia-cfg.so.%{version}
1128 ahmad 56864 %{nvidia_libdir}/libnvidia-glcore.so.%{version}
1129     %{nvidia_libdir}/libnvidia-tls.so.%{version}
1130 tmb 629397 %{nvidia_libdir}/libEGL.so.1
1131 tmb 1000684 %{nvidia_libdir}/libEGL_nvidia.so.0
1132     %{nvidia_libdir}/libEGL_nvidia.so.%{version}
1133 ahmad 56864 %{nvidia_libdir}/libGL.so.1
1134 tmb 1000684 %{nvidia_libdir}/libGLdispatch.so.0
1135 tmb 629397 %{nvidia_libdir}/libGLESv1_CM.so.1
1136 tmb 1000684 %{nvidia_libdir}/libGLESv1_CM_nvidia.so.1
1137     %{nvidia_libdir}/libGLESv1_CM_nvidia.so.%{version}
1138 tmb 629397 %{nvidia_libdir}/libGLESv2.so.2
1139 tmb 1000684 %{nvidia_libdir}/libGLESv2_nvidia.so.2
1140     %{nvidia_libdir}/libGLESv2_nvidia.so.%{version}
1141     %{nvidia_libdir}/libGLX_indirect.so.0
1142     %{nvidia_libdir}/libGLX_nvidia.so.0
1143     %{nvidia_libdir}/libGLX_nvidia.so.%{version}
1144     %{nvidia_libdir}/libOpenGL.so.0
1145 ahmad 56864 %{nvidia_libdir}/libnvidia-cfg.so.1
1146 tmb 629397 %{nvidia_libdir}/libnvidia-eglcore.so.%{version}
1147 tmb 1000684 %{nvidia_libdir}/libnvidia-fatbinaryloader.so.%{version}
1148 tmb 550648 %{nvidia_libdir}/libnvidia-fbc.so.1
1149     %{nvidia_libdir}/libnvidia-fbc.so.%{version}
1150 tmb 629397 %{nvidia_libdir}/libnvidia-glsi.so.%{version}
1151 anssi 812377 %{nvidia_libdir}/libnvidia-gtk2.so.%{version}
1152     %{nvidia_libdir}/libnvidia-gtk3.so.%{version}
1153 tmb 469114 %{nvidia_libdir}/libnvidia-ifr.so.1
1154     %{nvidia_libdir}/libnvidia-ifr.so.%{version}
1155 tmb 274692 %{nvidia_libdir}/libnvidia-ml.so.1
1156     %{nvidia_libdir}/libnvidia-ml.so.%{version}
1157 tmb 1000684 %{nvidia_libdir}/libnvidia-ptxjitcompiler.so.%{version}
1158 ahmad 56864 %{nvidia_libdir}/libvdpau_nvidia.so
1159     %{nvidia_libdir}/tls/libnvidia-tls.so.%{version}
1160 tmb 629397 %{nvidia_libdir}/vdpau/libvdpau_nvidia.so.%{version}
1161     %ifarch %{biarches}
1162     %dir %{nvidia_libdir32}
1163     %dir %{nvidia_libdir32}/tls
1164     %dir %{nvidia_libdir32}/vdpau
1165 tmb 550648 %{nvidia_libdir32}/libEGL.so.1
1166 tmb 1000684 %{nvidia_libdir32}/libEGL_nvidia.so.0
1167     %{nvidia_libdir32}/libEGL_nvidia.so.%{version}
1168 tmb 629397 %{nvidia_libdir32}/libGL.so.1
1169     %{nvidia_libdir32}/libGL.so.%{version}
1170 tmb 1000684 %{nvidia_libdir32}/libGLdispatch.so.0
1171 tmb 550648 %{nvidia_libdir32}/libGLESv1_CM.so.1
1172 tmb 1000684 %{nvidia_libdir32}/libGLESv1_CM_nvidia.so.1
1173     %{nvidia_libdir32}/libGLESv1_CM_nvidia.so.%{version}
1174 tmb 550648 %{nvidia_libdir32}/libGLESv2.so.2
1175 tmb 1000684 %{nvidia_libdir32}/libGLESv2_nvidia.so.2
1176     %{nvidia_libdir32}/libGLESv2_nvidia.so.%{version}
1177     %{nvidia_libdir32}/libGLX_indirect.so.0
1178     %{nvidia_libdir32}/libGLX_nvidia.so.0
1179     %{nvidia_libdir32}/libGLX_nvidia.so.361.42
1180     %{nvidia_libdir32}/libOpenGL.so.0
1181 tmb 550648 %{nvidia_libdir32}/libnvidia-eglcore.so.%{version}
1182 tmb 1000684 %{nvidia_libdir32}/libnvidia-fatbinaryloader.so.%{version}
1183 tmb 618433 %{nvidia_libdir32}/libnvidia-fbc.so.1
1184     %{nvidia_libdir32}/libnvidia-fbc.so.%{version}
1185 ahmad 56864 %{nvidia_libdir32}/libnvidia-glcore.so.%{version}
1186 tmb 629397 %{nvidia_libdir32}/libnvidia-glsi.so.%{version}
1187 tmb 469114 %{nvidia_libdir32}/libnvidia-ifr.so.1
1188     %{nvidia_libdir32}/libnvidia-ifr.so.%{version}
1189 tmb 274692 %{nvidia_libdir32}/libnvidia-ml.so.1
1190     %{nvidia_libdir32}/libnvidia-ml.so.%{version}
1191 ahmad 56864 %{nvidia_libdir32}/libnvidia-tls.so.%{version}
1192 tmb 1000684 %{nvidia_libdir32}/libnvidia-ptxjitcompiler.so.%{version}
1193 ahmad 56864 %{nvidia_libdir32}/libvdpau_nvidia.so
1194 tmb 629397 %{nvidia_libdir32}/tls/libnvidia-tls.so.%{version}
1195 ahmad 56864 %{nvidia_libdir32}/vdpau/libvdpau_nvidia.so.%{version}
1196     %endif
1197     # %simple
1198     %endif
1199    
1200     %ghost %{_libdir}/vdpau/libvdpau_nvidia.so.1
1201     %ifarch %{biarches}
1202     # avoid unowned directory
1203     %dir %{_prefix}/lib/vdpau
1204     %ghost %{_prefix}/lib/vdpau/libvdpau_nvidia.so.1
1205     %endif
1206    
1207 ahmad 56909 %if !%simple
1208 ahmad 56864 %dir %{nvidia_modulesdir}
1209     %{nvidia_modulesdir}/libnvidia-wfb.so.1
1210     %endif
1211    
1212     %if !%simple
1213     %{nvidia_modulesdir}/libnvidia-wfb.so.%{version}
1214     %endif
1215    
1216     %if !%simple
1217     %{nvidia_extensionsdir}/libglx.so.%{version}
1218     %{nvidia_extensionsdir}/libglx.so
1219     %endif
1220    
1221     %if !%simple
1222     %{nvidia_driversdir}/nvidia_drv.so
1223     %endif
1224    
1225 tmb 904031 %if %simple
1226 ahmad 56864 %files -n %{drivername}-devel -f %pkgname/nvidia-devel.files
1227 tmb 904031 %else
1228     %files -n %{drivername}-devel
1229 ahmad 56864 %defattr(-,root,root)
1230     %{_includedir}/%{drivername}
1231 tmb 629397 %{nvidia_libdir}/libEGL.so
1232 ahmad 56864 %{nvidia_libdir}/libGL.so
1233 tmb 629397 %{nvidia_libdir}/libGLESv1_CM.so
1234     %{nvidia_libdir}/libGLESv2.so
1235     %{nvidia_libdir}/libOpenCL.so
1236 tmb 1000684 %{nvidia_libdir}/libOpenGL.so
1237 ahmad 56864 %{nvidia_libdir}/libcuda.so
1238     %{nvidia_libdir}/libnvcuvid.so
1239     %{nvidia_libdir}/libnvidia-cfg.so
1240 tmb 629397 %{nvidia_libdir}/libnvidia-encode.so
1241 tmb 550648 %{nvidia_libdir}/libnvidia-fbc.so
1242 tmb 469114 %{nvidia_libdir}/libnvidia-ifr.so
1243 ahmad 56909 %{nvidia_libdir}/libnvidia-ml.so
1244 tmb 629397 %ifarch %{biarches}
1245 tmb 551069 %{nvidia_libdir32}/libEGL.so
1246 tmb 629397 %{nvidia_libdir32}/libGL.so
1247 tmb 551069 %{nvidia_libdir32}/libGLESv1_CM.so
1248     %{nvidia_libdir32}/libGLESv2.so
1249 tmb 629397 %{nvidia_libdir32}/libOpenCL.so
1250 tmb 1000684 %{nvidia_libdir32}/libOpenGL.so
1251 ahmad 56864 %{nvidia_libdir32}/libcuda.so
1252 anssi 320407 %{nvidia_libdir32}/libnvcuvid.so
1253 tmb 629397 %{nvidia_libdir32}/libnvidia-encode.so
1254     %{nvidia_libdir32}/libnvidia-fbc.so
1255 tmb 469114 %{nvidia_libdir32}/libnvidia-ifr.so
1256 tmb 629397 %{nvidia_libdir32}/libnvidia-ml.so
1257 ahmad 56864 %endif
1258     %endif
1259    
1260     %files -n dkms-%{drivername}
1261     %defattr(-,root,root)
1262     %doc %{pkgname}/LICENSE
1263     %{_usrsrc}/%{drivername}-%{version}-%{release}
1264    
1265     %files -n %{drivername}-doc-html -f %pkgname/nvidia-html.files
1266     %defattr(-,root,root)
1267    
1268 tmb 904031 %if %simple
1269 ahmad 56864 %files -n %{drivername}-cuda-opencl -f %pkgname/nvidia-cuda.files
1270 tmb 904031 %else
1271     %files -n %{drivername}-cuda-opencl
1272 ahmad 56864 %defattr(-,root,root)
1273 anssi 412170 # Do not preferably add any alternativeszificated binaries here,
1274     # they cause broken symlinks.
1275 ahmad 56864 %{nvidia_libdir}/libOpenCL.so.1.0.0
1276     %{nvidia_libdir}/libOpenCL.so.1.0
1277     %{nvidia_libdir}/libOpenCL.so.1
1278     %{nvidia_libdir}/libnvcuvid.so.%{version}
1279     %{nvidia_libdir}/libnvcuvid.so.1
1280     %{nvidia_libdir}/libnvidia-compiler.so.%{version}
1281 anssi 320407 %{nvidia_libdir}/libnvidia-encode.so.1
1282     %{nvidia_libdir}/libnvidia-encode.so.%{version}
1283 tmb 282100 %{nvidia_libdir}/libnvidia-opencl.so.1
1284     %{nvidia_libdir}/libnvidia-opencl.so.%{version}
1285 ahmad 56864 %{nvidia_libdir}/libcuda.so.%{version}
1286     %{nvidia_libdir}/libcuda.so.1
1287     %ifarch %{biarches}
1288     %{nvidia_libdir32}/libOpenCL.so.1.0.0
1289     %{nvidia_libdir32}/libOpenCL.so.1.0
1290     %{nvidia_libdir32}/libOpenCL.so.1
1291 anssi 320407 %{nvidia_libdir32}/libnvcuvid.so.%{version}
1292     %{nvidia_libdir32}/libnvcuvid.so.1
1293 ahmad 56864 %{nvidia_libdir32}/libnvidia-compiler.so.%{version}
1294 anssi 320407 %{nvidia_libdir32}/libnvidia-encode.so.1
1295     %{nvidia_libdir32}/libnvidia-encode.so.%{version}
1296     %{nvidia_libdir32}/libnvidia-opencl.so.1
1297     %{nvidia_libdir32}/libnvidia-opencl.so.%{version}
1298 ahmad 56864 %{nvidia_libdir32}/libcuda.so.%{version}
1299     %{nvidia_libdir32}/libcuda.so.1
1300     %endif
1301     %endif

  ViewVC Help
Powered by ViewVC 1.1.30