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

Reply via email to