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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.30