[svn] r4814 - trunk/rpms/nvidia-x11-drv

packagers at lists.rpmforge.net packagers at lists.rpmforge.net
Wed Oct 11 15:53:22 CEST 2006


Author: thias
Date: 2006-10-11 15:53:21 +0200 (Wed, 11 Oct 2006)
New Revision: 4814

Modified:
   trunk/rpms/nvidia-x11-drv/nvidia-config-display
   trunk/rpms/nvidia-x11-drv/nvidia-x11-drv.spec
Log:
Update to the 1.0-9625 beta drivers and major nvidia-x11-drv enhancements.


Modified: trunk/rpms/nvidia-x11-drv/nvidia-config-display
===================================================================
--- trunk/rpms/nvidia-x11-drv/nvidia-config-display	2006-10-10 13:54:31 UTC (rev 4813)
+++ trunk/rpms/nvidia-x11-drv/nvidia-config-display	2006-10-11 13:53:21 UTC (rev 4814)
@@ -76,26 +76,6 @@
     files.module = string.join(newModPath, ",")
 
 #
-# Adds a module to the Modules section.
-# The module will only be listed once.
-#
-def addModule(modules, moduleName):
-    m = ixf86config.XF86ConfLoad()
-    m.name = moduleName
-    removeModule(modules, moduleName)
-    modules.load.insert(m)
-
-#
-# Removes a module from the Modules section.
-#
-def removeModule(modules, moduleName):
-    i = 0
-    for m in modules.load:
-        if (m.name.lower() == moduleName.lower()):
-            modules.load.remove(i)
-        i += 1
-
-#
 # Set driver to newDriver where
 # if driver is oldDriver
 #
@@ -108,7 +88,7 @@
     print "Error:", err
 
 def printUsage():
-    print "Usage: nvidia-config-display enable | disable"
+    print "Usage: nvidia-config-display [enable|disable]"
 
 # ------------
 # Main section
@@ -146,24 +126,18 @@
         printError("Cannot write backup file")
         sys.exit(1)
 else:
-    printError("Cannot open X config file")
+    printError("Cannot open X config file (missing or malformed)")
     sys.exit(1)
 try:
     if (arg == "enable"):
         # Enable nvidia driver:
-        # Add nvidia module path, disable dri and GLcore modules
-        # make sure glx is enabled and change driver to 'nvidia'
+        # Add nvidia module path and change driver to 'nvidia'
         addModulePath(xconfig.files, "/extensions/nvidia")
-        removeModule(xconfig.modules, "dri")
-        removeModule(xconfig.modules, "GLcore")
-        addModule(xconfig.modules, "glx")
         toggleDriver(xconfig.device, "nv", "nvidia")
     elif (arg == "disable"):
         # Disable nvidia driver:
-        # Remove nvidia module path, enable dri module
-        # and change driver to 'nv'
+        # Remove nvidia module path and change driver to 'nv'
         removeModulePath(xconfig.files, "/extensions/nvidia")
-        addModule(xconfig.modules, "dri")
         toggleDriver(xconfig.device, "nvidia", "nv")
     else:
         # This shouldn't happen, but we handle it anyway

Modified: trunk/rpms/nvidia-x11-drv/nvidia-x11-drv.spec
===================================================================
--- trunk/rpms/nvidia-x11-drv/nvidia-x11-drv.spec	2006-10-10 13:54:31 UTC (rev 4813)
+++ trunk/rpms/nvidia-x11-drv/nvidia-x11-drv.spec	2006-10-11 13:53:21 UTC (rev 4814)
@@ -3,16 +3,17 @@
 # Dist: nodist
 
 %define majmin          1.0
-%define relver          8774
+%define relver          9625
 %define nvidialibdir    %{_libdir}/nvidia
 %define nvidialib32dir  %{_prefix}/lib/nvidia
+%define desktop_vendor  rpmforge
 
 %define debug_package   %{nil}
 
 Summary: Proprietary NVIDIA hardware accelerated OpenGL driver
 Name: nvidia-x11-drv
 Version: %{majmin}.%{relver}
-Release: 3
+Release: 2
 License: Proprietary
 Group: User Interface/X Hardware Support
 URL: http://www.nvidia.com/object/unix.html
@@ -29,6 +30,8 @@
 Requires: gcc
 Requires(post): dkms, /sbin/ldconfig
 Requires(preun): dkms
+# Required by the nvidia-config-display utility/script
+Requires: pyxf86config
 # Required by the NVIDIA run file
 Buildrequires: tar
 # Required for our build
@@ -63,6 +66,9 @@
 sh %{SOURCE1} --extract-only --target pkg/
 %endif
 
