# I love OpenSource :-( ## NOTE: When modifying this .spec, you do not necessarily need to care about ## the %simple stuff. It is fine to break them, I'll fix it when I need them :) ## - Anssi # %simple mode can be used to transform an arbitrary nvidia installer # package to rpms, similar to %atibuild mode in fglrx. # Macros version, rel, nsource, pkgname, distsuffix should be manually defined. %define simple 0 %{?_without_simple: %global simple 0} %{?_with_simple: %global simple 1} # debugfiles.list is empty, dont try to create the rpms %define _enable_debug_packages %{nil} %define debug_package %{nil} # dont try to check the desktop file, its a ghost for update-alternatives %global dont_check_desktop_files 1 %define name nvidia340 %if !%simple # When updating, please add new ids to ldetect-lst (merge2pcitable.pl) %define version 340.108 %define rel 9 # the highest supported videodrv abi %define videodrv_abi 24 %endif %define priority 9851 %define pkgname32 NVIDIA-Linux-x86-%{version} %define pkgname64 NVIDIA-Linux-x86_64-%{version} # Disable when the sources aren't on ftp yet, but can be downloaded from # http://us.download.nvidia.com %define ftp 0 # For now, backportability is kept for 2008.0 forwards. %define drivername nvidia340 %define driverpkgname x11-driver-video-%{drivername} %define modulename %{drivername} # for description and documentation %define cards GeForce 8xxx, 9xxx and 100 to 415 cards %define xorg_extra_modules %{_libdir}/xorg/extra-modules %define nvidia_driversdir %{_libdir}/%{drivername}/xorg %define nvidia_extensionsdir %{_libdir}/%{drivername}/xorg %define nvidia_modulesdir %{_libdir}/%{drivername}/xorg %define nvidia_libdir %{_libdir}/%{drivername} %define nvidia_libdir32 %{_prefix}/lib/%{drivername} %define nvidia_bindir %{nvidia_libdir}/bin %define nvidia_datadir %{_datadir}/nvidia-alt-%{drivername} # The entry in Cards+ this driver should be associated with, if there is # no entry in ldetect-lst default pcitable: # cooker ldetect-lst should be up-to-date %define ldetect_cards_name %nil # NVIDIA cards not listed in main ldetect-lst pcitable are not likely # to be supported by nv which is from the same time period. Therefore # mark them as not working with nv. (main pcitable entries override # our entries) %if %simple || %mgaversion <= 2 # nvidia/vesa %define ldetect_cards_name NVIDIA GeForce 400 series and later %endif %define biarches x86_64 %if !%simple %ifarch %{ix86} %define nsource %{SOURCE0} %define pkgname %{pkgname32} %endif %ifarch x86_64 %define nsource %{SOURCE1} %define pkgname %{pkgname64} %endif %endif # Other packages should not require any NVIDIA libraries, and this package # should not be pulled in when libGL.so.1 is required %global __provides_exclude \\.so %global common__requires_exclude ^libGL\\.so|^libGLcore\\.so|^libnvidia.*\\.so %ifarch %{biarches} # (anssi) Allow installing of 64-bit package if the runtime dependencies # of 32-bit libraries are not satisfied. If a 32-bit package that requires # libGL.so.1 is installed, the 32-bit mesa libs are pulled in and that will # pull the dependencies of 32-bit nvidia libraries in as well. %global __requires_exclude %common__requires_exclude|^libX11\\.so\\.6$|^libXext\\.so\\.6$|^libdl\\.so\\.2$|^libm\\.so\\.6$|^libpthread\\.so\\.0$|^librt\\.so\\.1$ %else %global __requires_exclude %common__requires_exclude %endif # (anssi) Workaround wrong linking as of 310.19. # This will probably be fixed soon (at least similar issues have been in the past). # https://devtalk.nvidia.com/default/topic/523762/libnvidia-encode-so-310-19-has-dependency-on-missing-library/ %global __provides_exclude_from libnvidia-encode.so.%version %global __requires_exclude_from libnvidia-encode.so.%version Summary: NVIDIA proprietary X.org driver and libraries, 340.xx series Name: %{name} Version: %{version} Release: %mkrel %{rel} %if !%simple %if %ftp Source0: ftp://download.nvidia.com/XFree86/Linux-x86/%{version}/%{pkgname32}.run Source1: ftp://download.nvidia.com/XFree86/Linux-x86_64/%{version}/%{pkgname64}.run # GPLv2 source code; see also http://cgit.freedesktop.org/~aplattner/ Source2: ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-%{version}.tar.bz2 Source3: ftp://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-%{version}.tar.bz2 Source4: ftp://download.nvidia.com/XFree86/nvidia-modprobe/nvidia-modprobe-%{version}.tar.bz2 Source5: ftp://download.nvidia.com/XFree86/nvidia-persistenced/nvidia-persistenced-%{version}.tar.bz2 %else Source0: https://download.nvidia.com/XFree86/Linux-x86/%{version}/%{pkgname32}.run Source1: https://download.nvidia.com/XFree86/Linux-x86_64/%{version}/%{pkgname64}.run # GPLv2 source code; see also http://cgit.freedesktop.org/~aplattner/ Source2: https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-%{version}.tar.bz2 Source3: https://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-%{version}.tar.bz2 Source4: https://download.nvidia.com/XFree86/nvidia-modprobe/nvidia-modprobe-%{version}.tar.bz2 Source5: https://download.nvidia.com/XFree86/nvidia-persistenced/nvidia-persistenced-%{version}.tar.bz2 %endif # Script for building rpms of arbitrary nvidia installers (needs this .spec appended) Source10: nvidia-mgabuild-skel # include xf86vmproto for X_XF86VidModeGetGammaRampSize, fixes build on cooker Patch3: nvidia-settings-include-xf86vmproto.patch # fix build with 5.7 series kernels (Arch) Patch4: NVIDIA-Linux-x86_64-340.108-kernel-5.7.patch # fix build with 5.8 series kernels (Arch) Patch5: NVIDIA-Linux-x86_64-340.108-kernel-5.8.patch # fix build with 5.9 series kernel (Arch) # (https://github.com/warpme/minimyth2/blob/master/script/nvidia/nvidia-340.108/files/nvidia-340.108-fix-5.9-kernel-compile.patch) Patch6: nvidia-340.108-fix-5.9-kernel-compile.patch # (tmb) fix build with 3.10 series kenels Patch7: kernel-5.10.patch %endif License: Freeware BuildRoot: %{_tmppath}/%{name}-buildroot URL: http://www.nvidia.com/object/unix.html Group: System/Kernel and hardware ExclusiveArch: %{ix86} x86_64 %if !%simple BuildRequires: ImageMagick BuildRequires: gtk+2-devel BuildRequires: libxv-devel BuildRequires: MesaGL-devel BuildRequires: libxxf86vm-devel BuildRequires: vdpau-devel %endif %description Source package of the current NVIDIA proprietary driver. Binary packages are named %{driverpkgname}. %package -n %{driverpkgname} Summary: NVIDIA proprietary X.org driver and libraries for %cards Group: System/Kernel and hardware Requires(post): update-alternatives Requires(postun): update-alternatives Requires: x11-server-common Recommends: %{drivername}-doc-html = %{version} # Proper support for versioned kmod() was added in 2008.1: Requires: kmod(%{modulename}.ko) = %{version} # At least mplayer dlopens libvdpau.so.1, so the software will not pull in # the vdpau library package. We ensure its installation here. Requires: %{_lib}vdpau1 %if !%simple && %mgaversion >= 2 Requires: xserver-abi(videodrv) < %(echo $((%{videodrv_abi}+1))) %endif Conflicts: nvidia-current-cuda-opencl <= 295.59-1 # alternativeszification of /usr/share/nvidia Conflicts: x11-driver-video-nvidia-current < 346.35 %description -n %{driverpkgname} NVIDIA proprietary X.org graphics driver, related libraries and configuration tools for %cards, including the associated Quadro cards. NOTE: You should use XFdrake to configure your NVIDIA card. The correct packages will be automatically installed and configured. If you do not want to use XFdrake, see README.manual-setup. This NVIDIA driver should be used with %cards, including the associated Quadro cards. %package -n dkms-%{drivername} Summary: NVIDIA kernel module for %cards Group: System/Kernel and hardware Requires: dkms >= 2.0.19-37 Requires(post): dkms >= 2.0.19-37 Requires(preun): dkms >= 2.0.19-37 Provides: kmod(%{modulename}.ko) = %{version} # (tmb) prebuilt kmods violates gpl %ifarch %{ix86} %rename nvidia340-kernel-desktop586-latest %endif %rename nvidia340-kernel-desktop-latest %rename nvidia340-kernel-server-latest %description -n dkms-%{drivername} NVIDIA kernel module for %cards. This is to be used with the %{driverpkgname} package. %package -n %{drivername}-devel Summary: NVIDIA OpenGL/CUDA development liraries and headers Group: Development/C Requires: %{driverpkgname} = %{version}-%{release} Requires: %{drivername}-cuda-opencl = %{version}-%{release} Requires: %{_lib}vdpau-devel %description -n %{drivername}-devel NVIDIA OpenGL/CUDA headers for %cards. This package is not required for normal use. %package -n %{drivername}-cuda-opencl Summary: CUDA and OpenCL libraries for NVIDIA proprietary driver Group: System/Kernel and hardware Provides: %{drivername}-cuda = %{version}-%{release} Requires: kmod(%{modulename}.ko) = %{version} Conflicts: nvidia < 1:195.36.15-4 Conflicts: x11-driver-video-nvidia-current <= 295.59-1 %description -n %{drivername}-cuda-opencl Cuda and OpenCL libraries for NVIDIA proprietary driver. This package is not required for normal use, it provides libraries to use NVIDIA cards for High Performance Computing (HPC). # HTML doc splitted off because of size, for live cds: %package -n %{drivername}-doc-html Summary: NVIDIA html documentation (%{drivername}) Group: System/Kernel and hardware Requires: %{driverpkgname} = %{version}-%{release} %description -n %{drivername}-doc-html HTML version of the README.txt file provided in package %{driverpkgname}. %prep # No patches applied when %simple is set %if %simple %setup -q -c -T %else %setup -q -c -T -a 2 -a 3 -a 4 -a 5 cd nvidia-settings-%{version} %patch3 -p1 cd .. %endif sh %{nsource} --extract-only rm -rf %{pkgname}/usr/src/nv/precompiled cd %{pkgname} %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 cd .. %if %simple # for old releases mkdir -p %{pkgname}/kernel %endif # (tmb) nuke nVidia provided dkms.conf as we need our own rm -f %{pkgname}/kernel/dkms.conf rm -f %{pkgname}/kernel/uvm/dkms.conf.fragment # install our own dkms.conf cat > %{pkgname}/kernel/dkms.conf <<EOF PACKAGE_NAME="%{drivername}" PACKAGE_VERSION="%{version}-%{release}" BUILT_MODULE_NAME[0]="nvidia" DEST_MODULE_LOCATION[0]="/kernel/drivers/char/drm" DEST_MODULE_NAME[0]="%{modulename}" MAKE[0]="'make' -j\${parallel_jobs} SYSSRC=\${kernel_source_dir} module" CLEAN="make -f Makefile.kbuild clean" AUTOINSTALL="yes" EOF %if %simple # backward-compatibility randomness if ! [ -e %{pkgname}/kernel/uvm ]; then grep -v uvm %{pkgname}/kernel/dkms.conf > %{pkgname}/kernel/dkms.conf.2 mv -f %{pkgname}/kernel/dkms.conf.2 %{pkgname}/kernel/dkms.conf fi %endif cat > README.install.urpmi <<EOF This driver is for %cards. Use XFdrake to configure X to use the correct NVIDIA driver. Any needed packages will be automatically installed if not already present. 1. Run XFdrake as root. 2. Go to the Graphics Card list. 3. Select your card (it is usually already autoselected). 4. Answer any questions asked and then quit. If you do not want to use XFdrake, see README.manual-setup. EOF cat > README.manual-setup <<EOF This file describes the procedure for the manual installation of this NVIDIA driver package. You can find the instructions for the recommended automatic installation in the file 'README.install.urpmi' in this directory. - Open %{_sysconfdir}/X11/xorg.conf and make the following changes: o Change the Driver to "nvidia" in the Device section o Make the line below the only 'glx' related line in the Module section, adding it if it is not already there: Load "glx" o Remove any 'ModulePath' lines from the Files section - Run "update-alternatives --set gl_conf %{_sysconfdir}/%{drivername}/ld.so.conf" as root. - Run "ldconfig -X" as root. EOF %if !%simple #rm nvidia-settings-%{version}/src/*/*.a %build # The code contains dozens on top of dozens on top of dozens of "false" positives export CFLAGS="%optflags -Wno-error=format-security" export CXXFLAGS="$CFLAGS" export LDFLAGS="%{?ldflags}" %make -C nvidia-settings-%{version}/src/libXNVCtrl %make -C nvidia-settings-%{version} STRIP_CMD=true %make -C nvidia-xconfig-%{version} STRIP_CMD=true %make -C nvidia-modprobe-%{version} STRIP_CMD=true %make -C nvidia-persistenced-%{version} STRIP_CMD=true # %simple %endif %install rm -rf %{buildroot} cd %{pkgname} # menu entry install -d -m755 %{buildroot}%{_datadir}/%{drivername} cat > %{buildroot}%{_datadir}/%{drivername}/mageia-nvidia-settings.desktop <<EOF [Desktop Entry] Name=NVIDIA Display Settings Comment=Configure NVIDIA X driver Exec=%{_bindir}/nvidia-settings Icon=%{drivername}-settings Terminal=false Type=Application Categories=GTK;Settings;HardwareSettings; EOF install -d -m755 %{buildroot}%{_datadir}/applications touch %{buildroot}%{_datadir}/applications/mageia-nvidia-settings.desktop # icons install -d -m755 %{buildroot}%{_iconsdir}/hicolor/{16x16,32x32,48x48}/apps %if !%simple convert nvidia-settings.png -resize 16x16 %{buildroot}%{_iconsdir}/hicolor/16x16/apps/%{drivername}-settings.png convert nvidia-settings.png -resize 32x32 %{buildroot}%{_iconsdir}/hicolor/32x32/apps/%{drivername}-settings.png convert nvidia-settings.png -resize 48x48 %{buildroot}%{_iconsdir}/hicolor/48x48/apps/%{drivername}-settings.png %else # no imagemagick [ -e nvidia-settings.png ] || cp -a usr/share/pixmaps/nvidia-settings.png . install -m644 nvidia-settings.png %{buildroot}%{_iconsdir}/hicolor/48x48/apps/%{drivername}-settings.png %endif error_fatal() { echo "Error: $@." >&2 exit 1 } error_unhandled() { echo "Warning: $@." >&2 echo "Warning: $@." >> warns.log %if !%simple # cause distro builds to fail in case of unhandled files exit 1 %endif } parseparams() { for value in $rest; do local param=$1 [ -n "$param" ] || error_fatal "unhandled parameter $value" shift eval $param=$value [ -n "$value" ] || error_fatal "empty $param" # resolve libdir based on $arch if [ "$param" = "arch" ]; then case "$arch" in NATIVE) nvidia_libdir=%{nvidia_libdir};; COMPAT32) nvidia_libdir=%{nvidia_libdir32};; *) error_fatal "unknown arch $arch" esac fi done } add_to_list() { %if !%simple # on distro builds, only use .manifest for %doc files [ "${2#%doc}" = "${2}" ] && return %endif local list="$1.files" local entry="$2" echo $entry >> $list } install_symlink() { local pkg="$1" local dir="$2" mkdir -p %{buildroot}$dir ln -s $dest %{buildroot}$dir/$file add_to_list $pkg $dir/$file } install_lib_symlink() { local pkg="$1" local dir="$2" case "$file" in libvdpau_*.so) # vdpau drivers => not put into -devel ;; *.so) pkg=nvidia-devel;; esac install_symlink $pkg $dir } install_file_only() { local pkg="$1" local dir="$2" mkdir -p %{buildroot}$dir # replace 0444 with more usual 0644 [ "$perms" = "0444" ] && perms="0644" install -m $perms $file %{buildroot}$dir } install_file() { local pkg="$1" local dir="$2" install_file_only $pkg $dir add_to_list $pkg $dir/$(basename $file) } get_module_dir() { local subdir="$1" case "$subdir" in extensions*) echo %{nvidia_extensionsdir};; drivers/) echo %{nvidia_driversdir};; /) echo %{nvidia_modulesdir};; *) error_unhandled "unhandled module subdir $subdir" echo %{nvidia_modulesdir};; esac } for file in nvidia.files nvidia-devel.files nvidia-cuda.files nvidia-dkms.files nvidia-html.files; do rm -f $file touch $file done # install files according to .manifest cat .manifest | tail -n +9 | while read line; do arch= style= subdir= dest= nvidia_libdir= rest=${line} file=${rest%%%% *} rest=${rest#* } perms=${rest%%%% *} rest=${rest#* } type=${rest%%%% *} [ "${rest#* }" = "$rest" ] && rest= || rest=${rest#* } case "$type" in CUDA_LIB) parseparams arch subdir install_file nvidia-cuda $nvidia_libdir/$subdir ;; CUDA_SYMLINK) parseparams arch subdir dest install_lib_symlink nvidia-cuda $nvidia_libdir/$subdir ;; ENCODEAPI_LIB) parseparams arch subdir install_file nvidia $nvidia_libdir/$subdir ;; ENCODEAPI_LIB_SYMLINK) parseparams arch dest install_lib_symlink nvidia $nvidia_libdir ;; EXPLICIT_PATH) parseparams dest dest="$(echo "$dest" | sed s,%{_datadir}/nvidia,%{nvidia_datadir},)" install_file nvidia $dest ;; NVCUVID_LIB) parseparams arch subdir install_file nvidia-cuda $nvidia_libdir/$subdir ;; NVCUVID_LIB_SYMLINK) parseparams arch dest install_lib_symlink nvidia-cuda $nvidia_libdir ;; NVIFR_LIB) parseparams arch subdir install_file nvidia $nvidia_libdir/$subdir ;; NVIFR_LIB_SYMLINK) parseparams arch dest install_lib_symlink nvidia $nvidia_libdir ;; OPENGL_LIB) parseparams arch install_file nvidia $nvidia_libdir ;; OPENGL_SYMLINK) parseparams arch dest install_lib_symlink nvidia $nvidia_libdir ;; TLS_LIB) parseparams arch style subdir install_file nvidia $nvidia_libdir/$subdir ;; TLS_SYMLINK) parseparams arch style subdir dest install_lib_symlink nvidia $nvidia_libdir/$subdir ;; UTILITY_LIB) # backward-compatibility [ -n "${rest}" ] || rest="NATIVE $rest" parseparams arch subdir install_file nvidia $nvidia_libdir/$subdir ;; UTILITY_LIB_SYMLINK) # backward-compatibility [ "${rest#* }" != "$rest" ] || rest="NATIVE $rest" parseparams arch dest install_lib_symlink nvidia $nvidia_libdir ;; VDPAU_LIB) parseparams arch subdir case $file in *libvdpau_nvidia.so*);; *) continue; esac install_file nvidia $nvidia_libdir/$subdir ;; VDPAU_SYMLINK) parseparams arch subdir dest case $file in *libvdpau_nvidia.so*);; *) continue; esac install_lib_symlink nvidia $nvidia_libdir/$subdir ;; VDPAU_WRAPPER_LIB) parseparams arch subdir case $file in *libvdpau_nvidia.so*);; *) continue; esac install_file nvidia $nvidia_libdir/$subdir ;; VDPAU_WRAPPER_SYMLINK) parseparams arch subdir dest case $file in *libvdpau_nvidia.so*);; *) continue; esac install_lib_symlink nvidia $nvidia_libdir/$subdir ;; XLIB_STATIC_LIB) install_file nvidia-devel %{nvidia_libdir} ;; XLIB_SHARED_LIB) install_file nvidia %{nvidia_libdir} ;; XLIB_SYMLINK) parseparams dest install_lib_symlink nvidia %{nvidia_libdir} ;; LIBGL_LA) # (Anssi) we don't install .la files ;; XMODULE_SHARED_LIB|GLX_MODULE_SHARED_LIB) parseparams subdir install_file nvidia $(get_module_dir $subdir) ;; XMODULE_NEWSYM) # symlink that is created only if it doesn't already # exist (i.e. as part of x11-server) case "$file" in libwfb.so) continue ;; *) error_unhandled "unknown XMODULE_NEWSYM type file $file, skipped" continue esac parseparams subdir dest install_symlink nvidia $(get_module_dir $subdir) ;; XMODULE_SYMLINK|GLX_MODULE_SYMLINK) parseparams subdir dest install_symlink nvidia $(get_module_dir $subdir) ;; VDPAU_HEADER) continue parseparams subdir install_file_only nvidia-devel %{_includedir}/%{drivername}/$subdir ;; OPENGL_HEADER|CUDA_HEADER) parseparams subdir install_file_only nvidia-devel %{_includedir}/%{drivername}/$subdir ;; DOCUMENTATION) parseparams subdir case $subdir in */html) add_to_list nvidia-html "%%doc %{pkgname}/$file" continue ;; */include/*) continue ;; esac case $file in *XF86Config*|*nvidia-settings.png) continue;; esac add_to_list nvidia "%%doc %{pkgname}/$file" ;; MANPAGE|NVIDIA_MODPROBE_MANPAGE) parseparams subdir case "$file" in *nvidia-installer*) # not installed continue ;; *nvidia-settings*|*nvidia-xconfig*|*nvidia-modprobe*|*nvidia-persistenced*) %if !%simple # installed separately below continue %endif ;; *nvidia-smi*|*nvidia-cuda-mps-control*) # ok ;; *) error_unhandled "skipped unknown man page $(basename $file)" continue esac install_file_only nvidia %{_mandir}/$subdir ;; UTILITY_BINARY) case "$file" in *nvidia-settings|*nvidia-xconfig|*nvidia-persistenced) %if !%simple # not installed, we install our own copy continue %endif ;; *nvidia-smi|*nvidia-bug-report.sh|*nvidia-debugdump) # ok ;; *nvidia-cuda-mps-control|*nvidia-cuda-mps-server) # ok ;; *) error_unhandled "unknown binary $(basename $file) will be installed to %{nvidia_bindir}/$(basename $file)" ;; esac install_file nvidia %{nvidia_bindir} ;; UTILITY_BIN_SYMLINK) case $file in nvidia-uninstall) continue;; esac parseparams dest install_symlink nvidia %{nvidia_bindir} ;; NVIDIA_MODPROBE) # A suid-root tool (GPLv2) used as fallback for loading the module and # creating the device nodes in case the driver component is running as # a non-root user (e.g. a CUDA application). While the module is automatically # loaded by udev rules, the device nodes are not automatically created # like with regular drivers and therefore this tool is installed on # Mageia as well, at least for now. # We install our self-compiled version in non-simple mode %if %simple install_file nvidia %{nvidia_bindir} %endif ;; INSTALLER_BINARY) # not installed ;; KERNEL_MODULE_SRC) install_file nvidia-dkms %{_usrsrc}/%{drivername}-%{version}-%{release} ;; CUDA_ICD) # in theory this should go to the cuda subpackage, but it goes into the main package # as this avoids one broken symlink and it is small enough to not cause space issues install_file nvidia %{_sysconfdir}/%{drivername} ;; APPLICATION_PROFILE) parseparams subdir install_file nvidia %{nvidia_datadir}/$subdir ;; DOT_DESKTOP) # we provide our own for now ;; UVM_MODULE_SRC) install_file nvidia-dkms %{_usrsrc}/%{drivername}-%{version}-%{release}/uvm ;; *) error_unhandled "file $(basename $file) of unknown type $type will be skipped" esac done [ -z "$warnings" ] || echo "Please inform Anssi Hannula <anssi@mageia.org> or http://bugs.mageia.org/ of the above warnings." >> warns.log %if %simple find %{buildroot}%{_libdir} %{buildroot}%{_prefix}/lib -type d | while read dir; do dir=${dir#%{buildroot}} echo "$dir" | grep -q nvidia && echo "%%dir $dir" >> nvidia.files done [ -d %{buildroot}%{_includedir}/%{drivername} ] && echo "%{_includedir}/%{drivername}" >> nvidia-devel.files # for old releases in %%simple mode if ! [ -e %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}/dkms.conf ]; then install -m644 kernel/dkms.conf %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}/dkms.conf fi %endif %if !%simple # confirm SONAME; if something else than libvdpau_nvidia.so or libvdpau_nvidia.so.1, adapt .spec as needed: [ "$(objdump -p %{buildroot}%{nvidia_libdir}/vdpau/libvdpau_nvidia.so.%{version} | grep SONAME | gawk '{ print $2 }')" = "libvdpau_nvidia.so.1" ] rm -f %{buildroot}%{nvidia_libdir}/vdpau/libvdpau_nvidia.so.1 rm -f %{buildroot}%{nvidia_libdir32}/vdpau/libvdpau_nvidia.so.1 %endif # vdpau alternative symlink install -d -m755 %{buildroot}%{_libdir}/vdpau touch %{buildroot}%{_libdir}/vdpau/libvdpau_nvidia.so.1 %ifarch %{biarches} install -d -m755 %{buildroot}%{_prefix}/lib/vdpau touch %{buildroot}%{_prefix}/lib/vdpau/libvdpau_nvidia.so.1 %endif %if !%simple # self-built binaries install -m755 ../nvidia-settings-%{version}/src/_out/*/nvidia-settings %{buildroot}%{nvidia_bindir} install -m755 ../nvidia-xconfig-%{version}/_out/*/nvidia-xconfig %{buildroot}%{nvidia_bindir} install -m755 ../nvidia-persistenced-%{version}/_out/*/nvidia-persistenced %{buildroot}%{nvidia_bindir} install -m4755 ../nvidia-modprobe-%{version}/_out/*/nvidia-modprobe %{buildroot}%{nvidia_bindir} %endif # binary alternatives install -d -m755 %{buildroot}%{_bindir} touch %{buildroot}%{_bindir}/nvidia-debugdump touch %{buildroot}%{_bindir}/nvidia-settings touch %{buildroot}%{_bindir}/nvidia-smi touch %{buildroot}%{_bindir}/nvidia-xconfig touch %{buildroot}%{_bindir}/nvidia-bug-report.sh touch %{buildroot}%{_bindir}/nvidia-modprobe touch %{buildroot}%{_bindir}/nvidia-persistenced touch %{buildroot}%{_bindir}/nvidia-cuda-mps-control touch %{buildroot}%{_bindir}/nvidia-cuda-mps-server # rpmlint: chmod 0755 %{buildroot}%{_bindir}/* # datadir alternative mkdir %{buildroot}%{_datadir}/nvidia %if !%simple # install man pages install -m644 ../nvidia-settings-%{version}/doc/_out/*/nvidia-settings.1 %{buildroot}%{_mandir}/man1 install -m644 ../nvidia-xconfig-%{version}/_out/*/nvidia-xconfig.1 %{buildroot}%{_mandir}/man1 install -m644 ../nvidia-modprobe-%{version}/_out/*/nvidia-modprobe.1 %{buildroot}%{_mandir}/man1 install -m644 ../nvidia-persistenced-%{version}/_out/*/nvidia-persistenced.1 %{buildroot}%{_mandir}/man1 %endif # bug #41638 - whatis entries of nvidia man pages appear wrong gunzip %{buildroot}%{_mandir}/man1/*.gz sed -r -i '/^nvidia\\-[a-z]+ \\- NVIDIA/s,^nvidia\\-,nvidia-,' %{buildroot}%{_mandir}/man1/*.1 cd %{buildroot}%{_mandir}/man1 rename nvidia alt-%{drivername} * cd - touch %{buildroot}%{_mandir}/man1/nvidia-xconfig.1%{_extension} touch %{buildroot}%{_mandir}/man1/nvidia-settings.1%{_extension} touch %{buildroot}%{_mandir}/man1/nvidia-modprobe.1%{_extension} touch %{buildroot}%{_mandir}/man1/nvidia-persistenced.1%{_extension} touch %{buildroot}%{_mandir}/man1/nvidia-smi.1%{_extension} touch %{buildroot}%{_mandir}/man1/nvidia-cuda-mps-control.1%{_extension} # cuda nvidia.icd install -d -m755 %{buildroot}%{_sysconfdir}/OpenCL/vendors touch %{buildroot}%{_sysconfdir}/OpenCL/vendors/nvidia.icd # ld.so.conf install -d -m755 %{buildroot}%{_sysconfdir}/%{drivername} echo "%{nvidia_libdir}" > %{buildroot}%{_sysconfdir}/%{drivername}/ld.so.conf %ifarch %{biarches} echo "%{nvidia_libdir32}" >> %{buildroot}%{_sysconfdir}/%{drivername}/ld.so.conf %endif install -d -m755 %{buildroot}%{_sysconfdir}/ld.so.conf.d touch %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL.conf # modprobe.conf install -d -m755 %{buildroot}%{_sysconfdir}/modprobe.d touch %{buildroot}%{_sysconfdir}/modprobe.d/display-driver.conf echo "install nvidia /sbin/modprobe %{modulename} \$CMDLINE_OPTS" > %{buildroot}%{_sysconfdir}/%{drivername}/modprobe.conf # xinit script install -d -m755 %{buildroot}%{_sysconfdir}/%{drivername} cat > %{buildroot}%{_sysconfdir}/%{drivername}/nvidia-settings.xinit <<EOF # to be sourced # # Do not modify this file; the changes will be overwritten. # If you want to disable automatic configuration loading, create # /etc/sysconfig/nvidia-settings with this line: LOAD_NVIDIA_SETTINGS="no" # LOAD_NVIDIA_SETTINGS="yes" [ -f %{_sysconfdir}/sysconfig/nvidia-settings ] && . %{_sysconfdir}/sysconfig/nvidia-settings [ "\$LOAD_NVIDIA_SETTINGS" = "yes" ] && %{_bindir}/nvidia-settings --load-config-only EOF chmod 0755 %{buildroot}%{_sysconfdir}/%{drivername}/nvidia-settings.xinit install -d -m755 %{buildroot}%{_sysconfdir}/X11/xinit.d touch %{buildroot}%{_sysconfdir}/X11/xinit.d/nvidia-settings.xinit # install ldetect-lst pcitable files for backports # local version of merge2pcitable.pl:read_nvidia_readme: section="nothingyet" set +x [ -e README.txt ] || cp -a usr/share/doc/README.txt . cat README.txt | while read line; do if [ "$section" = "nothingyet" ] || [ "$section" = "midspace" ]; then if echo "$line" | grep -Pq "^\s*NVIDIA GPU product\s+Device PCI ID"; then section="data" elif [ "$section" = "midspace" ] && echo "$line" | grep -Pq "legacy"; then break fi continue fi if [ "$section" = "data" ] && echo "$line" | grep -Pq "^\s*$"; then section="midspace" continue fi echo "$line" | grep -Pq "^\s*-+[\s-]+$" && continue id=$(echo "$line" | sed -nre 's,^\s*.+?\s\s+0x(....).*$,\1,p' | tr '[:upper:]' '[:lower:]') id2=$(echo "$line" | sed -nre 's,^\s*.+?\s\s+0x(....)\s0x(....).*$,\2,p' | tr '[:upper:]' '[:lower:]') subsysid= # not useful as of 2013-05 -Anssi #[ -n "$id2" ] && subsysid=" 0x10de 0x$id2" echo "0x10de 0x$id$subsysid \"Card:%{ldetect_cards_name}\"" done | sort -u > pcitable.nvidia.lst set -x [ $(wc -l pcitable.nvidia.lst | cut -f1 -d" ") -gt 200 ] %if "%{ldetect_cards_name}" != "" install -d -m755 %{buildroot}%{_datadir}/ldetect-lst/pcitable.d gzip -c pcitable.nvidia.lst > %{buildroot}%{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz %endif export EXCLUDE_FROM_STRIP="$(find %{buildroot} -type f \! -name nvidia-settings \! -name nvidia-xconfig \! -name nvidia-modprobe \! -name nvidia-persistenced)" %post -n %{driverpkgname} # XFdrake used to generate an nvidia.conf file [ -L %{_sysconfdir}/modprobe.d/nvidia.conf ] || rm -f %{_sysconfdir}/modprobe.d/nvidia.conf current_glconf="$(readlink -e %{_sysconfdir}/ld.so.conf.d/GL.conf)" # owned by libvdpau1, created in case libvdpau1 is installed only just after # this package mkdir -p %{_libdir}/vdpau %{_sbindir}/update-alternatives \ --install %{_sysconfdir}/ld.so.conf.d/GL.conf gl_conf %{_sysconfdir}/%{drivername}/ld.so.conf %{priority} \ --slave %{_mandir}/man1/nvidia-settings.1%{_extension} man_nvidiasettings%{_extension} %{_mandir}/man1/alt-%{drivername}-settings.1%{_extension} \ --slave %{_mandir}/man1/nvidia-xconfig.1%{_extension} man_nvidiaxconfig%{_extension} %{_mandir}/man1/alt-%{drivername}-xconfig.1%{_extension} \ --slave %{_mandir}/man1/nvidia-smi.1%{_extension} nvidia-smi.1%{_extension} %{_mandir}/man1/alt-%{drivername}-smi.1%{_extension} \ --slave %{_mandir}/man1/nvidia-cuda-mps-control.1%{_extension} nvidia-cuda-mps-control.1%{_extension} %{_mandir}/man1/alt-%{drivername}-cuda-mps-control.1%{_extension} \ --slave %{_datadir}/applications/mageia-nvidia-settings.desktop nvidia_desktop %{_datadir}/%{drivername}/mageia-nvidia-settings.desktop \ --slave %{_bindir}/nvidia-settings nvidia_settings %{nvidia_bindir}/nvidia-settings \ --slave %{_bindir}/nvidia-smi nvidia_smi %{nvidia_bindir}/nvidia-smi \ --slave %{_bindir}/nvidia-xconfig nvidia_xconfig %{nvidia_bindir}/nvidia-xconfig \ --slave %{_bindir}/nvidia-debugdump nvidia-debugdump %{nvidia_bindir}/nvidia-debugdump \ --slave %{_bindir}/nvidia-bug-report.sh nvidia_bug_report %{nvidia_bindir}/nvidia-bug-report.sh \ --slave %{_bindir}/nvidia-cuda-mps-control nvidia-cuda-mps-control %{nvidia_bindir}/nvidia-cuda-mps-control \ --slave %{_bindir}/nvidia-cuda-mps-server nvidia-cuda-mps-server %{nvidia_bindir}/nvidia-cuda-mps-server \ --slave %{_bindir}/nvidia-modprobe nvidia-modprobe %{nvidia_bindir}/nvidia-modprobe \ --slave %{_bindir}/nvidia-persistenced nvidia-persistenced %{nvidia_bindir}/nvidia-persistenced \ --slave %{_sysconfdir}/X11/xinit.d/nvidia-settings.xinit nvidia-settings.xinit %{_sysconfdir}/%{drivername}/nvidia-settings.xinit \ --slave %{_libdir}/vdpau/libvdpau_nvidia.so.1 %{_lib}vdpau_nvidia.so.1 %{nvidia_libdir}/vdpau/libvdpau_nvidia.so.%{version} \ --slave %{_sysconfdir}/modprobe.d/display-driver.conf display-driver.conf %{_sysconfdir}/%{drivername}/modprobe.conf \ --slave %{_sysconfdir}/OpenCL/vendors/nvidia.icd nvidia.icd %{_sysconfdir}/%{drivername}/nvidia.icd \ %ifarch %{biarches} --slave %{_prefix}/lib/vdpau/libvdpau_nvidia.so.1 libvdpau_nvidia.so.1 %{nvidia_libdir32}/vdpau/libvdpau_nvidia.so.%{version} \ %endif --slave %{xorg_extra_modules} xorg_extra_modules %{nvidia_extensionsdir} \ --slave %{_datadir}/nvidia nvidia_datadir %{nvidia_datadir} \ if [ "${current_glconf}" = "%{_sysconfdir}/nvidia97xx/ld.so.conf" ]; then # Adapt for the renaming of the driver. X.org config still has the old ModulePaths # but they do not matter as we are using alternatives for libglx.so now. %{_sbindir}/update-alternatives --set gl_conf %{_sysconfdir}/%{drivername}/ld.so.conf fi # explicit /sbin/ldconfig due to alternatives /sbin/ldconfig -X %if "%{ldetect_cards_name}" != "" [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || : %endif %postun -n %{driverpkgname} if [ ! -f %{_sysconfdir}/%{drivername}/ld.so.conf ]; then %{_sbindir}/update-alternatives --remove gl_conf %{_sysconfdir}/%{drivername}/ld.so.conf fi # explicit /sbin/ldconfig due to alternatives /sbin/ldconfig -X %if "%{ldetect_cards_name}" != "" [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || : %endif %post -n %{drivername}-cuda-opencl # explicit /sbin/ldconfig due to a non-standard library directory /sbin/ldconfig -X %post -n %{drivername}-devel # explicit /sbin/ldconfig due to a non-standard library directory (mga#14462) /sbin/ldconfig -X %post -n dkms-%{drivername} /usr/sbin/dkms --rpm_safe_upgrade add -m %{drivername} -v %{version}-%{release} if [ -z "$DURING_INSTALL" ] ; then /usr/sbin/dkms --rpm_safe_upgrade build -m %{drivername} -v %{version}-%{release} && /usr/sbin/dkms --rpm_safe_upgrade install -m %{drivername} -v %{version}-%{release} --force /usr/bin/dracut -f fi # rmmod any old driver if present and not in use (e.g. by X) rmmod nvidia > /dev/null 2>&1 || true %preun -n dkms-%{drivername} /usr/sbin/dkms --rpm_safe_upgrade remove -m %{drivername} -v %{version}-%{release} --all # rmmod any old driver if present and not in use (e.g. by X) rmmod nvidia > /dev/null 2>&1 || true %clean rm -rf %{buildroot} %files -n %{driverpkgname} -f %{pkgname}/nvidia.files %defattr(-,root,root) # other documentation files are listed in nvidia.files %doc README.install.urpmi README.manual-setup %if "%{ldetect_cards_name}" != "" %{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz %endif # ld.so.conf, modprobe.conf, xinit %ghost %{_sysconfdir}/ld.so.conf.d/GL.conf %ghost %{_sysconfdir}/X11/xinit.d/nvidia-settings.xinit %ghost %{_sysconfdir}/modprobe.d/display-driver.conf %dir %{_sysconfdir}/%{drivername} %{_sysconfdir}/%{drivername}/modprobe.conf %{_sysconfdir}/%{drivername}/ld.so.conf %{_sysconfdir}/%{drivername}/nvidia-settings.xinit %ghost %{_datadir}/nvidia %if !%simple %{_sysconfdir}/%{drivername}/nvidia.icd %dir %{nvidia_datadir} %{nvidia_datadir}/nvidia-application-profiles-%{version}-rc %{nvidia_datadir}/nvidia-application-profiles-%{version}-key-documentation %{nvidia_datadir}/monitoring.conf %{nvidia_datadir}/pci.ids %endif %dir %{_sysconfdir}/OpenCL %dir %{_sysconfdir}/OpenCL/vendors %ghost %{_sysconfdir}/OpenCL/vendors/nvidia.icd %ghost %{_bindir}/nvidia-debugdump %ghost %{_bindir}/nvidia-settings %ghost %{_bindir}/nvidia-smi %ghost %{_bindir}/nvidia-xconfig %ghost %{_bindir}/nvidia-modprobe %ghost %{_bindir}/nvidia-persistenced %ghost %{_bindir}/nvidia-bug-report.sh %ghost %{_bindir}/nvidia-cuda-mps-control %ghost %{_bindir}/nvidia-cuda-mps-server %if !%simple %dir %{nvidia_bindir} %{nvidia_bindir}/nvidia-debugdump %{nvidia_bindir}/nvidia-settings %{nvidia_bindir}/nvidia-smi %{nvidia_bindir}/nvidia-xconfig %{nvidia_bindir}/nvidia-modprobe %{nvidia_bindir}/nvidia-persistenced %{nvidia_bindir}/nvidia-bug-report.sh %{nvidia_bindir}/nvidia-cuda-mps-control %{nvidia_bindir}/nvidia-cuda-mps-server %endif %ghost %{_mandir}/man1/nvidia-xconfig.1%{_extension} %ghost %{_mandir}/man1/nvidia-settings.1%{_extension} %ghost %{_mandir}/man1/nvidia-modprobe.1%{_extension} %ghost %{_mandir}/man1/nvidia-persistenced.1%{_extension} %ghost %{_mandir}/man1/nvidia-smi.1%{_extension} %ghost %{_mandir}/man1/nvidia-cuda-mps-control.1%{_extension} %if !%simple %{_mandir}/man1/alt-%{drivername}-xconfig.1* %{_mandir}/man1/alt-%{drivername}-settings.1* %{_mandir}/man1/alt-%{drivername}-modprobe.1* %{_mandir}/man1/alt-%{drivername}-persistenced.1* %{_mandir}/man1/alt-%{drivername}-smi.1* %{_mandir}/man1/alt-%{drivername}-cuda-mps-control.1* %else %{_mandir}/man1/alt-%{drivername}-* %endif %ghost %{_datadir}/applications/mageia-nvidia-settings.desktop %dir %{_datadir}/%{drivername} %{_datadir}/%{drivername}/mageia-nvidia-settings.desktop %if !%simple %{_iconsdir}/hicolor/16x16/apps/%{drivername}-settings.png %{_iconsdir}/hicolor/32x32/apps/%{drivername}-settings.png %endif %{_iconsdir}/hicolor/48x48/apps/%{drivername}-settings.png %if !%simple %dir %{nvidia_libdir} %dir %{nvidia_libdir}/tls %dir %{nvidia_libdir}/vdpau %{nvidia_libdir}/libGL.so.%{version} %{nvidia_libdir}/libnvidia-cfg.so.%{version} %{nvidia_libdir}/libnvidia-glcore.so.%{version} %{nvidia_libdir}/libnvidia-tls.so.%{version} %{nvidia_libdir}/libEGL.so.1 %{nvidia_libdir}/libEGL.so.%{version} %{nvidia_libdir}/libGL.so.1 %{nvidia_libdir}/libGLESv1_CM.so.1 %{nvidia_libdir}/libGLESv1_CM.so.%{version} %{nvidia_libdir}/libGLESv2.so.2 %{nvidia_libdir}/libGLESv2.so.%{version} %{nvidia_libdir}/libnvidia-cfg.so.1 %{nvidia_libdir}/libnvidia-eglcore.so.%{version} %{nvidia_libdir}/libnvidia-fbc.so.1 %{nvidia_libdir}/libnvidia-fbc.so.%{version} %{nvidia_libdir}/libnvidia-glsi.so.%{version} %{nvidia_libdir}/libnvidia-ifr.so.1 %{nvidia_libdir}/libnvidia-ifr.so.%{version} %{nvidia_libdir}/libnvidia-ml.so.1 %{nvidia_libdir}/libnvidia-ml.so.%{version} %{nvidia_libdir}/libvdpau_nvidia.so %{nvidia_libdir}/tls/libnvidia-tls.so.%{version} %{nvidia_libdir}/vdpau/libvdpau_nvidia.so.%{version} %ifarch %{biarches} %dir %{nvidia_libdir32} %dir %{nvidia_libdir32}/tls %dir %{nvidia_libdir32}/vdpau %{nvidia_libdir32}/libEGL.so.1 %{nvidia_libdir32}/libEGL.so.%{version} %{nvidia_libdir32}/libGL.so.1 %{nvidia_libdir32}/libGL.so.%{version} %{nvidia_libdir32}/libGLESv1_CM.so.1 %{nvidia_libdir32}/libGLESv1_CM.so.%{version} %{nvidia_libdir32}/libGLESv2.so.2 %{nvidia_libdir32}/libGLESv2.so.%{version} %{nvidia_libdir32}/libnvidia-eglcore.so.%{version} %{nvidia_libdir32}/libnvidia-fbc.so.1 %{nvidia_libdir32}/libnvidia-fbc.so.%{version} %{nvidia_libdir32}/libnvidia-glcore.so.%{version} %{nvidia_libdir32}/libnvidia-glsi.so.%{version} %{nvidia_libdir32}/libnvidia-ifr.so.1 %{nvidia_libdir32}/libnvidia-ifr.so.%{version} %{nvidia_libdir32}/libnvidia-ml.so.1 %{nvidia_libdir32}/libnvidia-ml.so.%{version} %{nvidia_libdir32}/libnvidia-tls.so.%{version} %{nvidia_libdir32}/libvdpau_nvidia.so %{nvidia_libdir32}/tls/libnvidia-tls.so.%{version} %{nvidia_libdir32}/vdpau/libvdpau_nvidia.so.%{version} %endif # %simple %endif %ghost %{_libdir}/vdpau/libvdpau_nvidia.so.1 %ifarch %{biarches} # avoid unowned directory %dir %{_prefix}/lib/vdpau %ghost %{_prefix}/lib/vdpau/libvdpau_nvidia.so.1 %endif %if !%simple %dir %{nvidia_modulesdir} %{nvidia_modulesdir}/libnvidia-wfb.so.1 %endif %if !%simple %{nvidia_modulesdir}/libnvidia-wfb.so.%{version} %endif %if !%simple %{nvidia_extensionsdir}/libglx.so.%{version} %{nvidia_extensionsdir}/libglx.so %endif %if !%simple %{nvidia_driversdir}/nvidia_drv.so %endif %if %simple %files -n %{drivername}-devel -f %pkgname/nvidia-devel.files %else %files -n %{drivername}-devel %defattr(-,root,root) %{_includedir}/%{drivername} %{nvidia_libdir}/libEGL.so %{nvidia_libdir}/libGL.so %{nvidia_libdir}/libGLESv1_CM.so %{nvidia_libdir}/libGLESv2.so %{nvidia_libdir}/libOpenCL.so %{nvidia_libdir}/libcuda.so %{nvidia_libdir}/libnvcuvid.so %{nvidia_libdir}/libnvidia-cfg.so %{nvidia_libdir}/libnvidia-encode.so %{nvidia_libdir}/libnvidia-fbc.so %{nvidia_libdir}/libnvidia-ifr.so %{nvidia_libdir}/libnvidia-ml.so %ifarch %{biarches} %{nvidia_libdir32}/libEGL.so %{nvidia_libdir32}/libGL.so %{nvidia_libdir32}/libGLESv1_CM.so %{nvidia_libdir32}/libGLESv2.so %{nvidia_libdir32}/libOpenCL.so %{nvidia_libdir32}/libcuda.so %{nvidia_libdir32}/libnvcuvid.so %{nvidia_libdir32}/libnvidia-encode.so %{nvidia_libdir32}/libnvidia-fbc.so %{nvidia_libdir32}/libnvidia-ifr.so %{nvidia_libdir32}/libnvidia-ml.so %endif %endif %files -n dkms-%{drivername} %defattr(-,root,root) %doc %{pkgname}/LICENSE %{_usrsrc}/%{drivername}-%{version}-%{release} %files -n %{drivername}-doc-html -f %pkgname/nvidia-html.files %defattr(-,root,root) %if %simple %files -n %{drivername}-cuda-opencl -f %pkgname/nvidia-cuda.files %else %files -n %{drivername}-cuda-opencl %defattr(-,root,root) # Do not preferably add any alternativeszificated binaries here, # they cause broken symlinks. %{nvidia_libdir}/libOpenCL.so.1.0.0 %{nvidia_libdir}/libOpenCL.so.1.0 %{nvidia_libdir}/libOpenCL.so.1 %{nvidia_libdir}/libnvcuvid.so.%{version} %{nvidia_libdir}/libnvcuvid.so.1 %{nvidia_libdir}/libnvidia-compiler.so.%{version} %{nvidia_libdir}/libnvidia-encode.so.1 %{nvidia_libdir}/libnvidia-encode.so.%{version} %{nvidia_libdir}/libnvidia-opencl.so.1 %{nvidia_libdir}/libnvidia-opencl.so.%{version} %{nvidia_libdir}/libcuda.so.%{version} %{nvidia_libdir}/libcuda.so.1 %ifarch %{biarches} %{nvidia_libdir32}/libOpenCL.so.1.0.0 %{nvidia_libdir32}/libOpenCL.so.1.0 %{nvidia_libdir32}/libOpenCL.so.1 %{nvidia_libdir32}/libnvcuvid.so.%{version} %{nvidia_libdir32}/libnvcuvid.so.1 %{nvidia_libdir32}/libnvidia-compiler.so.%{version} %{nvidia_libdir32}/libnvidia-encode.so.1 %{nvidia_libdir32}/libnvidia-encode.so.%{version} %{nvidia_libdir32}/libnvidia-opencl.so.1 %{nvidia_libdir32}/libnvidia-opencl.so.%{version} %{nvidia_libdir32}/libcuda.so.%{version} %{nvidia_libdir32}/libcuda.so.1 %endif %endif %changelog * Fri Jan 15 2021 tmb <tmb> 340.108-9.mga7 + Revision: 1671949 - fix build with kernel 5.10 - sync fixes for kernel 5.8 and 5.9 from Cauldron - add support for 5.6 series kernels - fix build with kernel 5.5 series - update to 340.108 (official kernel 5.4 support) * drop obsolete patches - fix build with 5.4 series kernels - fix build with 5.3 series kernels + martinw <martinw> - fix build with 5.7 series kernels * Sat May 11 2019 tmb <tmb> 340.107-9.mga7.nonfree + Revision: 1397193 - recreate initrd of running kernel so the new module gets added in the initrd - update kernel 5.0 and 5.1 buildfixes to the ones provided by LibreELEC * Sun Apr 28 2019 tmb <tmb> 340.107-8.mga7.nonfree + Revision: 1395814 - fix up dkms.conf for uvm removal * Sun Apr 28 2019 tmb <tmb> 340.107-7.mga7.nonfree + Revision: 1395810 - stop installing the uvm module, its not supported with newer kernels * Mon Apr 22 2019 tmb <tmb> 340.107-6.mga7.nonfree + Revision: 1394660 - fix build with 5.1 series kernels * Wed Mar 06 2019 tmb <tmb> 340.107-5.mga7.nonfree + Revision: 1372025 - fix build with 5.0 series kernels (arch) * Fri Dec 28 2018 tmb <tmb> 340.107-4.mga7.nonfree + Revision: 1345461 - dont try to check the desktop file, its a ghost for update-alternatives - rebuild for missing packages + umeabot <umeabot> - Mageia 7 Mass Rebuild * Mon Jul 30 2018 tmb <tmb> 340.107-2.mga7.nonfree + Revision: 1245896 - rebuild with gcc 8.2 * Wed Jun 06 2018 tmb <tmb> 340.107-1.mga7.nonfree + Revision: 1235032 - update to 340.107 (xorg 1.20 support) * Wed Jan 17 2018 tmb <tmb> 340.106-1.mga7.nonfree + Revision: 1194016 - update to 340.106 * Mon Nov 13 2017 tmb <tmb> 340.104-3.mga7.nonfree + Revision: 1177218 - fix build with 4.14 series kernels * Sun Oct 15 2017 tmb <tmb> 340.104-2.mga7.nonfree + Revision: 1172060 - add buildfix for 4.11+ series kernels (ARCH) * Thu Sep 21 2017 tmb <tmb> 340.104-1.mga7.nonfree + Revision: 1156783 - updae to 304.104 * Sat Sep 02 2017 tmb <tmb> 340.102-7.mga7.nonfree + Revision: 1150675 - rebuild with new gcc/binutils * Sat Aug 05 2017 tmb <tmb> 340.102-6.mga7.nonfree + Revision: 1135111 - add support for kernel 4.12 (from rpmfusion) * Thu Mar 30 2017 tmb <tmb> 340.102-5.mga6.nonfree + Revision: 1095415 - fix dkms post script * Thu Mar 30 2017 tmb <tmb> 340.102-4.mga6.nonfree + Revision: 1095386 - classic install: do add the driver to dkms list or it wont be built on boot * Thu Mar 30 2017 tmb <tmb> 340.102-3.mga6.nonfree + Revision: 1095366 - do trigger dkms build on dkms package update (now where is that brown paper bag...) * Thu Mar 30 2017 tmb <tmb> 340.102-2.mga6.nonfree + Revision: 1095305 - dont trigger dkms build during classical install * Tue Feb 14 2017 tmb <tmb> 340.102-1.mga6.nonfree + Revision: 1086189 - update to 340.102 * Mon Jan 02 2017 tmb <tmb> 340.101-2.mga6.nonfree + Revision: 1079502 - non-modesetting drivers have to use the DRM flag DRIVER_LEGACY on kernel 4.9+ * Wed Dec 14 2016 tmb <tmb> 340.101-1.mga6.nonfree + Revision: 1075125 - update to 340.101 (xorg 1.19 support) * Tue Nov 29 2016 ennael <ennael> 340.98-2.mga6.nonfree + Revision: 1071057 - rebuild for x11-server 1.19.0 * Fri Oct 07 2016 tmb <tmb> 340.98-1.mga6.nonfree + Revision: 1059356 - update to 340.98 * drop obsolete kernel 4.6+ buildfix * Sat Jul 23 2016 tmb <tmb> 340.96-38.mga6.nonfree + Revision: 1043457 - rebuild for xorg-server 1.18.4 * Wed Jun 15 2016 tmb <tmb> 340.96-37.mga6.nonfree + Revision: 1021597 - hook into dkms parallel build support * Mon May 30 2016 tmb <tmb> 340.96-36.mga6.nonfree + Revision: 1019455 - rebuild with gcc 5.4 * Sat May 07 2016 tmb <tmb> 340.96-35.mga6.nonfree + Revision: 1010187 - obsolete prebuilt kmods as they violate GPL * Thu Apr 21 2016 tmb <tmb> 340.96-6.mga6.nonfree + Revision: 1004159 - add missing 4.6 fixes for page_cache_release() changes * Thu Apr 21 2016 tmb <tmb> 340.96-5.mga6.nonfree + Revision: 1003996 - fix build with kernel 4.6 * Fri Jan 29 2016 luigiwalser <luigiwalser> 340.96-4.mga6.nonfree + Revision: 928602 - do not require specific version of update-alternatives * Sun Jan 17 2016 tmb <tmb> 340.96-3.mga6.nonfree + Revision: 925019 - nvidia340-devel: run ldconfig on post due to a non-standard library directory (mga#14462) * Sat Dec 05 2015 tmb <tmb> 340.96-2.mga6.nonfree + Revision: 908293 - rebuild with gcc 5.3 final * Wed Nov 18 2015 tmb <tmb> 340.96-1.mga6.nonfree + Revision: 904032 - fix filelists - update to 340.96 (supports xorg 1.18) - update to 340.93 (CVE-2015-5950) + tv <tv> - rebuild for new xserver * Fri Aug 21 2015 tmb <tmb> 340.76-5.mga6.nonfree + Revision: 867079 - rebuild for new gcc * Thu Aug 20 2015 tmb <tmb> 340.76-4.mga6 + Revision: 866765 - rebuild with gcc 5.2.1 * Tue Aug 18 2015 tmb <tmb> 340.76-3.mga6.nonfree + Revision: 865507 - rebuild for new glibc * Tue Jul 07 2015 tmb <tmb> 340.76-2.mga6.nonfree + Revision: 852418 - fix build with 4.0+ series kernels * Tue Feb 03 2015 tmb <tmb> 340.76-1.mga5.nonfree + Revision: 813121 - update to 340.76 (bugfix release) + anssi <anssi> - rename spec file for nvidia340 legacy series - adapt package for legacy nvidia340 series - alternativeszificate /usr/share/nvidia - Branch nvidia340 legacy series driver * Fri Dec 19 2014 tmb <tmb> 340.65-3.mga5.nonfree + Revision: 804238 - really fix drm trace with kernel 3.18 (mga#14769, mga#14832) * Thu Dec 18 2014 tmb <tmb> 340.65-2.mga5.nonfree + Revision: 804013 - fix drm trace with kernel 3.18 (mga#14769, mga#14832) * Wed Dec 10 2014 tmb <tmb> 340.65-1.mga5.nonfree + Revision: 802622 - update to 340.65 (improved kernel and xorg support) - supports X.Org xserver ABI 19 * Thu Nov 13 2014 tmb <tmb> 340.58-1.mga5.nonfree + Revision: 796840 - update to 340.58 * Fri Oct 31 2014 tmb <tmb> 340.46-2.mga5.nonfree + Revision: 795041 - filter out 32bit requires on x86_64 * Fri Oct 03 2014 tmb <tmb> 340.46-1.mga5.nonfree + Revision: 736478 - update to 340.46 from long lived branch (bugfixes) * Wed Sep 24 2014 tmb <tmb> 340.32-3.mga5.nonfree + Revision: 723397 - adapt to new kmod provides * Sun Sep 21 2014 tmb <tmb> 340.32-2.mga5.nonfree + Revision: 701446 - fix up spec conversion mess + tv <tv> - auto convert _exclude_files_from_autoreq - use %%global for req/prov exclude - autoconvert to new prov/req excludes - s/uggests:/Recommends:/ * Fri Aug 29 2014 tmb <tmb> 340.32-1.mga5.nonfree + Revision: 669292 - update to 340.32 * Mon Jun 09 2014 tv <tv> 337.25-3.mga5.nonfree + Revision: 635084 - submit to core/release * Fri Jun 06 2014 tv <tv> 337.25-2.mga5 + Revision: 633732 - rebuild for new xserver RC * Sat May 31 2014 tmb <tmb> 337.25-1.mga5.nonfree + Revision: 629397 - update filelists - this now supports X.org xserver ABI 18 (xorg server 1.16) - update to 337.25 * Thu May 29 2014 tmb <tmb> 331.79-1.mga5.nonfree + Revision: 627510 - update to 331.79 * Tue May 13 2014 tmb <tmb> 331.67-2.mga5.nonfree + Revision: 622572 - rebuild with gcc 4.9 * Sun Apr 27 2014 tmb <tmb> 331.67-1.mga5.nonfree + Revision: 618433 - update to 331.67 * Tue Apr 15 2014 tv <tv> 331.49-3.mga5.nonfree + Revision: 614337 - rebuild for new xserver * Sun Mar 23 2014 anssi <anssi> 331.49-2.mga5.nonfree + Revision: 607208 - fix nvidia-ifr symlink targets - handle arch for UTILITY_SYMLINK * Fri Feb 21 2014 tmb <tmb> 331.49-1.mga5.nonfree + Revision: 595302 - update to 331.49 - drop P4 (uvm buildfix, not needed anymore) - handle EXPLICIT_PATH target in .manifest - drop duplicated files in filelist - update fillists * Tue Feb 04 2014 tv <tv> 331.38-2.mga5.nonfree + Revision: 582541 - rebuild for new perl * Tue Jan 14 2014 tmb <tmb> 331.38-1.mga5.nonfree + Revision: 566525 - update to 331.38 - xserver 1.15 is now supported - rediff P4 (uvm buildfix) * Sat Jan 04 2014 tmb <tmb> 331.20-11.mga4.nonfree + Revision: 564493 - rebuild for testing * Sun Dec 08 2013 tmb <tmb> 331.20-10.mga4.nonfree + Revision: 555916 - fix install of uvm module too * Sun Dec 08 2013 tmb <tmb> 331.20-9.mga4.nonfree + Revision: 555885 - restore old install path as its hardcoded in service_harddrake, making it break installs (#11693) * Fri Dec 06 2013 tmb <tmb> 331.20-8.mga4.nonfree + Revision: 555638 - rebuild for new mesa * Sat Nov 23 2013 tmb <tmb> 331.20-7.mga4.nonfree + Revision: 552644 - push to /release * Sat Nov 23 2013 tmb <tmb> 331.20-6.mga4.nonfree + Revision: 552614 - properly escape the dkms_tree variable * Sat Nov 23 2013 tmb <tmb> 331.20-5.mga4.nonfree + Revision: 552609 - use dkms_tree variable in KBUILD_EXTMOD * Sat Nov 23 2013 tmb <tmb> 331.20-4.mga4.nonfree + Revision: 552597 - make KBUILD_EXTMOD path relative so it works on buildsystem * Sat Nov 23 2013 tmb <tmb> 331.20-3.mga4.nonfree + Revision: 552587 - fix uvm build when CONFIG_UIDGID_STRICT_TYPE_CHECKS is set - add nvidia-uvm module to dkms build * Sun Nov 17 2013 tmb <tmb> 331.20-2.mga4.nonfree + Revision: 551610 - push to /release * Wed Nov 13 2013 tmb <tmb> 331.20-1.mga4.nonfree + Revision: 551069 - fix filelist - update to 331.20 (new longterm branch) - drop merged / obsolete P1, P4, P6, P7 - dont build uvm module for now (broken build) - update filelists * Sat Nov 02 2013 tmb <tmb> 319.60-4.mga4.nonfree + Revision: 549116 - use upstream fix for num_physpages change in kernel 3.11 * Thu Oct 31 2013 tmb <tmb> 319.60-3.mga4.nonfree + Revision: 548452 - Mageia 4 rebuild * Mon Oct 14 2013 tmb <tmb> 319.60-2.mga4.nonfree + Revision: 496721 - fix build with kernel-3.12 * Thu Oct 03 2013 tmb <tmb> 319.60-1.mga4.nonfree + Revision: 490939 - update to 319.60 * Sat Aug 24 2013 anssi <anssi> 319.49-2.mga4.nonfree + Revision: 470904 - fix requires filtering for NVIFR library * Wed Aug 21 2013 tmb <tmb> 319.49-1.mga4.nonfree + Revision: 469115 - fix rel * Wed Aug 21 2013 tmb <tmb> 319.49-0.1.mga4.nonfree + Revision: 469114 - handle new NVIFR_LIB (OpenGL-based Inband Frame Readback library) - update to 319.49 (official kernel-3.10 support) * Sun Aug 11 2013 tmb <tmb> 319.32-5.mga4.nonfree + Revision: 465462 - rebuild with new gcc * Thu Aug 01 2013 tmb <tmb> 319.32-4.mga4.nonfree + Revision: 462263 - force gcc 4.8.2 build * Thu Aug 01 2013 tmb <tmb> 319.32-3.mga4.nonfree + Revision: 462230 - fix build with 3.11 series kernels (P6) * Mon Jul 15 2013 tmb <tmb> 319.32-2.mga4.nonfree + Revision: 454790 - fix build with kernel 3.10 (P5, gentoo) * Fri Jun 28 2013 tmb <tmb> 319.32-1.mga4.nonfree + Revision: 447858 - update to 319.32 * Sun Jun 02 2013 tmb <tmb> 319.17-4.mga4.nonfree + Revision: 434768 - push to nonfree/release + tv <tv> - submit to nonfree/release * Fri May 24 2013 tv <tv> 319.17-2.mga4.nonfree + Revision: 426105 - rebuild with xserver-1.14 * Fri May 03 2013 anssi <anssi> 319.17-1.mga3.nonfree + Revision: 412170 - new long-lived maintenance version 319.17 - update files - add missing alternatives - fix pcitable.d generation (when backporting) - move all alternativeszificated binaries to main driver package to avoid broken symlinks * Sun Apr 07 2013 tmb <tmb> 310.44-1.mga3.nonfree + Revision: 408698 - 310.44 (CVE-2013-0131) * Fri Mar 15 2013 tmb <tmb> 310.40-1.mga3.nonfree + Revision: 403308 - update to 310.40 (bugfixes, more hw support) - cd * Sun Jan 27 2013 tmb <tmb> 310.32-1.mga3.nonfree + Revision: 392601 - drop P5 (kernel 3.8 buildfix, merged) - update to 310.32 * Thu Jan 10 2013 tmb <tmb> 310.19-2.mga3.nonfree + Revision: 344802 - include uapi headers to fix build with kernel-3.8 (P5) * Wed Nov 21 2012 anssi <anssi> 310.19-1.mga3.nonfree + Revision: 320407 - update file lists (XvMC dropped as all cards it supported have been dropped) - handle optional subdir for NVCUVID_LIB and ENCODEAPI_LIB - update target card string o NOTE: this driver now only supports GeForce 8xxx based cards and above - workaround linking issue of libnvidia-encode.so + tmb <tmb> - add ENCODEAPI_LIB* symbols, update filelists - update to 310.19 * Thu Oct 25 2012 tmb <tmb> 304.60-1.mga3.nonfree + Revision: 309922 - update to 304.60 * Sun Sep 30 2012 tmb <tmb> 304.51-1.mga3.nonfree + Revision: 300723 - update to 304.51 * Thu Sep 13 2012 tv <tv> 304.43-2.mga3.nonfree + Revision: 293586 - rebuild for new x11-server * Mon Sep 10 2012 tmb <tmb> 304.43-1.mga3.nonfree + Revision: 292054 - update to 304.43 * Thu Sep 06 2012 tv <tv> 304.37-4.mga3.nonfree + Revision: 288986 - rebuild for new xserver * Sun Aug 19 2012 tmb <tmb> 304.37-3.mga3.nonfree + Revision: 282366 - replace nVidia provided dkms.conf with our own customized one * Sun Aug 19 2012 tmb <tmb> 304.37-2.mga3.nonfree + Revision: 282319 - add provides kmod(nvidia-current) as upstream now has provides kmod(nvidis) (mga #7113) * Sun Aug 19 2012 tmb <tmb> 304.37-1.mga3.nonfree + Revision: 282100 - update filelists - update to 304.37 (long lived branch) - drop merged patches (P0, P5) * Sat Aug 11 2012 tmb <tmb> 295.71-1.mga3.nonfree + Revision: 280501 - update to 295.71 (CVE-2012-4225) * Fri Jul 27 2012 tmb <tmb> 295.59-2.mga3.nonfree + Revision: 274692 - move libnvidia-ml.so.1 from nvidia-current-cuda-opencl to x11-driver-video-nvidia-current as it is needed by /usr/bin/nvidia-smi (reported on irc by Berxwedan) * Mon Jul 02 2012 tmb <tmb> 295.59-1.mga3.nonfree + Revision: 266542 - update to 295.59 * Wed Jun 06 2012 tmb <tmb> 295.49-6.mga3.nonfree + Revision: 256546 - rebuild for nonfree/release * Mon Jun 04 2012 tv <tv> 295.49-5.mga3.nonfree + Revision: 253930 - bump release - bump X11 ABI require * Wed May 30 2012 tv <tv> 295.49-4.mga3.nonfree + Revision: 250053 - rebuild for new X.org server * Sun May 27 2012 tmb <tmb> 295.49-3.mga3.nonfree + Revision: 247582 - fix build with 3.4 series kernels (P5) * Thu May 10 2012 tmb <tmb> 295.49-2.mga2.nonfree + Revision: 235175 - submit to release * Sun May 06 2012 tmb <tmb> 295.49-1.mga2.nonfree + Revision: 234830 - update to 295.49 (performance regression fixes) * Wed Apr 11 2012 anssi <anssi> 295.40-1.mga2.nonfree + Revision: 230244 - new version 290.40 o fixes CVE-2012-0946 (arbitrary system memory access by users) * Fri Apr 06 2012 anssi <anssi> 295.33-1.mga2.nonfree + Revision: 229341 - new version 295.33 - drop now unneeded kernel 3.3 support patch * Tue Mar 06 2012 tmb <tmb> 295.20-2.mga2.nonfree + Revision: 220369 - fix build with 3.3 series kernels (J.A. Magallon) * Tue Mar 06 2012 anssi <anssi> 295.20-1.mga2.nonfree + Revision: 219541 - new version 295.20 - depend on the correct range of the newly provided xserver-abi(videodrv) in x11-server-common - add support for new file types of 295.17 in %%install - drop old unneeded mdv category from .desktop file (#2449) * Wed Nov 30 2011 anssi <anssi> 290.10-1.mga2.nonfree + Revision: 174612 - new stable version 290.10 - run ldconfig explicitely in cuda-opencl package * Sat Oct 08 2011 anssi <anssi> 285.05.09-1.mga2.nonfree + Revision: 152893 - new prerelease o adds X.org server 1.11 support + ahmad <ahmad> - Update to 280.13 - Make it possible to download the sources from http://us.download.nvidia.com when ftp://download.nvidia.com doesn't have the latest driver. - Update to 280.11 * Sat Jul 02 2011 ahmad <ahmad> 280.04-1.mga2.nonfree + Revision: 117262 - Update to 280.04 * Tue Jun 14 2011 ahmad <ahmad> 275.09.07-1.mga2.nonfree + Revision: 106251 - Update to current official release 275.09.07 - Update to 275.09.04 - Rediff the kernel-rt patch * Sat May 21 2011 ahmad <ahmad> 270.41.19-1.mga1 + Revision: 100078 - update to 270.41.19 * Sat May 07 2011 anssi <anssi> 270.41.06-2.mga1 + Revision: 95763 - remove dependency on X11 driver package from dkms-nvidia-current (it is not needed for CUDA/OpenCL usage) (Mandriva #63207) - replace dependency on X11 driver package with a dependency on DKMS module package in nvidia-current-cuda-opencl (Mandriva #63207) * Wed Apr 20 2011 ahmad <ahmad> 270.41.06-1.mga1 + Revision: 89267 - Update to 270.41.06 * Sun Apr 17 2011 anssi <anssi> 270.41.03-2.mga1 + Revision: 87344 - fix display-driver.conf alternative name - replace "alias" entry with "install" entry in modprobe.conf to follow upstream module-init-tools behavior - disable conflicts on videodrv ABI, as it may cause X server to be uninstalled instead - remove now unneeded modprobe.preload.d entry * Tue Apr 12 2011 ahmad <ahmad> 270.41.03-1.mga1 + Revision: 83978 - update to 270.41.03, new official release * Tue Mar 08 2011 ahmad <ahmad> 270.30-2.mga1 + Revision: 66356 - restore the xserver driver ABI conflicts wrongly removed during removing old mdv scriptles/macros - rename modprobe config file to display-driver.conf (Anssi) * Wed Mar 02 2011 ahmad <ahmad> 270.30-1.mga1 + Revision: 62721 - update to 270.30 - bump videodrv_abi to 10 * Thu Feb 24 2011 ahmad <ahmad> 270.26-2.mga1 + Revision: 59002 - resubmit so that nvidia-current-cuda-opencl becomes available * Tue Feb 22 2011 ahmad <ahmad> 270.26-1.mga1 + Revision: 56909 - update to 270.26 - update the file list - rename dyntwinview patch and modify it to say Mageia Control Center - drop old/unneeded scriptlets - rename .desktop file to mandriva-* - imported package nvidia-current