[libvirt] [PATCH v2 1/2] util: switch over to use keycodemapdb GIT submodule

Andrea Bolognani abologna at redhat.com
Fri Apr 7 15:52:50 UTC 2017


On Fri, 2017-03-03 at 16:54 +0000, Daniel P. Berrange wrote:
[...]
> @@ -1,3 +1,6 @@
>  [submodule "gnulib"]
>  	path = .gnulib
>  	url = git://git.sv.gnu.org/gnulib.git
> +[submodule "src/keycodemapdb"]
> +	path = src/keycodemapdb
> +	url = https://gitlab.com/keycodemap/keycodemapdb.git

I think you'll need to update bootstrap_hash() in autogen.sh
to ignore this new submodule, so that it won't run gnulib's
bootstrap every time we update keycodemapdb.

I'm also wondering whether we can avoid having all developers
run 'git submodule init && git submodule update' after these
changes have been pushed...

[...]
> +EXTRA_DIST += $(srcdir)/keycodemapdb/data/keymaps.csv \
> +		$(srcdir)/keycodemapdb/tools/keymap-gen

Please change this into

EXTRA_DIST += \
    $(srcdir)/keycodemapdb/data/keymaps.csv \
    $(srcdir)/keycodemapdb/tools/keymap-gen \
    $(NULL)

Same for other multi-line lists you define later, like
$(KEYTABLES).

[...]
> +util/virkeycodetable_%.h: $(srcdir)/keycodemapdb/data/keymaps.csv \
> +			$(srcdir)/keycodemapdb/tools/keymap-gen Makefile.am
> +	$(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeycodetable_,,' \
> +					      -e 's,\.h,,'` && \
> +		$(MKDIR_P) util/ && \
> +		$(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \
> +		--lang stdc --varname virKeyCodeTable_$$NAME code-table \
> +		$(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > \
> +			$@-tmp && mv $@-tmp $@ || rm $@-tmp
> +
> +util/virkeynametable_%.h: $(srcdir)/keycodemapdb/data/keymaps.csv \
> +			$(srcdir)/keycodemapdb/tools/keymap-gen Makefile.am
> +	$(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeynametable_,,' \
> +					      -e 's,\.h,,'` && \
> +		$(MKDIR_P) util/ && \
> +		$(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \
> +		--lang stdc --varname virKeyNameTable_$$NAME name-table \
> +		$(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > \
> +			$@-tmp && mv $@-tmp $@ || rm $@-tmp

Do you really need the dependency on Makefile.am there?

You could also use 'rm -f' instead of plain rm and reformat
the shell snippets a bit so that they look better.

[...]
> +#define VIR_KEYMAP_ENTRY_MAX ARRAY_CARDINALITY(virKeyCodeTable_linux)
> +
> +verify(ARRAY_CARDINALITY(virKeyCodeTable_linux) == ARRAY_CARDINALITY(virKeyCodeTable_xt));
> +verify(ARRAY_CARDINALITY(virKeyCodeTable_linux) == ARRAY_CARDINALITY(virKeyCodeTable_atset1));
> +verify(ARRAY_CARDINALITY(virKeyCodeTable_linux) == ARRAY_CARDINALITY(virKeyCodeTable_atset2));
> +verify(ARRAY_CARDINALITY(virKeyCodeTable_linux) == ARRAY_CARDINALITY(virKeyCodeTable_atset3));
> +verify(ARRAY_CARDINALITY(virKeyCodeTable_linux) == ARRAY_CARDINALITY(virKeyCodeTable_osx));
> +verify(ARRAY_CARDINALITY(virKeyCodeTable_linux) == ARRAY_CARDINALITY(virKeyCodeTable_xtkbd));
> +verify(ARRAY_CARDINALITY(virKeyCodeTable_linux) == ARRAY_CARDINALITY(virKeyCodeTable_usb));
> +verify(ARRAY_CARDINALITY(virKeyCodeTable_linux) == ARRAY_CARDINALITY(virKeyCodeTable_win32));
> +verify(ARRAY_CARDINALITY(virKeyCodeTable_linux) == ARRAY_CARDINALITY(virKeyCodeTable_rfb));
> +verify(ARRAY_CARDINALITY(virKeyCodeTable_linux) == ARRAY_CARDINALITY(virKeyNameTable_linux));
> +verify(ARRAY_CARDINALITY(virKeyCodeTable_linux) == ARRAY_CARDINALITY(virKeyNameTable_osx));
> +verify(ARRAY_CARDINALITY(virKeyCodeTable_linux) == ARRAY_CARDINALITY(virKeyNameTable_win32));

You can use VIR_KEYMAP_ENTRY_MAX, which you've just defined,
instead of calling ARRAY_CARDINALITY() over and over.

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list