qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: Fam Zheng <famz@redhat.com>
Cc: qemu-devel@nongnu.org, Gerd Hoffmann <kraxel@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v4 01/12] ui: add keycodemapdb repository as a GIT submodule
Date: Tue, 15 Aug 2017 11:53:50 +0100	[thread overview]
Message-ID: <20170815105350.GI9674@redhat.com> (raw)
In-Reply-To: <20170815104722.GB14412@lemon>

On Tue, Aug 15, 2017 at 06:47:22PM +0800, Fam Zheng wrote:
> 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 <berrange@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.

I don't think that's acceptable in this case. Few people will ever need
to setup the dtc submodule as distros commonly have that available.

For the keycodemapdb *EVERY* single person who builds QEMU from git will
need it, and they'll also need to update it periodically when the submodule
hash changes. So we need to have it automated IMHO.

> (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.)

IMHO that is a bad approach because someone typing
'make docker-test-mingw@fedora' is  going to be missing the dtc
module. You'll see in this case I extended the docker/Makefile
to always pull in keycodemapdb, not rely on someone remembering
todo it manually.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

  reply	other threads:[~2017-08-15 10:54 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-15  9:36 [Qemu-devel] [PATCH v4 00/12] Convert over to use keycodemapdb Daniel P. Berrange
2017-08-15  9:36 ` [Qemu-devel] [PATCH v4 01/12] ui: add keycodemapdb repository as a GIT submodule Daniel P. Berrange
2017-08-15 10:04   ` Daniel P. Berrange
2017-08-15 10:47     ` Fam Zheng
2017-08-15 10:53       ` Daniel P. Berrange [this message]
2017-08-15 12:39         ` Fam Zheng
2017-08-23 14:45     ` Gerd Hoffmann
2017-08-30 16:37       ` Daniel P. Berrange
2017-08-15  9:36 ` [Qemu-devel] [PATCH v4 02/12] ui: convert common input code to keycodemapdb Daniel P. Berrange
2017-08-15  9:36 ` [Qemu-devel] [PATCH v4 03/12] ui: convert key events to QKeyCodes immediately Daniel P. Berrange
2017-08-15  9:36 ` [Qemu-devel] [PATCH v4 04/12] ui: don't export qemu_input_event_new_key Daniel P. Berrange
2017-08-15  9:36 ` [Qemu-devel] [PATCH v4 05/12] input: convert virtio-input-hid device to keycodemapdb Daniel P. Berrange
2017-08-15  9:36 ` [Qemu-devel] [PATCH v4 06/12] input: convert ps2 " Daniel P. Berrange
2017-08-15  9:36 ` [Qemu-devel] [PATCH v4 07/12] input: convert the adb " Daniel P. Berrange
2017-08-15  9:36 ` [Qemu-devel] [PATCH v4 08/12] char: convert the escc " Daniel P. Berrange
2017-08-15  9:36 ` [Qemu-devel] [PATCH v4 09/12] ui: convert cocoa frontend " Daniel P. Berrange
2017-08-15  9:36 ` [Qemu-devel] [PATCH v4 10/12] ui: convert the SDL2 " Daniel P. Berrange
2017-08-15  9:36 ` [Qemu-devel] [PATCH v4 11/12] ui: convert GTK and SDL1 frontends " Daniel P. Berrange
2017-08-15  9:36 ` [Qemu-devel] [PATCH v4 12/12] display: convert XenInput keyboard " Daniel P. Berrange
2017-08-15  9:59 ` [Qemu-devel] [PATCH v4 00/12] Convert over to use keycodemapdb no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170815105350.GI9674@redhat.com \
    --to=berrange@redhat.com \
    --cc=famz@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).