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

  ViewVC Help
Powered by ViewVC 1.1.30