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

Bug#646987: /usr/bin/xinit: xinit fails with xkbcomp could not be invoked



On Fri, Nov 04, 2011 at 10:00:33PM +0100, Julien Cristau wrote:
> On Fri, Nov  4, 2011 at 13:41:02 -0400, Brenda J. Butler wrote:
> 
> > 
> > Coming back to this - I see that the command line will be printed out
> > if a debug flag is set - how do I set it?
> > 
> > in ddxList.c on lines 206-207:
> > 
> >         if (xkbDebugFlags)
> >             DebugF("[xkb] xkbList executes: %s\n",buf);
> > 
> > How can I set xbkDebugFlags?  I'd like to try the exact invocation
> > at the command line to see what happens.
> > 
> 
> #include <X11/Xlib.h>
> #include <X11/XKBlib.h>
> 
> int main() {
>         Display *dpy = XOpenDisplay(NULL);
> 
>         if (!dpy)
>                 return 1;
> 
>         return XkbSetDebuggingFlags(dpy, 1, 1, NULL, 0, 0, NULL, NULL) != True;
> }
> 
> (link with -lX11)
> 
> Did I mention XKB was made of crazy?

Unfortunately, the X server doesn't run long enough to run a client
under it ...  I wanted to set the flag from the X server command line.

Well, option 2 is to recompile it with some changes.  Wish me luck.
First I'm looking at the source code to see the chain of events that
leads to the problem.  I guess the X server main routine is in dix/main.c,
it looks like this:

while (1)
   ...
   InitExtensions (argc, argv);
   ...
   InitCoreDevices ()
   InitInput (agrc, argv)
   InitAndStartDevices ()
   ...
   Dispatch ();
   ...
}

InitExtensions calls XkbExtensionInit ()

XkbExtensionInit calls AddExtension (-, -, -, ProcXkbDispatch, ...)

AddExtension puts ProxXkbDispatch into the ProcVector table.

ProcVector routines are called from dix/dispatch.c, ....


  --- still a big fog  ---


XkbListComponents called from ProcXkbDispatch

XkbListComponent called from XkbListComponents

XkbDDXListComponent outputs: 'Could not invoke keymap compiler' after
a call to System with the xkbcomp command line returns less than 0.




So it might be that the X server initializes, gets as far as Dispatch,
and sends itself an event to do with the keybord but fails to run xkbcomp.

Or it might be that the problem occurs in initialization (seems more likely
but I don't see the call chain ... yet).


Thanks for your help!

I can only work on this on Fridays/weekends and unfortunately I don't have a
lot of time for it.

bjb




Reply to: