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 <[email protected]>
> > ---
> > .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