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

  ViewVC Help
Powered by ViewVC 1.1.30