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

  ViewVC Help
Powered by ViewVC 1.1.30