This patch series is an update to: v1: https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg02047.html v2: https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg02471.html v3: https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg02517.html v4: https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg02708.html v5: https://lists.gnu.org/archive/html/qemu-devel/2017-09/msg02950.html
The keycodemap project[1] provides a database mapping between many different keysym/keycode/scancode sets, along with a tool to generate mapping/lookup tables in various programming languages. It is already used by GTK-VNC, SPICE-GTK and libvirt. In this v6 posting I have dropped most of the conversion to keycodemapdb across the devices / UI frontends. This only converts the core input APIs, and wires up the git submodule build system mechanics. The remaining patches from the v5 posting will be submitted separately, once this initial conversion is mergable. Changed in v6: - Switched back to using a git submodule - Wire up Makefile rules so that git submodule is automatically refreshed when needed prior to build. - Fix source tarball creation for docker/vm tests wrt submodules Changed in v5: - Don't try to initialize git submodule at all - Store generate keymap files in GIT Changed in v4: - Run submodule update in source_dir for vpath builds (patchew) - Force submodule update in docker rules in case they are run without configure (patchew) Changed in v3: - Ensure docker builds pull in keycodemapdb submodule (patchew) - Add compat with py26 for RHEL-6 in keycodemapdb tools (patchew) - Initialize submodule in configure script (patchew) Changed in v2: - Change filename pattern to 'ui/input-keymap-$SRC-to-$DST.c' and map names 'qemu_input_map_$SRC_to_$DST' (Eric) - Fix typos (Eric) - Drop changes to InputKeyEvent struct (Eric) - Fix VPATH build (patchew) - Fix code style errors (patchew) [1] https://gitlab.com/keycodemap/keycodemapdb/ Daniel P. Berrange (6): build: automatically handle GIT submodule checkout for dtc docker: don't rely on submodules existing in the main checkout ui: add keycodemapdb repository as a GIT submodule ui: convert common input code to keycodemapdb ui: convert key events to QKeyCodes immediately ui: don't export qemu_input_event_new_key .gitignore | 2 + .gitmodules | 3 + Makefile | 21 +++ configure | 52 +++++--- include/ui/input.h | 12 +- scripts/archive-source.sh | 23 +++- scripts/git-submodule.sh | 31 +++++ ui/Makefile.objs | 21 +++ ui/input-keymap.c | 326 +++------------------------------------------- ui/input.c | 26 ++-- ui/keycodemapdb | 1 + 11 files changed, 174 insertions(+), 344 deletions(-) create mode 100755 scripts/git-submodule.sh create mode 160000 ui/keycodemapdb -- 2.13.5