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

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



Author: branden
Date: 2004-05-27 14:21:03 -0500 (Thu, 27 May 2004)
New Revision: 1454

Modified:
   trunk/debian/CHANGESETS
   trunk/debian/TODO
   trunk/debian/changelog
   trunk/debian/xserver-xfree86.config.in
   trunk/debian/xserver-xfree86.templates
Log:
Rework xserver-xfree86/config/device/driver debconf logic.
+ Attempt to populate driver choices by scanning filesystem first.
+ observe() if we do not find any.
+ Set default driver on an architecture-specific basis.  Use vga for
  alpha; vesa for amd64, hurd-i386, and i386; and fbdev for everyone else,
  except mips and mipsel boxen that report themselves as "SGI Ind*"
  machines via /proc/cpuinfo, for which we default to newport.
  (Closes: #226193, #249614)

Update xserver-xfree86/config/device/bus_id logic.
+ Add comments describing why we don't default to a blank answer all the
  time.
+ Use "1" as the default answer on systems that identify themselves as
  "SGI Indigo2" machines via /proc/cpuinfo.
+ Update template description to tell SGI Indigo2 XL users to specify "1"
  for the BusID.


Modified: trunk/debian/CHANGESETS
===================================================================
--- trunk/debian/CHANGESETS	2004-05-27 18:44:07 UTC (rev 1453)
+++ trunk/debian/CHANGESETS	2004-05-27 19:21:03 UTC (rev 1454)
@@ -14,4 +14,17 @@
 #251119: Fix breakage of NumLock.
     1452
 
+Rework xserver-xfree86/config/device/driver debconf logic.  Attempt to populate
+driver choices by scanning filesystem first.  observe() if we do not find any.
+Set default driver on an architecture-specific basis.  Use vga for alpha; vesa
+for amd64, hurd-i386, and i386; and fbdev for everyone else, except mips and
+mipsel boxen that report themselves as "SGI Ind*" machines via /proc/cpuinfo,
+for which we default to newport.  (Closes: #226193, #249614)  Update
+xserver-xfree86/config/device/bus_id logic.  Add comments describing why we
+don't default to a blank answer all the time.  Use "1" as the default answer on
+systems that identify themselves as "SGI Indigo2" machines via /proc/cpuinfo.
+Update template description to tell SGI Indigo2 XL users to specify "1" for the
+BusID.
+    1454
+
 vim:set ai et sts=4 sw=4 tw=80:

Modified: trunk/debian/TODO
===================================================================
--- trunk/debian/TODO	2004-05-27 18:44:07 UTC (rev 1453)
+++ trunk/debian/TODO	2004-05-27 19:21:03 UTC (rev 1454)
@@ -37,8 +37,6 @@
     configuration with readline frontend; lack of defaults
   + #229097: xserver-xfree86: [debconf] should tell the user the file is not
     going to be rewritten earlier [BR]
-  + #226193: xserver-xfree86: [debconf] need better (and arch-specific) video
-    driver defaults when discover fails [BR]
   + #226365: xserver-xfree86: [debconf] ask monitor/selection-method at medium
     priority, and make the default answer medium [BR]
   + #149586: xserver-xfree86: [debconf] errors from discover should not be
@@ -54,8 +52,6 @@
   + #229850: xserver-xfree86: [debconf] monitor selection methods need to be
     more careful about clobbering autodetected monitor sync ranges; study Jay
     Berkenbilt's feedback [BR]
-  + #249614: xserver-xfree86: [debconf] autodetect SGI Indy and Indigo2 systems
-    [BR]
 * hurd-i386 MANIFEST, and probably some debhelper files, are out of date.
 * Should xc/include/{Xw32defs.h,Xwinsock.h} be installed (and shipped) for
   the benefit of cross-compilers?  Check upstream Imakeage.

Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog	2004-05-27 18:44:07 UTC (rev 1453)
+++ trunk/debian/changelog	2004-05-27 19:21:03 UTC (rev 1454)
@@ -4,8 +4,25 @@
     warped the XKB types/basic file 7 years backwards in time.
     (Closes: #251119)
 
- -- Branden Robinson <branden@debian.org>  Thu, 27 May 2004 03:58:57 -0500
+  * Rework xserver-xfree86/config/device/driver debconf logic.
+    + Attempt to populate driver choices by scanning filesystem first.
+    + observe() if we do not find any.
+    + Set default driver on an architecture-specific basis.  Use vga for
+      alpha; vesa for amd64, hurd-i386, and i386; and fbdev for everyone else,
+      except mips and mipsel boxen that report themselves as "SGI Ind*"
+      machines via /proc/cpuinfo, for which we default to newport.
+      (Closes: #226193, #249614)
 
+  * Update xserver-xfree86/config/device/bus_id logic.
+    + Add comments describing why we don't default to a blank answer all the
+      time.
+    + Use "1" as the default answer on systems that identify themselves as
+      "SGI Indigo2" machines via /proc/cpuinfo.
+    + Update template description to tell SGI Indigo2 XL users to specify "1"
+      for the BusID.
+
+ -- Branden Robinson <branden@debian.org>  Thu, 27 May 2004 14:07:59 -0500
+
 xfree86 (4.3.0.dfsg.1-2) unstable; urgency=low
 
   Changes by Branden Robinson:

Modified: trunk/debian/xserver-xfree86.config.in
===================================================================
--- trunk/debian/xserver-xfree86.config.in	2004-05-27 18:44:07 UTC (rev 1453)
+++ trunk/debian/xserver-xfree86.config.in	2004-05-27 19:21:03 UTC (rev 1454)
@@ -548,81 +548,108 @@
 
 # priority of xserver-xfree86/config/device/driver
 PRIORITY=high
-# set a failsafe answer for xserver-xfree86/config/device/driver
-DEFAULT=vesa
 
+DRIVER_DIR=/usr/X11R6/lib/modules/drivers
+
+# Build list of available video drivers, omitting the atimisc, r128, and
+# radeon sub-modules (the ati driver knows when and how to load these).
+# v4l is not a display driver, and dummy is for advanced users.
+DRIVER_LIST="$(echo $(find "$DRIVER_DIR" -name '*_drv.o' 2>/dev/null \
+                      | sed 's|^.*/\(.*\)_drv\.o|\1|' \
+                      | egrep -v '(atimisc|dummy|r128|radeon|v4l)' | sort) \
+               | sed 's/ /, /g')"
+
+if [ -z "$DRIVER_LIST" ]; then
+  observe "no video driver modules found in $DRIVER_DIR"
+fi
+
+# Set a hard-coded module list (if necessary) and default driver module on an
+# architecture-specific basis.
+case "$ARCH" in
+  alpha)
+    DRIVER_LIST=${DRIVER_LIST:=ati, cirrus, glint, mga, nv, rendition, s3, s3virge, savage, siliconmotion, tdfx, tga, vga}
+    DEFAULT_DRIVER=vga
+    ;;
+  amd64)
+    DRIVER_LIST=${DRIVER_LIST:=apm, ark, ati, chips, cirrus, cyrix, fbdev, glint, i128, i740, i810, imstt, mga, neomagic, newport, nsc, nv, rendition, s3, s3virge, savage, siliconmotion, sis, tdfx, tga, trident, tseng, vesa, vga, via, vmware}
+    DEFAULT_DRIVER=vesa
+    ;;
+  arm|hppa)
+    DRIVER_LIST=${DRIVER_LIST:=ati, chips, fbdev, glint, mga, nv, s3, s3virge, savage, sis, tdfx, trident, vga}
+    DEFAULT_DRIVER=fbdev
+    ;;
+  hurd-i386)
+    DRIVER_LIST=${DRIVER_LIST:=apm, ark, ati, chips, cirrus, cyrix, fbdev, glint, i128, i740, i810, imstt, mga, neomagic, newport, nsc, nv, rendition, s3, s3virge, savage, siliconmotion, sis, tdfx, tga, trident, tseng, vesa, vga, vmware}
+    DEFAULT_DRIVER=vesa
+    ;;
+  i386)
+    DRIVER_LIST=${DRIVER_LIST:=apm, ark, ati, chips, cirrus, cyrix, fbdev, glide, glint, i128, i740, i810, imstt, mga, neomagic, newport, nsc, nv, rendition, s3, s3virge, savage, siliconmotion, sis, tdfx, tga, trident, tseng, vesa, vga, vmware}
+    DEFAULT_DRIVER=vesa
+    ;;
+  ia64)
+    DRIVER_LIST=${DRIVER_LIST:=apm, ark, ati, chips, cirrus, cyrix, fbdev, glint, i128, i740, i810, imstt, mga, neomagic, newport, nv, rendition, s3, s3virge, savage, siliconmotion, sis, tdfx, tga, trident, tseng, vesa, vga, vmware}
+    DEFAULT_DRIVER=fbdev
+    ;;
+  m68k|powerpc)
+    DRIVER_LIST=${DRIVER_LIST:=ati, chips, fbdev, glint, imstt, mga, nv, s3, s3virge, savage, sis, tdfx, trident, vga}
+    DEFAULT_DRIVER=fbdev
+    ;;
+  mips|mipsel)
+    DRIVER_LIST=${DRIVER_LIST:=ati, chips, fbdev, glint, mga, newport, nv, s3, s3virge, savage, sis, tdfx, trident}
+    # Are we dealing with an SGI Indy or Indigo2?
+    if [ -e /proc/cpuinfo ]; then
+      if grep -q "system type.*:.*SGI Ind"; then
+        PRIORITY=medium
+        DEFAULT_DRIVER=newport
+      fi
+    fi
+    DEFAULT_DRIVER=${DEFAULT_DRIVER:=fbdev}
+    ;;
+  sparc)
+    DRIVER_LIST=${DRIVER_LIST:=apm, ark, ati, chips, cirrus, fbdev, glint, i128, i740, imstt, mga, neomagic, nv, rendition, s3virge, savage, siliconmotion, sunbw2, suncg14, suncg3, suncg6, sunffb, sunleo, suntcx, tdfx, trident, vesa, vga}
+    DEFAULT_DRIVER=fbdev
+    ;;
+  *)
+    internal_error "no driver list known for architecture $ARCH"
+    ;;
+esac
+
+observe "available video driver list set to \"$DRIVER_LIST\""
+
 # attempt to autodetect
-if which discover > /dev/null 2>&1; then
+if which discover >/dev/null 2>&1; then
   if [ "$AUTODETECT_VIDEO_CARD" = "true" ]; then
     if [ $NDRIVERS -eq 0 ]; then
-      debug_echo "could not autodetect X server driver: no video card detected, or no driver known for it"
+      observe "could not autodetect X server driver: no video card" \
+              "detected, or no driver known for it"
     elif [ $NDRIVERS -eq 1 ]; then
-      debug_echo "autodetected X server driver: $DRIVERS"
+      observe "autodetected X server driver: $DRIVERS"
       PRIORITY=low
-      DEFAULT="$DRIVERS"
+      DEFAULT_DRIVER="$DRIVERS"
     elif [ $NDRIVERS -gt 1 ]; then
-      debug_echo "could not autodetect X server driver: multiple drivers for video cards"
-      VIDEOCARD_DRIVER_REPORT=$(echo "$DISCOVERED_VIDEO" | awk 'BEGIN { FS="\t"; printf " %-30s%30s\n .\n", "Detected Video Card", "Suggested driver module" } { printf " %-50s%10s\n", $1, $3 } END { printf " .\n" }')
-      # can't do this until there is a way to embed newlines into debconf command streams :(
-      #db_subst shared/multiple_possible_x-drivers detected_cards "$VIDEOCARD_DRIVER_REPORT"
-      debug_echo "$VIDEOCARD_DRIVER_REPORT"
+      observe "could not autodetect X server driver: multiple drivers for" \
+              "video cards"
+      VIDEOCARD_DRIVER_REPORT=$(echo "$DISCOVERED_VIDEO" \
+        | awk 'BEGIN { FS="\t"; printf " %-30s%30s\n .\n", "Detected Video Card", "Suggested driver module" } { printf " %-50s%10s\n", $1, $3 } END { printf " .\n" }')
+      # can't do this until there is a way to embed newlines into debconf
+      # command streams :(
+      # db_subst shared/multiple_possible_x-drivers detected_cards \
+      #   "$VIDEOCARD_DRIVER_REPORT"
+      observe "$VIDEOCARD_DRIVER_REPORT"
+      PRIORITY=high
       db_input "$(priority_ceil high)" xserver-xfree86/multiple_possible_x-drivers || debug_report_status "db_input $(priority_ceil high) xserver-xfree86/multiple_possible_x-drivers" "$?"
       db_go
     fi
   else
