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

Bug#469299: xserver-xorg: sparc driver detection puts description in Driver field



Package: xserver-xorg
Version: 1:7.3+10
Severity: normal
Tags: patch

xserver-xorg's postinst script generate xorg.conf with things like:

Section "Device"
	Identifier	"Configured Video Device"
	Driver		"Sun Creator3D framebuffer or similar (SUNW,501-3129) XFree86 sunffb"
EndSection

I can fix this by removing the following from xserver-xorg's postinst:

--- xserver-xorg.postinst	2008-03-04 14:38:58.000000000 +0100
+++ xserver-xorg.postinst.patched	2008-03-04 15:17:35.000000000 +0100
@@ -1001,6 +1001,7 @@
 NCARDS=0
 NSERVERS=0
 NDRIVERS=0
+DRIVERS_LIST=
 MULTIHEAD=
 
 # get machine architecture
@@ -1425,7 +1426,6 @@
   if which $DISCOVER_PROG > /dev/null 2>&1; then
     DISCOVERED_VIDEO=$($DISCOVER_FUNC)
     MULTIHEAD=$(echo "$DISCOVERED_VIDEO" | wc -l)
-    DISCOVERED_VIDEO=$(echo "$DISCOVERED_VIDEO" | head -n 1)
     if [ -n "$DISCOVERED_VIDEO" ]; then
       NCARDS=$(echo "$DISCOVERED_VIDEO" | wc -l)
       SERVERS=$(echo "$DISCOVERED_VIDEO" | awk 'BEGIN { FS="\t" } {print $2}' | grep -v unknown | sort | uniq)
@@ -1435,10 +1435,14 @@
       DRIVERS=$(echo "$DISCOVERED_VIDEO" | awk 'BEGIN { FS="\t" } {print $NF}' | grep -v unknown | sort | uniq)
       if [ -n "$DRIVERS" ]; then
         NDRIVERS=$(echo "$DRIVERS" | wc -l)
+	DRIVERS_LIST=$(echo "$DRIVERS" | awk 'BEGIN {ORS="";FS="\t"} {if(NR > 1){print last ","};last=$0} END {print last}')
       fi
       if [ $MULTIHEAD -gt 1 ]; then
         MULTIHEAD=yes
       fi
+      DISCOVERED_VIDEO=$(echo "$DRIVERS" | head -n 1)
+    else
+      DISCOVERED_VIDEO=""
     fi
   else
     DISCOVERED_VIDEO=""
@@ -1446,7 +1450,7 @@
 else
   DISCOVERED_VIDEO=""
 fi
-db_subst xserver-xorg/config/device/driver choices "$DISCOVERED_VIDEO"
+db_subst xserver-xorg/config/device/driver choices "$DRIVERS_LIST"
 auto_answer db_input low xserver-xorg/config/device/driver "$DISCOVERED_VIDEO"
 
 if [ -n "$FIRSTINST" ] || [ -n "$RECONFIGURE" ]; then

Hochachtungsvoll,
	Bernhard R. Link
--- xserver-xorg.postinst	2008-03-04 14:38:58.000000000 +0100
+++ xserver-xorg.postinst.patched	2008-03-04 15:17:35.000000000 +0100
@@ -1001,6 +1001,7 @@
 NCARDS=0
 NSERVERS=0
 NDRIVERS=0
+DRIVERS_LIST=
 MULTIHEAD=
 
 # get machine architecture
@@ -1425,7 +1426,6 @@
   if which $DISCOVER_PROG > /dev/null 2>&1; then
     DISCOVERED_VIDEO=$($DISCOVER_FUNC)
     MULTIHEAD=$(echo "$DISCOVERED_VIDEO" | wc -l)
-    DISCOVERED_VIDEO=$(echo "$DISCOVERED_VIDEO" | head -n 1)
     if [ -n "$DISCOVERED_VIDEO" ]; then
       NCARDS=$(echo "$DISCOVERED_VIDEO" | wc -l)
       SERVERS=$(echo "$DISCOVERED_VIDEO" | awk 'BEGIN { FS="\t" } {print $2}' | grep -v unknown | sort | uniq)
@@ -1435,10 +1435,14 @@
       DRIVERS=$(echo "$DISCOVERED_VIDEO" | awk 'BEGIN { FS="\t" } {print $NF}' | grep -v unknown | sort | uniq)
       if [ -n "$DRIVERS" ]; then
         NDRIVERS=$(echo "$DRIVERS" | wc -l)
+	DRIVERS_LIST=$(echo "$DRIVERS" | awk 'BEGIN {ORS="";FS="\t"} {if(NR > 1){print last ","};last=$0} END {print last}')
       fi
       if [ $MULTIHEAD -gt 1 ]; then
         MULTIHEAD=yes
       fi
+      DISCOVERED_VIDEO=$(echo "$DRIVERS" | head -n 1)
+    else
+      DISCOVERED_VIDEO=""
     fi
   else
     DISCOVERED_VIDEO=""
@@ -1446,7 +1450,7 @@
 else
   DISCOVERED_VIDEO=""
 fi
-db_subst xserver-xorg/config/device/driver choices "$DISCOVERED_VIDEO"
+db_subst xserver-xorg/config/device/driver choices "$DRIVERS_LIST"
 auto_answer db_input low xserver-xorg/config/device/driver "$DISCOVERED_VIDEO"
 
 if [ -n "$FIRSTINST" ] || [ -n "$RECONFIGURE" ]; then

Reply to: