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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.30