-    debug_echo "user declined video card autodetection (driver)"
+    observe "user declined video card autodetection (driver)"
   fi
 else
-  debug_echo "could not autodetect X server driver: discover not found"
+  observe "could not autodetect X server driver: discover not found"
 fi
 
-# Build list of available video drivers, omitting the atimisc, r128, and
-# radeon sub-modules (the ati driver knows when and how to load these).
-# v4l is not a display driver, and dummy is for advanced users.
-DRIVER_LIST="$(echo $(find /usr/X11R6/lib/modules/drivers -name '*_drv.o' \
-                      2>/dev/null | sed 's|^.*/\(.*\)_drv\.o|\1|' \
-                      | egrep -v '(atimisc|dummy|r128|radeon|v4l)' | sort) \
-               | sed 's/ /, /g')"
-
-if [ -z "$DRIVER_LIST" ]; then
-  observe "no modules found in module directory; falling back to hard-coded" \
-          "list for $ARCH"
-  case "$ARCH" in
-    alpha)
-      DRIVER_LIST="ati, cirrus, glint, mga, nv, rendition, s3, s3virge, savage, siliconmotion, tdfx, tga, vga"
-      ;;
-    amd64)
-      DRIVER_LIST="apm, ark, ati, chips, cirrus, cyrix, fbdev, glint, i128, i740, i810, imstt, mga, neomagic, newport, nsc, nv, rendition, s3, s3virge, savage, siliconmotion, sis, tdfx, tga, trident, tseng, vesa, vga, via, vmware"
-      ;;
-    arm|hppa)
-      DRIVER_LIST="ati, chips, fbdev, glint, mga, nv, s3, s3virge, savage, sis, tdfx, trident, vga"
-      ;;
-    hurd-i386)
-      DRIVER_LIST="apm, ark, ati, chips, cirrus, cyrix, fbdev, glint, i128, i740, i810, imstt, mga, neomagic, newport, nsc, nv, rendition, s3, s3virge, savage, siliconmotion, sis, tdfx, tga, trident, tseng, vesa, vga, via, vmware"
-      ;;
-    i386)
-      DRIVER_LIST="apm, ark, ati, chips, cirrus, cyrix, fbdev, glide, glint, i128, i740, i810, imstt, mga, neomagic, newport, nsc, nv, rendition, s3, s3virge, savage, siliconmotion, sis, tdfx, tga, trident, tseng, vesa, vga, via, vmware"
-      ;;
-    ia64)
-      DRIVER_LIST="apm, ark, ati, chips, cirrus, cyrix, fbdev, glint, i128, i740, i810, imstt, mga, neomagic, newport, nv, rendition, s3, s3virge, savage, siliconmotion, sis, tdfx, tga, trident, tseng, vesa, vga, vmware"
-      ;;
-    m68k|powerpc)
-      DRIVER_LIST="ati, chips, fbdev, glint, imstt, mga, nv, s3, s3virge, savage, sis, tdfx, trident, vga"
-      ;;
-    mips|mipsel)
-     DRIVER_LIST="ati, chips, fbdev, glint, mga, newport, nv, s3, s3virge, savage, sis, tdfx, trident"
-      ;;
-    sparc)
-      DRIVER_LIST="apm, ark, ati, chips, cirrus, fbdev, glint, i128, i740, imstt, mga, neomagic, nv, rendition, s3virge, savage, siliconmotion, sunbw2, suncg14, suncg3, suncg6, sunffb, sunleo, suntcx, tdfx, trident, vesa, vga"
-      ;;
-    *)
-      internal_error "no driver list known for architecture $ARCH"
-      ;;
-  esac
-fi
-
 db_subst xserver-xfree86/config/device/driver choices "$DRIVER_LIST"
