[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

X Strike Force XFree86 SVN commit: r1514 - trunk/debian



Author: branden
Date: 2004-06-03 23:49:35 -0500 (Thu, 03 Jun 2004)
New Revision: 1514

Modified:
   trunk/debian/CHANGESETS
   trunk/debian/TODO
   trunk/debian/changelog
   trunk/debian/xserver-xfree86.config.in
Log:
Enhance xserver-xfree86's config script to be able to handle the new
output format of lspci, which reports the PCI domain information as well.
Retain support for the older lspci format, and if the output format isn't
recognized at all, issue a warning and do not set a default answer for the
BusID debconf question.  (Closes: #251568)


Modified: trunk/debian/CHANGESETS
===================================================================
--- trunk/debian/CHANGESETS	2004-06-04 04:22:29 UTC (rev 1513)
+++ trunk/debian/CHANGESETS	2004-06-04 04:49:35 UTC (rev 1514)
@@ -99,4 +99,11 @@
 they should not be on UltraSPARC Linux.
     1512
 
+Enhance xserver-xfree86's config script to be able to handle the new
+output format of lspci, which reports the PCI domain information as well.
+Retain support for the older lspci format, and if the output format isn't
+recognized at all, issue a warning and do not set a default answer for the
+BusID debconf question.  (Closes: #251568)
+    1514
+
 vim:set ai et sts=4 sw=4 tw=80:

Modified: trunk/debian/TODO
===================================================================
--- trunk/debian/TODO	2004-06-04 04:22:29 UTC (rev 1513)
+++ trunk/debian/TODO	2004-06-04 04:49:35 UTC (rev 1514)
@@ -21,8 +21,6 @@
   XAA and Render support for the sunffb driver.  Mmmm, burning manflesh...
   (Ben Collins pinged for status on 2004-06-03.)
 * Debconf fixes:
-  + #251568: Cope with the ever-changing format of lspci -n output.  Need to
-    handle both "bus:device.function" and "domain:bus:device.function".
   + Add 1280x1024@60Hz as selectable mode when configuring monitor by resolution
     and refresh rate.
   + #251808: wrongly rejects SBUS BusID strings (should accept simple integers,

Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog	2004-06-04 04:22:29 UTC (rev 1513)
+++ trunk/debian/changelog	2004-06-04 04:49:35 UTC (rev 1514)
@@ -101,8 +101,14 @@
   * Expand patch #104 to prevent 64-bit addressing modes from being used when
     they should not be on UltraSPARC Linux.
 
- -- Branden Robinson <branden@debian.org>  Thu,  3 Jun 2004 22:55:22 -0500
+  * Enhance xserver-xfree86's config script to be able to handle the new
+    output format of lspci, which reports the PCI domain information as well.
+    Retain support for the older lspci format, and if the output format isn't
+    recognized at all, issue a warning and do not set a default answer for the
+    BusID debconf question.  (Closes: #251568)
 
+ -- Branden Robinson <branden@debian.org>  Thu,  3 Jun 2004 23:43:37 -0500
+
 xfree86 (4.3.0.dfsg.1-4) unstable; urgency=medium
 
   * The "thanks for the 'testing'" release.

Modified: trunk/debian/xserver-xfree86.config.in
===================================================================
--- trunk/debian/xserver-xfree86.config.in	2004-06-04 04:22:29 UTC (rev 1513)
+++ trunk/debian/xserver-xfree86.config.in	2004-06-04 04:49:35 UTC (rev 1514)
@@ -705,14 +705,29 @@
     PRIORITY=high
   fi
   if which lspci > /dev/null 2>&1; then
-    # try to guess the correct BusID
-    VIDEO_CARD=$(LC_ALL=C lspci -n | grep "Class 0300:" | head -n 1 | cut -d\  -f1)
+    # Try to guess the correct BusID.
+    VIDEO_CARD=$(LC_ALL=C lspci -n | grep "Class 0300:" | sort -n | head -n 1 \
+      | cut -d\  -f1)
     if [ -n "$VIDEO_CARD" ]; then
-      # we now have an entry in "hex:hex.hex" format, need "PCI:decimal:decimal:decimal"
-      BUS=$(printf "%d" 0x$(echo $VIDEO_CARD | cut -d: -f1) )
-      DEVICE=$(printf "%d" 0x$(echo $VIDEO_CARD | cut -d: -f2 | cut -d. -f1) )
-      FUNCTION=$(printf "%d" 0x$(echo $VIDEO_CARD | cut -d. -f2) )
-      DEFAULT=PCI:$BUS:$DEVICE:$FUNCTION
+      # Recent versions of lspci report a four-digit domain as the first field.
+      if expr "$VIDEO_CARD" : ".*:.*:.*\..*" >/dev/null 2>&1; then
+        # We have an entry in "hex:hex:hex.hex" format; we need
+        # "PCI:decimal:decimal:decimal" (we don't use the domain).
+        DOMAIN=$(printf "%d" 0x$(echo $VIDEO_CARD | cut -d: -f1) )
+        BUS=$(printf "%d" 0x$(echo $VIDEO_CARD | cut -d: -f2) )
+        DEVICE=$(printf "%d" 0x$(echo $VIDEO_CARD | cut -d: -f3 | cut -d. -f1) )
+        FUNCTION=$(printf "%d" 0x$(echo $VIDEO_CARD | cut -d. -f2) )
+        DEFAULT="PCI:$BUS:$DEVICE:$FUNCTION"
+      elif expr "$VIDEO_CARD" : ".*:.*\..*" >/dev/null 2>&1; then
+        # We have an entry in "hex:hex.hex" format; we need
+        # "PCI:decimal:decimal:decimal".
+        BUS=$(printf "%d" 0x$(echo $VIDEO_CARD | cut -d: -f1) )
+        DEVICE=$(printf "%d" 0x$(echo $VIDEO_CARD | cut -d: -f2 | cut -d. -f1) )
+        FUNCTION=$(printf "%d" 0x$(echo $VIDEO_CARD | cut -d. -f2) )
+        DEFAULT="PCI:$BUS:$DEVICE:$FUNCTION"
+      else
+        warn "unrecognized output from lspci: \"$VIDEO_CARD\""
+      fi
     fi
   fi
 fi



Reply to: