When DoLoadableServer=NO, the input driver list is build by the confdrv.sh script
in hw/xfree86/input. This list includes xf86KEYBOARD (defined in xf86Init.c) as
its 1st element.
This structure will match the "keyboard" driver name, but, since it's empty it
won't initialize correctly.
The proposed patch is a band aid patch. I cannot test that it doesn't break the
server when the loader is in use, so please test it before applying and find a
better solution for the DoLoadableServer=NO case if needed.
Created attachment 677 [details] [review]
band aid patch
Created attachment 683 [details] [review]
Patch to make DoLoadableServer NO work (relative to programs/Xserver/hw/xfree86/input)
Ugh, yeah this is messy... another problem with the new keyboard driver and
DoLoadableServer NO is that the "kbd" isn't available in that build. Since the
list of drivers is the directory-names uppercased, KEYBOARD will be in the list
but not KBD. Since I changed the KEYBOARD struct in keyboard/kbd.c to contain
"keyboard" instead of "kbd", a non-loadable server will not recognize a "kbd"
driver. One solution to this is to just add KBD explicitly to the list of
arguments to confdrv.sh in the Imakefile.
As for the problem with xf86KEYBOARD getting added to the list: that's hard
coded in confdrv.sh, and can be moved to the Imakefile where it can depend on
the setting of UseDeprecatedKeyboardDriver.
The attached patch fixes both problems as described, please check it out.
(In reply to comment #2)
> The attached patch fixes both problems as described, please check it out.
As for risk of breaking the loadable build: the patch only touches confdrv.sh
and Imakefile rules regarding drvConf.c, so it should be safe.
Created attachment 687 [details] [review]
Patch that works
Argh, that didn't work, xf86KEYBOARD gets uppercased to XF86KEYBOARD in the
script. This patch simply renames the variable in xf86Init.c to XF86KEYBOARD.
Patch #3 checked in.