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. Closing.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.