-auto_answer db_input "$(priority_ceil $PRIORITY)" xserver-xfree86/config/device/driver "$DEFAULT"
+auto_answer db_input "$(priority_ceil $PRIORITY)" \
+  xserver-xfree86/config/device/driver "$DEFAULT_DRIVER"
 
 # card identifier; try to set a sensible default
 DEFAULT=
@@ -657,6 +684,11 @@
 # BusID
 PRIORITY=low
 DEFAULT=
+
+# Some PowerPCs need to be told where to find the video card even if there is
+# only one in the machine (broken PCI bus code in the XFree86 X server, most
+# likely).  If there are multiple video cards, we need to configure one as the
+# primary head.
 if [ "$ARCH" = "powerpc" -o "$MULTIHEAD" = "yes" ]; then
   if [ "$ARCH" = "powerpc" ]; then
     PRIORITY=medium
@@ -676,6 +708,16 @@
     fi
   fi
 fi
+
+# SGI Indigo2 XLs require a special hack, per Guido Guenther (see Debian
+# #249614).
+if [ -e /proc/cpuinfo ]; then
+  if grep -q "system type.*:.*SGI Indigo2"; then
+    PRIORITY=medium
+    DEFAULT=1
+  fi
+fi
+
 # this question requires input validation
 if [ -n "$DEFAULT" ]; then
   auto_answer validate_bus_id_db_input "$(priority_ceil $PRIORITY)" xserver-xfree86/config/device/bus_id "$DEFAULT"

Modified: trunk/debian/xserver-xfree86.templates
===================================================================
--- trunk/debian/xserver-xfree86.templates	2004-05-27 18:44:07 UTC (rev 1453)
+++ trunk/debian/xserver-xfree86.templates	2004-05-27 19:21:03 UTC (rev 1454)
@@ -157,6 +157,8 @@
  heads.  Further configuration will have to be done manually in the X server
  configuration file, /etc/X11/XF86Config-4.
  .
+ Users of SGI Indigo2 XL machines should specify simply "1" here.
+ .
  You may wish to use the "lspci" command to determine the bus location of your
  PCI or AGP video card.  Keep in mind that lspci reports the bus, device, and
  function numbers in hexadecimal, not decimal.
@@ -164,8 +166,8 @@
  When possible, this question has been pre-answered for you and you should
  accept the default unless you know it doesn't work.
  .
- Users of non-PowerPC machines with only one video card should leave this
- entry blank.
+ Users of machines other than PowerPCs or SGI Indigo2 XLs with only one video
+ card should leave this entry blank.
 
 Template: xserver-xfree86/config/device/bus_id_error
 Type: note



Reply to: