%define NVversion 173.14.12 %define NVIDIArelease %(echo %{NVversion} | sed -e's,1.0-,,') %define NVfolder nvidia-graphics-%{NVversion} %define NVmodule nvidia-%(echo %{NVversion} | sed -e's,\\.,_,g') %kmdl nvidia-graphics%{NVIDIArelease} %define hastls %(test -e /%{_lib}/tls && echo 1 || echo 0) Summary: NVIDIA Linux Display Driver Name: nvidia-graphics%{NVIDIArelease} Version: %(echo %{NVversion} | sed -e's,-,_,') Release: 100%{?dist} Epoch: 1 License: NVIDIA, distributable Group: User Interface/X Hardware Support Source0: ftp://download.nvidia.com/XFree86/Linux-x86/%{NVversion}/NVIDIA-Linux-x86-%{NVversion}-pkg0.run Source1: ftp://download.nvidia.com/XFree86/Linux-x86_64/%{NVversion}/NVIDIA-Linux-x86_64-%{NVversion}-pkg0.run Patch0: NVIDIA_kernel-1.0-9625-NOSMBUS.diff.txt #Patch1: patch-nv-1.0-9625-xenrt.txt #Patch2: NVIDIA_kernel-169.12-2286310.diff.txt URL: http://www.nvidia.com/object/linux_display_ia32_%{NVversion} BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot BuildRequires: fakeroot, /sbin/modprobe, nvidia-graphics-helpers >= 0.0.18 BuildRequires: %{_x_module_path} ExclusiveArch: %ix86 x86_64 Requires: %{name}-libs = %{evr} %kmdl_parentdependencies Requires: python2, pyxf86config >= 0.3.5 Requires(post): nvidia-graphics-helpers %description The NVIDIA Accelerated Linux Driver Set brings both accelerated 2D functionality and high performance OpenGL support to Linux x86 with the use of NVIDIA graphics processing units (GPUs). These drivers provide optimized hardware acceleration of OpenGL applications via a direct-rendering X Server and support nearly all NVIDIA graphics chips. TwinView, TV-Out and flat panel displays are also supported. This package includes NVIDIA module for X11 and OpenGL libraries. Older RIVA 128 based video cards are supported by the server module shipping with xorg/XFree86, nv_drv.o. You must also install a matching %kmdl_namepure rpm, if you want to utilize these drivers. Add ModulePath "%{_x_module_path}/extensions/nvidia" ModulePath "%{_x_module_path}/extensions" ModulePath "%{_x_module_path}" to `Section "Files"' in the config file and remove/comment the dri module. %package libs Summary: Libraries for nvidia-graphics chips Group: System Environment/Libraries %description libs The NVIDIA Accelerated Linux Driver Set brings both accelerated 2D functionality and high performance OpenGL support to Linux x86 with the use of NVIDIA graphics processing units (GPUs). This package contains runtime libraries for NVIDIA GPUs. %package devel Summary: Development files for nvidia-graphics chips Group: Development/Libraries Requires: %{name}-libs = %{evr} %description devel The NVIDIA Accelerated Linux Driver Set brings both accelerated 2D functionality and high performance OpenGL support to Linux x86 with the use of NVIDIA graphics processing units (GPUs). This package contains files necessary for developing for NVIDIA GPUs. %package -n %kmdl_name %kmdl_dependencies Summary: Kernel module for NVIDIA graphics architecture support Group: System Environment/Kernel Requires: nvidia-graphics-devices %description -n %kmdl_name NVIDIA Architecture support for systems with updated or custom kernels. %kmdl_desc %prep %setup -q -c -T %ifarch %ix86 sh %{SOURCE0} --extract-only %else sh %{SOURCE1} --extract-only %endif mv NVIDIA-Linux-*-%{NVversion}*/{*,.??*} . rmdir NVIDIA-Linux-*-%{NVversion}* %patch0 -p0 #cd usr/src/nv #patch1 -p1 #cd ../../../ #patch2 -p0 %define installpath %{kmdl_moduledir}/drivers/video/nvidia %install rm -rf %{buildroot} mkdir -p %{buildroot} fakebin=`pwd`/fakebin mkdir $fakebin PATH=%{_libexecdir}/nvidia-graphics-helpers:$PATH export PATH %if %{kmdl_userland} LD_LIBRARY_PATH=%{buildroot}%{_libdir} fakeroot \ ./nvidia-installer -s -N -e -b \ --no-runlevel-check \ --no-rpms \ --no-x-check \ --utility-prefix=%{buildroot}%{_prefix} \ --documentation-prefix=%{buildroot}%{_prefix} \ --x-prefix=%{buildroot}%{_x_prefix} \ --x-library-path=%{buildroot}%{_x_libraries} \ --x-module-path=%{buildroot}%{_x_module_path} \ --opengl-prefix=%{buildroot}%{_prefix} \ --log-file-name=user.log \ --no-kernel-module \ && success=yes cat user.log cat /tmp/fakebin.log test -z "$success" && exit 1 # remove embedded destination dir sed -i -e"s,%{buildroot},,g" \ %{buildroot}%{_prefix}/share/applications/nvidia-settings.desktop \ %{buildroot}%{_libdir}/libGL.la # copy png for desktop file mkdir -p %{buildroot}%{_datadir}/pixmaps cp -a %{buildroot}%{_prefix}/share/doc/NVIDIA_GLX-1.0/nvidia-settings.png \ %{buildroot}%{_datadir}/pixmaps sed -i -e"s,%{_prefix}/share/doc/NVIDIA_GLX-1.0/nvidia-settings.png,%{_datadir}/pixmaps/nvidia-settings.png," \ %{buildroot}%{_prefix}/share/applications/nvidia-settings.desktop # move docs mkdir -p %{buildroot}%{_defaultdocdir} mv %{buildroot}%{_prefix}/share/doc/NVIDIA_GLX-1.0 \ %{buildroot}%{_defaultdocdir}/%{name}-%{version} %else %kmdl_config fakeroot \ ./nvidia-installer -s -N -e -b \ --no-runlevel-check \ --no-rpms \ --no-x-check \ --kernel-source-path=%{kmdl_kernelsrcdir} \ --kernel-install-path=%{buildroot}%{installpath} \ --log-file-name=kernel.log \ -K -k %{_kernel} \ && success=yes cat kernel.log test -z "$success" && exit 1 %endif grep -r %{buildroot} %{buildroot} && exit 1 %if %{kmdl_userland} mkdir -p %{buildroot}%{_x_module_path}/extensions/%{NVfolder} mv %{buildroot}%{_x_module_path}/extensions/*.so* \ %{buildroot}%{_x_module_path}/extensions/%{NVfolder}/ mkdir -p %{buildroot}%{_x_module_path}/%{NVfolder} if ls %{buildroot}%{_x_module_path}/*.so* >/dev/null 2>&1; then mv %{buildroot}%{_x_module_path}/*.so* \ %{buildroot}%{_x_module_path}/%{NVfolder}/ fi # remove libwfb.so if the system provides one if test -f %{_x_module_path}/libwfb.so; then rm -f %{buildroot}%{_x_module_path}/%{NVfolder}/libwfb.so fi mkdir -p %{buildroot}%{_libdir}/%{NVfolder} #mv %{buildroot}%{_libdir}/{libGL*,libnvidia*,libcuda*} %{buildroot}%{_libdir}/%{NVfolder}/ mv %{buildroot}%{_libdir}/{libGL*,libnvidia*} %{buildroot}%{_libdir}/%{NVfolder}/ /sbin/ldconfig -n %{buildroot}%{_libdir}/%{NVfolder} #rm -f %{buildroot}%{_libdir}/%{NVfolder}/libGL.so #ln -s libGL.so.1 %{buildroot}%{_libdir}/%{NVfolder}/libGL.so #ln -s libGLcore.so.1 %{buildroot}%{_libdir}/%{NVfolder}/libGLcore.so %if %hastls mkdir -p %{buildroot}%{_libdir}/%{NVfolder}/tls mv %{buildroot}%{_libdir}/tls/libnvidia* %{buildroot}%{_libdir}/%{NVfolder}/tls/ %endif mkdir -p %{buildroot}%{_x_libraries}/%{NVfolder} mv %{buildroot}%{_x_libraries}/lib*.so* %{buildroot}%{_x_libraries}/%{NVfolder}/ /sbin/ldconfig -n %{buildroot}%{_x_libraries}/%{NVfolder} ln -s %{NVfolder}/libXvMCNVIDIA_dynamic.so.1 %{buildroot}%{_x_libraries}/libXvMCNVIDIA.so mkdir %{buildroot}%{_x_module_path}/drivers/%{NVfolder} mv %{buildroot}%{_x_module_path}/drivers/nvidia_drv.so \ %{buildroot}%{_x_module_path}/drivers/%{NVfolder} ln -s %{NVfolder}/nvidia_drv.so \ %{buildroot}%{_x_module_path}/drivers/nvidia-%{NVversion}_drv.so mkdir -p %{buildroot}%{_includedir}/%{NVfolder} mv %{buildroot}%{_includedir}/GL %{buildroot}%{_includedir}/%{NVfolder} #mv %{buildroot}%{_includedir}/cuda %{buildroot}%{_includedir}/%{NVfolder} rm -f %{buildroot}%{_bindir}/nvidia-installer mv %{buildroot}%{_bindir}/nvidia-settings %{buildroot}%{_bindir}/nvidia-settings-%{NVversion} mv %{buildroot}%{_bindir}/nvidia-xconfig %{buildroot}%{_bindir}/nvidia-xconfig-%{NVversion} mv %{buildroot}%{_bindir}/nvidia-bug-report.sh %{buildroot}%{_bindir}/nvidia-bug-report-%{NVversion}.sh mv %{buildroot}%{_bindir}/nvidia-smi %{buildroot}%{_bindir}/nvidia-smi-%{NVversion} sed -i -e's,Exec=nvidia-settings,Exec=nvidia-settings-%{NVversion},' \ -e's,nvidia-settings.png,nvidia-settings-%{NVversion}.png,' \ -e's,\(Comment=.*\),\1 (%{NVversion}),' \ %{buildroot}%{_datadir}/applications/nvidia-settings.desktop mv %{buildroot}%{_datadir}/applications/nvidia-settings.desktop \ %{buildroot}%{_datadir}/applications/nvidia-settings-%{NVversion}.desktop mv %{buildroot}%{_datadir}/pixmaps/nvidia-settings.png \ %{buildroot}%{_datadir}/pixmaps/nvidia-settings-%{NVversion}.png for page in %{buildroot}%{_mandir}/man1/nvidia-*; do newpage=`echo $page | sed -e's,\(.*/nvidia-.*\)\.1,\1-%{NVversion}\.1,'` mv $page $newpage done %else if [ -f %{buildroot}%{installpath}/nvidia.ko ]; then mv %{buildroot}%{installpath}/nvidia.ko \ %{buildroot}%{installpath}/%{NVmodule}.ko elif [ -f %{buildroot}%{installpath}/nvidia.o ]; then mv %{buildroot}%{installpath}/nvidia.o \ %{buildroot}%{installpath}/%{NVmodule}.o fi %endif %clean rm -rf %{buildroot} %post %{_sbindir}/nvidia-graphics-switch %{NVversion} %postun -p /sbin/ldconfig %post libs cp -a /etc/ld.so.conf /etc/ld.so.conf.backup (echo %{_x_libraries}/%{NVfolder}; \ grep -v %{_x_libraries}/nvidia-graphics /etc/ld.so.conf.backup) > /etc/ld.so.conf /sbin/ldconfig %postun libs if [ "$1" = 0 ]; then if grep %{NVfolder} /etc/ld.so.conf > /dev/null 2>&1; then cp -a /etc/ld.so.conf /etc/ld.so.conf.rpmsave grep -v %{NVfolder} /etc/ld.so.conf.rpmsave > /etc/ld.so.conf fi fi /sbin/ldconfig %post -n %kmdl_name %kmdl_install %postun -n %kmdl_name %kmdl_remove %if %{kmdl_userland} %files %defattr(-,root,root,-) %doc %{_defaultdocdir}/%{name}-%{version} %{_x_module_path}/drivers/nvidia-%{NVversion}_drv.so %{_x_module_path}/drivers/%{NVfolder} %{_x_module_path}/extensions/%{NVfolder} %{_x_module_path}/%{NVfolder} %{_bindir}/nvidia*-%{NVversion}* %{_datadir}/applications/nvidia-settings-%{NVversion}.desktop %{_datadir}/pixmaps/nvidia-settings-%{NVversion}.png %{_mandir}/man1/nvidia*-%{NVversion}* %files libs %defattr(-,root,root,-) %dir %{_x_libraries}/%{NVfolder} %{_x_libraries}/%{NVfolder}/libXvMCNVIDIA*.so.* %dir %{_libdir}/%{NVfolder} %{_libdir}/%{NVfolder}/libGL*.so.* %{_libdir}/%{NVfolder}/libnvidia*.so.* #%{_libdir}/%{NVfolder}/libcuda.so.* %if %hastls %dir %{_libdir}/%{NVfolder}/tls %{_libdir}/%{NVfolder}/tls/libnvidia*.so.* %endif %files devel %defattr(-,root,root,-) %{_x_libraries}/libXvMCNVIDIA.a %{_x_libraries}/libXvMCNVIDIA*.so %{_x_libraries}/%{NVfolder}/libXvMCNVIDIA*.so %{_libdir}/%{NVfolder}/libGL.la %{_libdir}/%{NVfolder}/libGL.so %{_libdir}/%{NVfolder}/libnvidia-cfg.so #%{_libdir}/%{NVfolder}/libcuda.so %{_includedir}/%{NVfolder} %else %files -n %kmdl_name %defattr(-,root,root,-) %{kmdl_moduledir} %endif %changelog * Sun Aug 3 2008 Axel Thimm - 1:173.14.12-100 - Update to 173.14.12. * Thu Jun 19 2008 Axel Thimm - 1:173.14.09-99 - Update to 173.14.09. * Wed May 28 2008 Paulo Roma - 1:173.14.05-98 - Update to 173.14.05. - Removed patch2. * Sat Apr 19 2008 Axel Thimm - 1:169.12-97 - Apply patch for kernel 2.6.25. * Mon Mar 10 2008 Axel Thimm - 1:169.12-96 - Update to 169.12. * Tue Feb 5 2008 Axel Thimm - 1:169.09-95 - Update to 169.09. * Sun Dec 23 2007 Axel Thimm - 1:169.07-94 - Update to 169.07. * Sat Oct 6 2007 Axel Thimm - 1:100.14.19-92 - Update to 100.14.19. * Fri Jun 22 2007 Axel Thimm - 1:100.14.11-91 - Update to 100.14.11. * Tue Jun 12 2007 Axel Thimm - 1:100.14.09-88 - Update to 100.14.09. * Wed Mar 7 2007 Axel Thimm - 1:1.0_9755-86 - Update to 1.0-9755. * Fri Dec 22 2006 Axel Thimm - 1:1.0_9746-83 - Update to 1.0.9746. * Wed Dec 6 2006 Axel Thimm - 1:1.0_9631-82 - Update to 1.0-9631. * Tue Nov 7 2006 Axel Thimm - 1:1.0_9629-80 - Update to 1.0-9629. * Sat Nov 4 2006 Axel Thimm - 1:1.0_9626-79 - Update to 1.0-9626. * Fri Oct 27 2006 Paulo Roma - 1:1.0_9625-78 - Update to 1.0-9625. - Changed nvidia_drv.o for nvidia_drv.so - Applied patch for being compatible to eeprom. * Sat Oct 21 2006 Axel Thimm - 1:1.0_8776-77 - Update to 1.0-8776. * Fri Aug 25 2006 Axel Thimm - 1:1.0_8774-75 - Update to 1.0-8774. * Tue May 23 2006 Axel Thimm - Update to 1.0-8762. * Fri Apr 7 2006 Axel Thimm - Update to 1.0-8756. * Fri Dec 23 2005 Axel Thimm - Update to 1.0-8178. * Mon Dec 5 2005 Axel Thimm - Update to 1.0-8174. * Tue Aug 30 2005 Axel Thimm - Update to 1.0-7676. * Tue Jun 28 2005 Axel Thimm - Update to 1.0-7667. * Thu Jun 2 2005 Axel Thimm - Update to 1.0-7664. * Thu Mar 31 2005 Jarod Wilson - Update to 1.0-7174. * Wed Mar 16 2005 Jarod Wilson - Add cumulative patch NVIDIA_kernel-1.0-7167-03.11.2005.diff. * Tue Mar 15 2005 Axel Thimm - Update to 1.0-7167. * Wed Nov 10 2004 Axel Thimm - Update to 1.0-6629. * Sat Aug 7 2004 Axel Thimm - Update to 1.0-6111. * Sat Jun 30 2004 Axel Thimm - Update to 1.0-6106. * Sat Mar 13 2004 Axel Thimm - Split out development files. * Wed Jan 28 2004 Axel Thimm - Update to 1.0-5336. * Mon Dec 21 2003 Axel Thimm - Update to 1.0-5328. - Merged nvidia-graphics and nvidia-graphics-glx back together again. * Wed Dec 3 2003 Axel Thimm - Move libs to their own lib directory. - Can therefore remove Conflict with Mesa. * Tue Nov 11 2003 Axel Thimm - Added python XF86Config updater script by Peter Backlund. (slightly modified). * Mon Oct 13 2003 Axel Thimm - Simplified scripts, no more renaming/moving (#101775). * Sat Aug 9 2003 Axel Thimm - New kmdl_userland scheme. - Back to disttagging releases. * Tue Jun 24 2003 Axel Thimm - Major rewrite for atrpms macro style. * Fri Jun 20 2003 Axel Thimm - Adapted to atrpms kernel macros. - Fixed dependency on kernel (RH kernels provide for all builds). * Thu May 22 2003 Axel Thimm - Update to 1.0-4191. * Mon Dec 9 2002 Axel Thimm - Imported into atrpms. * Thu Nov 07 2002 Joseph Kain - Suppress lsmod output * Fri Oct 11 2002 Andy Ritger - Check that the module is loaded before reporting success. * Fri Sep 06 2002 Gareth Hughes - Change NVdriver to nvidia.o everywhere. * Mon Nov 26 2001 Joseph Kain - Use %%{_tmppath} instead of hardcoding /var/tmp * Tue Aug 24 2001 Joseph Kain - in preun check usage count of NVdriver before trying to unload. * Thu Aug 31 2000 Terence Ripperda - allow build scripts to specify a kernel version via TARGET_KERNEL variable otherwise fallback to `uname -r` - when searching for agpgart module, search in RPM_BUILD_ROOT, so we don't pick up an errant symbol on a build machine. * Tue Aug 15 2000 Mark Cooke - Change permissions on NVdriver to 444 to avoid symbol-stripping issues with versions of RPM after 3.0.4 - Add a test to make sure the NVdriver registers correctly. * Wed Aug 02 2000 Terence Ripperda - regress use of /proc/devices to get major number * Tue May 02 2000 Terence Ripperda - regress use of "make install" in post, no Makefile present * Fri Apr 27 2000 Nick Triantos - Use "NVdriver" and "install" targets on make - Remove BuildReq item from header, was causing build error * Thu Apr 27 2000 Gregory McLean - Cleaned out some redundant parts of the spec file. - Set the buildroot. - Made sure the preun gets called properly. - Added a %%clean section to keep building machine tidy. - Set up logic for epoc builds if needed.