On Tue, 08/15 11:04, Daniel P. Berrange wrote: > On Tue, Aug 15, 2017 at 10:36:04AM +0100, Daniel P. Berrange wrote: > > The https://gitlab.com/keycodemap/keycodemapdb/ repo contains a > > data file mapping between all the different scancode/keycode/keysym > > sets that are known, and a tool to auto-generate lookup tables for > > different combinations. > > > > It is used by GTK-VNC, SPICE-GTK and libvirt for mapping keys. > > Using it in QEMU will let us replace many hand written lookup > > tables with auto-generated tables from a master data source, > > reducing bugs. Adding new QKeyCodes will now only require the > > master table to be updated, all ~20 other tables will be > > automatically updated to follow. > > > > Signed-off-by: Daniel P. Berrange <berra...@redhat.com> > > --- > > .gitignore | 2 ++ > > .gitmodules | 3 +++ > > configure | 2 ++ > > tests/docker/Makefile.include | 11 +++++++---- > > tests/docker/run | 4 +++- > > ui/Makefile.objs | 18 ++++++++++++++++++ > > ui/keycodemapdb | 1 + > > 7 files changed, 36 insertions(+), 5 deletions(-) > > create mode 160000 ui/keycodemapdb > > > > > diff --git a/configure b/configure > > index dd73cce62f..bd373ec2b4 100755 > > --- a/configure > > +++ b/configure > > @@ -5258,6 +5258,8 @@ echo_version() { > > fi > > } > > > > +(cd $source_path && git submodule update --init ui/keycodemapdb) > > + > > Urgh, no, this won't work because of course you don't have to > have a git checkout when running configure. > > Any suggestions on the "best" way to ensure that the ui/keycodemapdb > git submodule is always checked out, without requiring developers to > do something manually ? > > I could try > > (cd $source_path && test -d .git && git submodule update --init > ui/keycodemapdb) > > but wonder if there's a better way ?
I think the way dtc handles this is okay: probe headers/libs, if failed, hint the "git submodule update" command in the error message. This is also a familiar/friendly user interface to developers. (If you looks at the test snippet that patchew runs, there is an explicit submodule command: #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-quick@centos6 time make docker-test-build@min-glib time make docker-test-mingw@fedora as the libfdt devel package is not available in every docker images.) Fam