+# Fix for FC6 kernels
+%{__perl} -pi -e 's|#include <linux/config.h>||g' pkg/usr/src/nv/nv-linux.h
+
 %define dkms_name nvidia
 %define dkms_vers %{version}-%{release}
 %define quiet -q
@@ -88,16 +94,16 @@
 %{__mkdir_p} %{buildroot}/%{nvidialibdir}/
 %{__install} -p -m 0755 pkg/usr/X11R6/lib/libXvMCNVIDIA.so.* \
     %{buildroot}/%{nvidialibdir}/
-#{__install} -p -m 0644 pkg/usr/X11R6/lib/libXvMCNVIDIA.a \
-#   %{buildroot}/%{nvidialibdir}/
+%{__install} -p -m 0644 pkg/usr/X11R6/lib/libXvMCNVIDIA.a \
+    %{buildroot}/%{nvidialibdir}/
 
 # Install X driver and extension (is the nvidia_drv.o useful?)
-%{__mkdir_p} %{buildroot}%{_libdir}/xorg/modules/drivers/nvidia/
-%{__install} -p -m 0644 pkg/usr/X11R6/lib/modules/drivers/*.so \
+%{__mkdir_p} %{buildroot}%{_libdir}/xorg/modules/drivers/
+%{__install} -p -m 0755 pkg/usr/X11R6/lib/modules/drivers/nvidia_drv.so \
     %{buildroot}%{_libdir}/xorg/modules/drivers/
 %{__mkdir_p} %{buildroot}%{_libdir}/xorg/modules/extensions/nvidia/
 %{__install} -p -m 0755 pkg/usr/X11R6/lib/modules/extensions/libglx.so.%{version} \
-    %{buildroot}%{_libdir}/xorg/modules/extensions/nvidia/
+    %{buildroot}%{_libdir}/xorg/modules/extensions/nvidia/libglx.so
 
 # Install GL and tls libs
 %{__mkdir_p} %{buildroot}/%{nvidialibdir}/tls/
@@ -107,7 +113,7 @@
     %{buildroot}/%{nvidialibdir}/tls/
 
 %ifarch x86_64
-# Install compat GL and tls libs
+# Install 32bit compat GL and tls libs
 %{__mkdir_p} %{buildroot}/%{nvidialib32dir}/tls/
 %{__install} -p -m 0755 pkg/usr/lib/*.so.%{version} \
     %{buildroot}/%{nvidialib32dir}/
@@ -116,7 +122,6 @@
 %endif
 
 # Create .so symlinks
-# (what was that libXvMCNVIDIA_dynamic for?)
 for libname in libGLcore libGL libnvidia-cfg libnvidia-tls tls/libnvidia-tls; do
     %{__ln_s} `basename ${libname}`.so.%{version} \
         %{buildroot}/%{nvidialibdir}/${libname}.so.1
@@ -131,8 +136,6 @@
         %{buildroot}/%{nvidialib32dir}/${libname}.so
 done
 %endif
-%{__ln_s} libglx.so.%{version} \
-    %{buildroot}/%{_libdir}/xorg/modules/extensions/nvidia/libglx.so
 
 # Install useful nvidia tools
 %{__mkdir_p} %{buildroot}%{_bindir}/
@@ -149,9 +152,15 @@
 %{__install} -p -m 0644 pkg/usr/share/pixmaps/nvidia-settings.png \
     %{buildroot}%{_datadir}/pixmaps/
 
+# 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' \
+    pkg/usr/share/applications/nvidia-settings.desktop
+
 # Desktop entry for nvidia-settings
 %{__mkdir_p} %{buildroot}%{_datadir}/applications/
-desktop-file-install --vendor none \
+desktop-file-install --vendor %{desktop_vendor} \
     --dir %{buildroot}/%{_datadir}/applications/ \
     --add-category System \
     --add-category Application \
@@ -164,7 +173,10 @@
 
 # Install ld.so.conf.d file
 %{__mkdir_p} %{buildroot}%{_sysconfdir}/ld.so.conf.d/
-echo %{nvidialibdir} > %{buildroot}%{_sysconfdir}/ld.so.conf.d/nvidia.conf
+echo %{nvidialibdir} >    %{buildroot}%{_sysconfdir}/ld.so.conf.d/nvidia.conf
+%ifarch x86_64
+echo %{nvidialib32dir} >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/nvidia.conf
+%endif
 
 # Install profile.d files
 %{__install} -D -p -m 0755 %{SOURCE2} \
@@ -183,6 +195,12 @@
 
 %post
 /sbin/ldconfig
+# 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 the proprietary driver
+%{_sbindir}/nvidia-config-display enable || :
 # Add to DKMS registry
 dkms add -m %{dkms_name} -v %{dkms_vers} %{?quiet} || :
 # Rebuild and make available for the currenty running kernel
@@ -192,6 +210,10 @@
 %preun
 # Remove all versions from DKMS registry
 dkms remove -m %{dkms_name} -v %{dkms_vers} %{?quiet} --all || :
+# Last removal, disable the proprietary driver
+if [ $1 -eq 0 ]; then
+    %{_sbindir}/nvidia-config-display disable || :
+fi
 
 %postun -p /sbin/ldconfig
 
@@ -202,16 +224,17 @@
 # Kernel and dkms related bits
 %config %{_sysconfdir}/modprobe.d/nvidia
 %{_usrsrc}/%{dkms_name}-%{dkms_vers}/
-# fixme: use udev
-%attr(0600,root,root) %dev(c,195,0) /dev/nvidia0
-%attr(0600,root,root) %dev(c,195,1) /dev/nvidia1
-%attr(0600,root,root) %dev(c,195,2) /dev/nvidia2
-%attr(0600,root,root) %dev(c,195,3) /dev/nvidia3
-%attr(0600,root,root) %dev(c,195,255) /dev/nvidiactl
+# Devices for udev to copy directly
 %attr(0600,root,root) %dev(c,195,0) %{_sysconfdir}/udev/devices/nvidia0
 %attr(0600,root,root) %dev(c,195,1) %{_sysconfdir}/udev/devices/nvidia1
 %attr(0600,root,root) %dev(c,195,2) %{_sysconfdir}/udev/devices/nvidia2
 %attr(0600,root,root) %dev(c,195,3) %{_sysconfdir}/udev/devices/nvidia3
+%attr(0600,root,root) %dev(c,195,4) %{_sysconfdir}/udev/devices/nvidia4
+%attr(0600,root,root) %dev(c,195,5) %{_sysconfdir}/udev/devices/nvidia5
+%attr(0600,root,root) %dev(c,195,6) %{_sysconfdir}/udev/devices/nvidia6
+%attr(0600,root,root) %dev(c,195,7) %{_sysconfdir}/udev/devices/nvidia7
+%attr(0600,root,root) %dev(c,195,8) %{_sysconfdir}/udev/devices/nvidia8
+%attr(0600,root,root) %dev(c,195,9) %{_sysconfdir}/udev/devices/nvidia9
 %attr(0600,root,root) %dev(c,195,255) %{_sysconfdir}/udev/devices/nvidiactl
 # Libraries and X modules
 %config %{_sysconfdir}/ld.so.conf.d/nvidia.conf
@@ -223,8 +246,8 @@
 %{nvidialib32dir}/*.so.*
 %{nvidialib32dir}/tls/
 %endif
-%{_libdir}/xorg/modules/drivers/nvidia*
-%{_libdir}/xorg/modules/extensions/nvidia/
+%{_libdir}/xorg/modules/drivers/nvidia_drv.so
+%{_libdir}/xorg/modules/extensions/nvidia/libglx.so
 # Tools and utilities
 %{_sysconfdir}/profile.d/*
 %{_bindir}/*
@@ -233,10 +256,10 @@
 %{_datadir}/pixmaps/*
 %{_mandir}/man1/*
 
-# Hopefully not needed devel (might violate the license not to include them)
+# Not needed devel but would violate the license not to include them
 #files devel
 #defattr(-,root,root,0755)
-#{nvidialibdir}/*.a
+%{nvidialibdir}/*.a
 %{nvidialibdir}/*.so
 %ifarch x86_64
 %{nvidialib32dir}/*.so
@@ -244,6 +267,18 @@
 
 
 %changelog
+* Wed Oct 11 2006 Matthias Saou <http://freshrpms.net/> 1.0.9625-2
+- Fix desktop entry.
+- Remove static dev entries, let udev take care of copying them to /dev.
+- Small fix to the driver file mode and remove the created empty directory.
+- Add %%{nvidialib32dir} to the ld.so.conf.d file on x86_64.
+- Make sure we have a Files section in xorg.conf, otherwise create an empty
+  one for the nvidia-config-display utility/script to work properly.
+- Run the nvidia-config-display utility/script in %%post.
+
+* Tue Oct 10 2006 Matthias Saou <http://freshrpms.net/> 1.0.9625-1
+- Update to the 1.0-9625 beta drivers.
+
 * Tue Oct 10 2006 Matthias Saou <http://freshrpms.net/> 1.0.8774-3
 - Add the rpm release to the dkms module version, to make updating the module
   to a fixed same version work (--rpm_safe_upgrade doesn't work as advertised).



More information about the svn-commits mailing list