On Mon, Sep 06, 1999 at 07:44:55PM +0200, Christian T. Steigies wrote: > Hi all, Branden, > I found the list and subscribed. It seems to be unusually quite here... Yes. That's not so bad, though. So far the signal/noise ratio has been very high as a consequence. The main reason is, I haven't aggresively recruited people to this list yet. There are at least half a dozen people subscribed, though. For the moment I am focussing my energies on 3.3.5 .debs. As part of this I am finally getting around to breaking up our tremendous number of patches logically so we can submit them upstream. > Does it make sense to send the mail with the m68k specific problems and > patches again to this list? Absolutely. Please try to poach some folks from the debian-68k list as well, if any of them besides yourself are interested in XFree86 issues. BTW, I made some modifications to your xserver-configure patch and merged it into what will be 3.3.5-1. Thanks for the submission. I have MIME-attached the new version of xserver-configure. -- G. Branden Robinson | Somebody once asked me if I thought sex Debian GNU/Linux | was dirty. I said, "It is if you're branden@ecn.purdue.edu | doing it right." cartoon.ecn.purdue.edu/~branden/ | -- Woody Allen
#!/bin/sh
# This is /usr/sbin/xserver-configure; it may be called on its own or from
# xserver-*.postinst.
set -e
checkconfig () {
parse-xf86config --quiet --nowarning --noadvisory /etc/X11/XF86Config;
}
parseans () {
if [ -z "$1" ]; then
echo $default
else
echo $1 | cut -c1 | tr '[A-Z]' '[a-z]'
fi;
}
cleanup () {
if [ $(echo /etc/X11/XF86Config.debian.$$.*) != "/etc/X11/XF86Config.debian.$$.*" ]; then
rm /etc/X11/XF86Config.debian.$$.*
fi;
}
trap "echo ;\
echo 'Received signal. Aborting.' ;\
echo -n 'Cleaning up...' ;\
cleanup ;\
echo 'done.' ;\
echo ;\
exit 1" 1 2 3 15
# Rules:
# if the selected X server exists then
# make sure /etc/X11/XF86Config exists; create if it doesn't
# Arguments:
# if '--remove' is supplied as $1 then never prompt the user [not implemented]
# if '--force' is supplied as $1 then perform configuration even if things look
# all right
# Variables
# boolean (null = false, non-null = true)
# canconfig archictecture has XF86Config generation tools
# copyconfig architecture has XF86Config.eg which is copied to
# /etc/X11/XF86Config (for fbdev-only arches: m68k, ...?)
# docopy copy example XF86Config to /etc/X11/XF86Config
# makedevmouse remove and recreate /dev/mouse symlink on m68k machines
# preserveconf preserve existing XF86Config
# realxserver xserver is not "XF86_NONE"
# sourced are we being sourced by another script?
# testconfig user wants to test configuration file
# usesetup use XF86Setup program
# xconfig we should configure the X server
# xconfigok the configuration file is okay
# xserverpresent we have an executable X server
# integer
# count loop counter for XF86Config configuration
# xserverpid process ID of X server being tested
# string
# answer user response to prompts
# arch machine architecture
# condecho conditional echo; output formatting hack
# machinemodel model of machine (used for m68k mouse device detection)
# serverpath full path name of selected X server
# servername basename of serverpath
# condecho, count, amd command line args may be set from calling script
arch=$(dpkg --print-installation-architecture)
case "$arch" in
alpha)
canconfig=yes
;;
i386)
canconfig=yes
;;
m68k)
canconfig=
copyconfig=yes
;;
powerpc)
canconfig=
;;
sparc)
canconfig=
;;
*)
echo "Warning: xserver-configure encountered unknown architecture $arch."
canconfig=
esac
sourced=
if [ $(basename $0) != xserver-configure ]; then
sourced=yes
fi
xconfig=
# parse options
if [ "$1" ]; then
case "$1" in
--force) xconfig=yes ;;
esac
fi
# do we have an X server?
if [ -f /etc/X11/Xserver ]; then
serverpath=$(head -1 /etc/X11/Xserver)
else
serverpath=/usr/bin/X11/XF86_NONE
fi
# migrate from older versions
if [ "$serverpath" = "/usr/X11R6/bin/XF86_NONE" ]; then
serverpath=/usr/bin/X11/XF86_NONE
fi
realxserver=
if [ "$serverpath" != "/usr/bin/X11/XF86_NONE" ]; then
realxserver=yes
fi
# $xserverpresent will be set if $realxserver is set, unless some yahoo
# made a /usr/bin/X11/XF86_NONE binary
xserverpresent=
if [ -x "$serverpath" ]; then
xserverpresent=yes
fi
xconfigok=
servername=$(basename $serverpath)
if echo $servername | grep -q Xsun; then
if [ "$xconfig" ]; then
echo "The Xsun, XsunMono, and Xsun24 servers do not require configuration."
xconfig=
fi
else
if checkconfig; then
# if $xconfig is set then we're forcing a configuration run
if [ -z "$xconfig" ]; then
xconfigok=yes
fi
else
xconfig=yes
fi
fi
# /etc/X11/Xserver must be sane
if [ -z "$realxserver" ]; then
${condecho:=:}
echo "The current X server is set to \"$serverpath\","
echo "which means that no X server package has been installed."
echo "Please install an X server package unless you do not intend to run"
echo "any X sessions locally. Most people will want an X server installed."
echo "If you wish to run an X server for which there is no Debian package,"
echo "edit the first line of /etc/X11/Xserver to contain the full pathname"
echo "of the desired X server binary."
condecho=echo
elif [ -z "$xserverpresent" ]; then
$condecho
echo "The desired X server, \"$serverpath\", was not found."
echo "Please install an X server package unless you do not intend to run"
echo "any X sessions locally. Most people will want an X server installed."
echo "If you wish to run an X server for which there is no Debian package,"
echo "edit the first line of /etc/X11/Xserver to contain the full pathname"
echo "of the desired X server binary."
condecho=echo
fi
# if we have an X server, make sure it's configured
# XF86Config for arches that need an example file
if [ "$copyconfig" ]; then
docopy=
if [ -f /etc/X11/XF86Config ]; then
echo "You already have an /etc/X11/XF86config file installed on your system."
echo "This file may have been installed by a previous version of the X server,"
echo -n "or generated by xf86config. Do you want to replace it with a new copy? "
default=n
echo -n "(y|n) [$default] "
condecho=echo
read answer
answer=$(parseans $answer)
case "$answer" in
y)
docopy=yes
echo -n "Saving current XF86Config in "
echo "/etc/X11/XF86Config.debian.$$."
condecho=echo
mv /etc/X11/XF86Config /etc/X11/XF86Config.debian.$$.0
;;
n) ;;
*)
echo "\"$answer\" not understood. Using default of \"$default\"."
;;
esac
else
docopy=yes
fi
if [ "$docopy" ]; then
echo "Copying /usr/doc/xserver-common/examples/XF86Config.eg to /etc/X11/XF86Config."
echo "You might have to edit /etc/X11/XF86Config if you do not use an 8-bit display."
cp /usr/doc/xserver-common/examples/XF86Config.eg /etc/X11/XF86Config
fi
fi
# m68k mouse mangling
if [ "$arch" = "m68k" ]; then
# do we need to set a symlink for /dev/mouse?
makedevmouse=
if [ -e /dev/mouse ]; then
echo "Mouse device /dev/mouse exists. If your mouse does not work under X, you may"
echo "remove it, and an attempt to auto-detect the proper device will be made."
echo "Do you wish to remove the /dev/mouse device and re-create it based on your"
echo -n "hardware? (y|n)"
default=n
echo -n " [$default] "
condecho=echo
read answer
answer=$(parseans $answer)
case "$answer" in
y)
makedevmouse=yes
;;
n) ;;
*)
echo "\"$answer\" not understood. Using default of \"$default\"."
;;
esac
else
makedevmouse=yes
fi
if [ "$makedevmouse" ]; then
# someday if awk becomes Essential we can use this much nicer way
# machinemodel=$(awk '/Model:/ { print $2 }' </proc/hardware)
# until then...
machinemodel=$(cat /proc/hardware | ( read line; set -- $line; if [ "$1" = "Model:" ]; then echo $2 ; fi ))
rm /dev/mouse
case "$machinemodel" in
Amiga)
ln -s amigamouse /dev/mouse
;;
Atari)
ln -s atarimouse /dev/mouse
;;
Macintosh)
ln -s adbmouse /dev/mouse
;;
Motorola|BVME4000|BVME6000)
echo "Warning: $machinemodel machines have no supported mouse type."
;;
*)
echo "Warning: unknown model of Motorola m68k machine; please send mail to"
echo "<debian-68k@lists.debian.org> describing your hardware."
;;
esac
fi
fi
if [ -n "$canconfig" -a -n "$xserverpresent" -a -n "$xconfig" ]; then
$condecho
default=y
echo -n "Do you want to create the XFree86 configuration file? (y/n) [$default] "
condecho=echo
read answer
answer=$(parseans $answer)
case "$answer" in
y) ;;
n)
$condecho
echo "The XFree86 configuration file will not be created. To create it later, run"
echo "/usr/sbin/xserver-configure as root. Also see the xserver-configure(8) manual"
echo "page (\"man xserver-configure\")."
# set $xconfigok to yes so the while below falls through
xconfigok=yes
;;
*)
echo "\"$answer\" not understood. Using default of \"$default\"."
;;
esac
# if count is not set, intialize it to zero
: ${count:=0}
while [ -z "$xconfigok" ]; do
# is there already an /etc/X11/XF86Config?
if [ -f /etc/X11/XF86Config ]; then
if [ $count -eq 0 ]; then
$condecho
echo "Checking existing /etc/X11/XF86Config for problems (E = error, W = warning,"
echo "A = advisory)..."
parse-xf86config /etc/X11/XF86Config
if [ $? -eq 0 ]; then
echo "No problems found with the XFree86 configuration file."
fi
echo "If this file contains information you would like to preserve (modelines, for"
echo "example), it can be backed up, or you can quit now and leave the file as is."
echo
default=y
echo -n "Preserve existing /etc/X11/XF86Config? (y/n/q) [$default] "
preserveconf=yes
else
$condecho
echo "Checking /etc/X11/XF86Config for problems (E = error, W = warning,"
echo "A = advisory)..."
parse-xf86config /etc/X11/XF86Config
if [ $? -eq 0 ]; then
echo "No problems found with the XFree86 configuration file."
fi
echo
default=y
echo -n "Preserve /etc/X11/XF86Config just created (quit keeps file)? (y/n/q) [$default] "
preserveconf=yes
fi
condecho=echo
read answer
answer=$(parseans $answer)
case "$answer" in
y) ;;
n) preserveconf= ;;
q) break ;;
*)
echo "\"$answer\" not understood. Using default of \"$default\"."
;;
esac
if [ "$preserveconf" ]; then
$condecho
echo -n "Saving current XF86Config in "
echo "/etc/X11/XF86Config.debian.$$.$count."
condecho=echo
mv /etc/X11/XF86Config /etc/X11/XF86Config.debian.$$.$count
fi
fi
usesetup=yes
if [ -x /usr/bin/X11/XF86Setup ]; then
# XF86Setup will fail if it can't find certain fonts
for DIR in 75dpi fonts; do
if [ ! -e /usr/lib/X11/fonts/$DIR/fonts.dir ]; then
if [ -x /usr/bin/X11/mkfontdir ]; then
if ! mkfontdir /usr/lib/X11/fonts/$DIR; then
# mkfontdir failed
usesetup=
fi
else
# mkfontdir program was not found
usesetup=
fi
fi
done
# if we are not already in X, we must have the XF86_VGA16 server
if [ -z "$DISPLAY" ]; then
if [ ! -x /usr/bin/X11/XF86_VGA16 ]; then
# VGA16 server was not found
usesetup=
fi
fi
else
# XF86Setup itself was not found
usesetup=
fi
if [ "$usesetup" ]; then
# XF86Config, if it exists, was already backed up; we get rid of it
# so the subsequent test will be useful
if [ -e /etc/X11/XF86Config ]; then
rm /etc/X11/XF86Config
fi
set +e
# we cannot know if xlib6g's postinst has already been run
LD_LIBRARY_PATH=/usr/X11R6/lib XF86Setup
set -e
echo
if [ -f /etc/X11/XF86Config ]; then
$condecho
echo "The /etc/X11/XF86Config file was created."
condecho=echo
# done
if checkconfig; then
xconfigok=yes
fi
else
$condecho
echo "The /etc/X11/XF86Config file was not created."
condecho=echo
xconfigok=
fi
else
if [ -x /usr/bin/X11/xf86config ]; then
if /usr/bin/X11/xf86config; then
$condecho
echo "The XFree86 configuration file has been created."
echo
default=y
echo -n "Do you want to test the configuration? (y/n) [$default] "
testconfig=yes
condecho=echo
read answer
answer=$(parseans $answer)
case "$answer" in
y) ;;
n) testconfig= ;;
*)
echo "\"$answer\" not understood. Using default of \"$default\"."
;;
esac
if [ "$testconfig" ]; then
$condecho
echo "The X server will start in 10 seconds. If the configuration file is correct,"
echo "you should see a gray patterned screen with an X-shaped cursor in the middle."
echo " The mouse should move the cursor."
echo
echo "If the virtual screen resolution is higher than the actual resolution, you may"
echo "not be able to see the cursor immediately. It should become visible when you"
echo "move the mouse."
echo
echo "This display should disappear after another 10 seconds; you will then be asked"
echo "if the test worked."
echo
echo -n "Waiting 10 seconds before starting X server..."
for countdown in 10 9 8 7 6 5 4 3 2 1; do
echo -n "$countdown "
sleep 1
done
echo
echo "Starting X server..."
/usr/X11R6/bin/X &
xserverpid=$!
sleep 10
set +e
kill $!
set -e
sleep 3
echo
default=n
echo -n "Did the X server work properly? (y/n) [$default] "
xconfig=
condecho=echo
read prompt
prompt=$(parseans $prompt)
case "$prompt" in
y) xconfigok=yes ;;
n) ;;
*)
echo "\"$answer\" not understood. Using default of \"$default\"."
;;
esac
else
# user didn't want to test X server; assume the file is ok
xconfigok=yes
fi
fi # if xf86config exited ok
else
echo "xf86config program not found. Unable to configure X server."
fi # if exist xf86config
fi # if exist XF86Setup and XF86_VGA16
count=$(expr $count + 1)
done
fi
# offer to clean up those crufty files
if [ $(echo /etc/X11/XF86Config.debian.$$.*) != "/etc/X11/XF86Config.debian.$$.*" ]; then
$condecho
echo "Remove preserved XF86Config files generated in this session (files"
echo "matching /etc/X11/XF86Config.debian.$$.* -- this will not remove the"
echo -n "actual X server configuration file, /etc/X11/XF86Config)? "
default=n
echo -n "(y|n) [$default] "
condecho=echo
read answer
answer=$(parseans $answer)
case "$answer" in
y) cleanup ;;
n) ;;
*)
echo "\"$answer\" not understood. Using default of \"$default\"."
;;
esac
fi
if [ "$sourced" ]; then
exit
fi
Attachment:
pgptSefmdpd0t.pgp
Description: PGP signature