%define nvidialibdir %{_libdir}/nvidia %define nvidialib32dir %{_prefix}/lib/nvidia %define debug_package %{nil} Name: nvidia-x11-drv Version: 270.41.06 Release: 1%{?dist} Group: User Interface/X Hardware Support License: Distributable Summary: NVIDIA OpenGL X11 display driver files URL: http://www.nvidia.com/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-build-%(%{__id_u} -n) ExclusiveArch: %{ix86} x86_64 # Sources. Source0: ftp://download.nvidia.com/XFree86/Linux-x86/%{version}/NVIDIA-Linux-x86-%{version}.run Source1: ftp://download.nvidia.com/XFree86/Linux-x86_64/%{version}/NVIDIA-Linux-x86_64-%{version}.run Source2: nvidia-config-display Source3: blacklist-nouveau.conf Source4: nvidia.nodes Source5: nvidia.sh Source6: nvidia.csh Source7: nvidia.modprobe # provides desktop-file-install BuildRequires: desktop-file-utils BuildRequires: perl Requires: nvidia-kmod = %{?epoch:%{epoch}:}%{version}-%{release} Requires(post): nvidia-kmod = %{?epoch:%{epoch}:}%{version}-%{release} Requires(post): /sbin/ldconfig # for nvidia-config-display Requires(post): pyxf86config Requires(preun): pyxf86config %if 0%{?rhel} > 5 Requires(post): grubby Requires(preun): grubby %endif # elrepo Conflicts: nvidia-x11-drv-173xx Conflicts: nvidia-x11-drv-173xx-32bit Conflicts: nvidia-x11-drv-96xx Conflicts: nvidia-x11-drv-96xx-32bit # rpmforge Conflicts: dkms-nvidia Conflicts: dkms-nvidia-x11-drv Conflicts: dkms-nvidia-x11-drv-32bit Conflicts: xorg-x11-drv-nvidia Conflicts: xorg-x11-drv-nvidia-beta Conflicts: xorg-x11-drv-nvidia-legacy Conflicts: xorg-x11-drv-nvidia-71xx Conflicts: xorg-x11-drv-nvidia-96xx Conflicts: xorg-x11-drv-nvidia-173xx %description This package provides the proprietary NVIDIA OpenGL X11 display driver files. %package 32bit Summary: Compatibility 32-bit files for the 64-bit Proprietary NVIDIA driver Group: User Interface/X Hardware Support Requires: %{name} = %{version}-%{release} Requires(post): /sbin/ldconfig %description 32bit Compatibility 32-bit files for the 64-bit Proprietary NVIDIA driver. %prep %setup -q -c -T %ifarch %{ix86} sh %{SOURCE0} --extract-only --target nvidiapkg %endif %ifarch x86_64 sh %{SOURCE1} --extract-only --target nvidiapkg %endif # Lets just take care of all the docs here rather than during install pushd nvidiapkg %{__mv} LICENSE NVIDIA_Changelog pkg-history.txt README.txt html/ popd find nvidiapkg/html/ -type f | xargs chmod 0644 %build # Nothing to build %install %{__rm} -rf $RPM_BUILD_ROOT pushd nvidiapkg # Install nvidia tools %{__mkdir_p} $RPM_BUILD_ROOT%{_bindir}/ %{__install} -p -m 0755 nvidia-bug-report.sh $RPM_BUILD_ROOT%{_bindir}/ %{__install} -p -m 0755 nvidia-settings $RPM_BUILD_ROOT%{_bindir}/ %{__install} -p -m 0755 nvidia-smi $RPM_BUILD_ROOT%{_bindir}/ %{__install} -p -m 0755 nvidia-xconfig $RPM_BUILD_ROOT%{_bindir}/ # Install OpenCL Vendor file %{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/OpenCL/vendors/ %{__install} -p -m 0644 nvidia.icd $RPM_BUILD_ROOT%{_sysconfdir}/OpenCL/vendors/nvidia.icd # Install GL, tls and vdpau libs %{__mkdir_p} $RPM_BUILD_ROOT%{_libdir}/vdpau/ %{__mkdir_p} $RPM_BUILD_ROOT%{nvidialibdir}/ %{__mkdir_p} $RPM_BUILD_ROOT%{nvidialibdir}/tls/ %{__install} -p -m 0755 libvdpau_nvidia.so.%{version} $RPM_BUILD_ROOT%{_libdir}/vdpau/ %{__install} -p -m 0755 libcuda.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/ %{__install} -p -m 0755 libGL.la $RPM_BUILD_ROOT%{nvidialibdir}/ %{__install} -p -m 0755 libGL.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/ # Added libnvcuvid.so in 260.xx series driver %{__install} -p -m 0755 libnvcuvid.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/ %{__install} -p -m 0755 libnvidia-cfg.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/ %{__install} -p -m 0755 libnvidia-compiler.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/ %{__install} -p -m 0755 libnvidia-glcore.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/ # Added libnvidia-ml.so in 270.xx series driver %{__install} -p -m 0755 libnvidia-ml.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/ %if 0%{?rhel} < 6 %{__install} -p -m 0755 libnvidia-tls.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/ %endif %{__install} -p -m 0755 libOpenCL.so.* $RPM_BUILD_ROOT%{nvidialibdir}/ %{__install} -p -m 0644 libXvMCNVIDIA.a $RPM_BUILD_ROOT%{nvidialibdir}/ %{__install} -p -m 0755 libXvMCNVIDIA.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/ %{__install} -p -m 0755 tls/*.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/tls/ %ifarch x86_64 # Install 32bit compat GL, tls and vdpau libs %{__mkdir_p} $RPM_BUILD_ROOT%{_prefix}/lib/vdpau/ %{__mkdir_p} $RPM_BUILD_ROOT%{nvidialib32dir}/ %{__mkdir_p} $RPM_BUILD_ROOT%{nvidialib32dir}/tls/ %{__install} -p -m 0755 32/libvdpau_nvidia.so.%{version} $RPM_BUILD_ROOT%{_prefix}/lib/vdpau/ %{__install} -p -m 0755 32/libcuda.so.%{version} $RPM_BUILD_ROOT%{nvidialib32dir}/ %{__install} -p -m 0755 32/libGL.la $RPM_BUILD_ROOT%{nvidialib32dir}/ %{__install} -p -m 0755 32/libGL.so.%{version} $RPM_BUILD_ROOT%{nvidialib32dir}/ %{__install} -p -m 0755 32/libnvidia-compiler.so.%{version} $RPM_BUILD_ROOT%{nvidialib32dir}/ %{__install} -p -m 0755 32/libnvidia-glcore.so.%{version} $RPM_BUILD_ROOT%{nvidialib32dir}/ %if 0%{?rhel} < 6 %{__install} -p -m 0755 32/libnvidia-tls.so.%{version} $RPM_BUILD_ROOT%{nvidialib32dir}/ %endif %{__install} -p -m 0755 32/libOpenCL.so.* $RPM_BUILD_ROOT%{nvidialib32dir}/ %{__install} -p -m 0755 32/tls/*.so.%{version} $RPM_BUILD_ROOT%{nvidialib32dir}/tls/ %endif # Install X driver and extension %{__mkdir_p} $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/ %{__mkdir_p} $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions/nvidia/ %{__install} -p -m 0755 nvidia_drv.so $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/ %{__install} -p -m 0755 libglx.so.%{version} $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions/nvidia/ %if 0%{?rhel} < 6 %{__install} -p -m 0755 libnvidia-wfb.so.%{version} $RPM_BUILD_ROOT%{_libdir}/xorg/modules/ %endif # Create the symlinks %{__ln_s} libcuda.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/libcuda.so %{__ln_s} libcuda.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/libcuda.so.1 %{__ln_s} libGL.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/libGL.so %{__ln_s} libGL.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/libGL.so.1 # Added libnvcuvid.so in 260.xx series driver %{__ln_s} libnvcuvid.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/libnvcuvid.so %{__ln_s} libnvcuvid.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/libnvcuvid.so.1 %{__ln_s} libnvidia-cfg.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/libnvidia-cfg.so %{__ln_s} libnvidia-cfg.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/libnvidia-cfg.so.1 # Added libnvidia-ml.so in 270.xx series driver %{__ln_s} libnvidia-ml.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/libnvidia-ml.so %{__ln_s} libnvidia-ml.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/libnvidia-ml.so.1 %{__ln_s} libOpenCL.so.1.0.0 $RPM_BUILD_ROOT%{nvidialibdir}/libOpenCL.so %{__ln_s} libOpenCL.so.1.0.0 $RPM_BUILD_ROOT%{nvidialibdir}/libOpenCL.so.1 %{__ln_s} libOpenCL.so.1.0.0 $RPM_BUILD_ROOT%{nvidialibdir}/libOpenCL.so.1.0 %{__ln_s} libXvMCNVIDIA.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/libXvMCNVIDIA_dynamic.so %{__ln_s} libXvMCNVIDIA.so.%{version} $RPM_BUILD_ROOT%{nvidialibdir}/libXvMCNVIDIA_dynamic.so.1 %{__ln_s} libglx.so.%{version} $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions/nvidia/libglx.so %if 0%{?rhel} < 6 %{__ln_s} libnvidia-wfb.so.%{version} $RPM_BUILD_ROOT%{_libdir}/xorg/modules/libwfb.so %{__ln_s} libnvidia-wfb.so.%{version} $RPM_BUILD_ROOT%{_libdir}/xorg/modules/libnvidia-wfb.so.1 %endif %{__ln_s} libvdpau_nvidia.so.%{version} $RPM_BUILD_ROOT%{_libdir}/vdpau/libvdpau_nvidia.so %{__ln_s} libvdpau_nvidia.so.%{version} $RPM_BUILD_ROOT%{_libdir}/vdpau/libvdpau_nvidia.so.1 %ifarch x86_64 # Create the 32-bit symlinks %{__ln_s} libcuda.so.%{version} $RPM_BUILD_ROOT%{nvidialib32dir}/libcuda.so %{__ln_s} libcuda.so.%{version} $RPM_BUILD_ROOT%{nvidialib32dir}/libcuda.so.1 %{__ln_s} libGL.so.%{version} $RPM_BUILD_ROOT%{nvidialib32dir}/libGL.so %{__ln_s} libGL.so.%{version} $RPM_BUILD_ROOT%{nvidialib32dir}/libGL.so.1 %{__ln_s} libOpenCL.so.1.0.0 $RPM_BUILD_ROOT%{nvidialib32dir}/libOpenCL.so %{__ln_s} libOpenCL.so.1.0.0 $RPM_BUILD_ROOT%{nvidialib32dir}/libOpenCL.so.1 %{__ln_s} libOpenCL.so.1.0.0 $RPM_BUILD_ROOT%{nvidialib32dir}/libOpenCL.so.1.0 %{__ln_s} libvdpau_nvidia.so.%{version} $RPM_BUILD_ROOT%{_prefix}/lib/vdpau/libvdpau_nvidia.so %{__ln_s} libvdpau_nvidia.so.%{version} $RPM_BUILD_ROOT%{_prefix}/lib/vdpau/libvdpau_nvidia.so.1 %endif # Install man pages %{__mkdir_p} $RPM_BUILD_ROOT%{_mandir}/man1/ %{__install} -p -m 0644 nvidia-{settings,smi,xconfig}.1.gz $RPM_BUILD_ROOT%{_mandir}/man1/ # Install pixmap for the desktop entry %{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/pixmaps/ %{__install} -p -m 0644 nvidia-settings.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/ # Desktop entry for nvidia-settings # GNOME: System > Administration # KDE: Applications > Administration # Remove "__UTILS_PATH__/" before the Exec command name # Replace "__PIXMAP_PATH__/" with the proper pixmaps path %{__perl} -pi -e 's|(Exec=).*/(.*)|$1$2|g; s|(Icon=).*/(.*)|$1%{_datadir}/pixmaps/$2|g' \ nvidia-settings.desktop # GNOME requires category=System on RHEL6 %{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/applications/ desktop-file-install --vendor viduxos \ --dir $RPM_BUILD_ROOT%{_datadir}/applications/ \ --add-category System \ %if 0%{?rhel} < 6 --add-category Application \ --add-category GNOME \ %endif nvidia-settings.desktop %if 0%{?rhel} < 6 # Install profile.d files %{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/ %{__install} -p -m 0644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/nvidia.sh %{__install} -p -m 0644 %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/nvidia.csh %endif # Install X configuration script %{__mkdir_p} $RPM_BUILD_ROOT%{_sbindir}/ %{__install} -p -m 0755 %{SOURCE2} $RPM_BUILD_ROOT%{_sbindir}/nvidia-config-display # Blacklist the nouveau driver %{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/ %if 0%{?rhel} < 6 %{__install} -p -m 0644 %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/nvidia %else %{__install} -p -m 0644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/blacklist-nouveau.conf %endif # Install udev configuration file %{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/udev/makedev.d/ %{__install} -p -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/udev/makedev.d/60-nvidia.nodes # Install ld.so.conf.d file %{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ echo %{nvidialibdir} > $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/nvidia.conf echo %{_libdir}/vdpau >> $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/nvidia.conf %ifarch x86_64 echo %{nvidialib32dir} >> $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/nvidia.conf echo %{_prefix}/lib/vdpau >> $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/nvidia.conf %endif popd %clean %{__rm} -rf $RPM_BUILD_ROOT %post /sbin/ldconfig if [ "$1" -eq "1" ]; then # Check if xorg.conf exists, if it does, backup and remove [BugID # 0000127] %if 0%{?rhel} > 5 [ -f %{_sysconfdir}/X11/xorg.conf ] && \ mv %{_sysconfdir}/X11/xorg.conf %{_sysconfdir}/X11/xorg.conf.elreposave &>/dev/null %endif # xorg.conf now shouldn't exist so create it [ ! -f %{_sysconfdir}/X11/xorg.conf ] && %{_bindir}/nvidia-xconfig &>/dev/null # Make sure we have a Files section in xorg.conf, otherwise create an empty one XORGCONF=/etc/X11/xorg.conf [ -w ${XORGCONF} ] && ! grep -q 'Section "Files"' ${XORGCONF} && \ echo -e 'Section "Files"\nEndSection' >> ${XORGCONF} # Enable nvidia driver when installing %{_sbindir}/nvidia-config-display enable &>/dev/null %if 0%{?rhel} > 5 # Disable the nouveau driver if [ -x /sbin/grubby ]; then GRUBBYLASTKERNEL=`/sbin/grubby --default-kernel` /sbin/grubby --update-kernel=${GRUBBYLASTKERNEL} --args='nouveau.modeset=0 rdblacklist=nouveau' &>/dev/null fi %endif fi || : %post 32bit /sbin/ldconfig %preun if [ "$1" -eq "0" ]; then # Clear grub option to disable nouveau for all RHEL6 kernels %if 0%{?rhel} < 6 [ -f %{_sbindir}/nvidia-config-display ] && %{_sbindir}/nvidia-config-display disable &>/dev/null %else if [ -x /sbin/grubby ]; then KERNELS=`ls /boot/vmlinuz-2.6.32-*.el6.$(uname -m)` for kernel in ${KERNELS} ; do /sbin/grubby --update-kernel=${kernel} \ --remove-args='nouveau.modeset=0 rdblacklist=nouveau nomodeset' &>/dev/null done fi # Backup and remove xorg.conf [ -f %{_sysconfdir}/X11/xorg.conf ] && \ mv %{_sysconfdir}/X11/xorg.conf %{_sysconfdir}/X11/xorg.conf.uninstalled-nvidia &>/dev/null %endif fi ||: %postun /sbin/ldconfig %postun 32bit /sbin/ldconfig %if 0%{?rhel} < 6 %triggerin -- xorg-x11-server-Xorg # Enable the proprietary nvidia driver # Required since xorg-x11-server-Xorg empties the "Files" section test -f %{_sbindir}/nvidia-config-display && %{_sbindir}/nvidia-config-display enable &>/dev/null || : %endif %files %defattr(-,root,root,-) %doc nvidiapkg/html/* %{_mandir}/man1/nvidia*.* %{_datadir}/pixmaps/nvidia-settings.png %{_datadir}/applications/*nvidia-settings.desktop %{_bindir}/nvidia* %{_sbindir}/nvidia-config-display %if 0%{?rhel} < 6 %{_sysconfdir}/profile.d/nvidia.* %config %{_sysconfdir}/modprobe.d/nvidia %else %config(noreplace) %{_sysconfdir}/modprobe.d/blacklist-nouveau.conf %endif %config %{_sysconfdir}/ld.so.conf.d/nvidia.conf %config %{_sysconfdir}/udev/makedev.d/60-nvidia.nodes %{_sysconfdir}/OpenCL/vendors/nvidia.icd # now the libs %dir %{nvidialibdir} %{nvidialibdir}/lib* %dir %{nvidialibdir}/tls %{nvidialibdir}/tls/lib* %{_libdir}/vdpau/libvdpau_nvidia.* %if 0%{?rhel} < 6 %{_libdir}/xorg/modules/libwfb.so %{_libdir}/xorg/modules/libnvidia-wfb.so.* %endif %{_libdir}/xorg/modules/drivers/nvidia_drv.so %dir %{_libdir}/xorg/modules/extensions/nvidia %{_libdir}/xorg/modules/extensions/nvidia/libglx.* # 32-bit compatibility libs %ifarch x86_64 %files 32bit %defattr(-,root,root,-) %dir %{nvidialib32dir} %{nvidialib32dir}/lib* %dir %{nvidialib32dir}/tls %{nvidialib32dir}/tls/lib* %{_prefix}/lib/vdpau/libvdpau_nvidia.* %endif %changelog * Thu Apr 21 2011 Philip J Perry - 270.41.06-1.el6.elrepo - Updated to version 270.41.06 * Sat Apr 16 2011 Philip J Perry - 270.41.03-1.el6.elrepo - Updated to version 270.41.03 for release - Don't bother running 'nvidia-config-display disable' on uninstall - Remove existing /etc/x11/xorg.conf during first install [http://elrepo.org/bugs/view.php?id=127] * Fri Mar 25 2011 Philip J Perry - Updated to version 270.30 beta - Adds libnvidia-ml library. - Remove vdpau wrapper libs from package (libvdpau from EPEL provides these). Move vendor-specific libvdpau_nvidia.so libs to /usr/lib/vdpau. Update ldconf path to include /usr/lib/vdpau. [http://elrepo.org/bugs/view.php?id=123] * Wed Mar 09 2011 Philip J Perry - 260.19.44-1.el6.elrepo - Updated to version 260.19.44 * Fri Jan 21 2011 Philip J Perry - 260.19.36-1.el6.elrepo - Updated to version 260.19.36 * Fri Dec 17 2010 Philip J Perry - 260.19.29-1.el6.elrepo - Updated to version 260.19.29 * Sun Nov 28 2010 Philip J Perry - 260.19.21-1.el6.elrepo - Rebuilt for release. * Sun Nov 28 2010 Philip J Perry - 260.19.21-0.4.el6.elrepo - Remove libnvidia-wfb.so - Remove additional libnvidia-tls.so - Tidy up desktop entry for nvidia-settings GNOME: System > Administration KDE: Applications > Administration * Sun Nov 21 2010 Philip J Perry - 260.19.21-0.3.el6.elrepo - Rebuilt for testing release. * Sun Nov 21 2010 Philip J Perry - 260.19.21-0.2.el6.elrepo - Fix udev device creation. * Sat Nov 20 2010 Philip J Perry - 260.19.21-0.1.el6.elrepo - Initial build for RHEL6 GA release. * Fri Apr 30 2010 Philip J Perry - - 195.36.24-0.1.el6.elrepo - Initial build for RHEL6beta1