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

  ViewVC Help
Powered by ViewVC 1.1.30