On Wed, Nov 02, 2011 at 02:00:47PM +0100, Stefan Sperling wrote:
> On Wed, Nov 02, 2011 at 08:31:19AM -0400, Kenneth R Westerback wrote:
> > On Tue, Nov 01, 2011 at 04:39:29PM +0000, Stuart Henderson wrote:
> > > If you hit the xkb file/directory problem (for example, if you follow
> > > the "upgrading without install kernel" instructions), you can't type at
> > > the keyboard, even to switch to a text console. 
> > > 
> > > What does anyone think about disabling xdm if this brokenness is found?
> > > 
> > > Index: xdm
> > > ===================================================================
> > > RCS file: /cvs/src/etc/rc.d/xdm,v
> > > retrieving revision 1.1
> > > diff -u -p -r1.1 xdm
> > > --- xdm   7 Jul 2011 18:42:17 -0000       1.1
> > > +++ xdm   1 Nov 2011 16:35:39 -0000
> > > @@ -6,4 +6,10 @@ daemon="/usr/X11R6/bin/xdm"
> > >  
> > >  . /etc/rc.d/rc.subr
> > >  
> > > +rc_pre() {
> > > + # XXX Mitigate xkb mistake in 5.0, better not to run xdm than
> > > + # leave a broken keyboard
> > > + [ -d /usr/X11R6/share/X11/xkb/symbols/srvr_ctrl ] && return 1
> > > +}
> > > +
> > >  rc_cmd $1
> > > 
> > 
> > I haven't encountered the problem, but if xdm just failed I would be
> > somewhat surprised. Is there a useful message logged somewhere that would
> > indicate why xdm isn't starting? If there were such a message I think
> > this is a good idea.
> 
> The script might as well try to fix the issue.
> 
> Index: xdm
> ===================================================================
> RCS file: /cvs/src/etc/rc.d/xdm,v
> retrieving revision 1.1
> diff -u -p -r1.1 xdm
> --- xdm       7 Jul 2011 18:42:17 -0000       1.1
> +++ xdm       2 Nov 2011 12:54:26 -0000
> @@ -6,4 +6,14 @@ daemon="/usr/X11R6/bin/xdm"
>  
>  . /etc/rc.d/rc.subr
>  
> +pre_rc() {
> +     # XXX Try to fix xkb mistake in 5.0
> +     _symbols_dir=/usr/X11R6/share/X11/xkb/symbols
> +     if [ -f ${_symbols_dir}/srvr_ctrl/srvr_ctrl ]; then
> +             mv ${_symbols_dir}/srvr_ctrl ${_symbols_dir}/_srvr_ctrl
> +             mv ${_symbols_dir}/_srvr_ctrl/srvr_ctrl ${_symbols_dir}
> +             rmdir ${_symbols_dir}/_srvr_ctrl
> +     fi
> +}
> +
>  rc_cmd $1

Even better.

.... Ken

Reply via email to