497fad3897
The xkb official name for the Arabic keyboard layout is 'ara'.
However xkb has for at least the past 15 years also permitted it to
be named via the legacy synonym 'ar'. In xkeyboard-config 2.39 this
synoynm was removed, which breaks compilation of QEMU:
FAILED: pc-bios/keymaps/ar
/home/fred/qemu-git/src/qemu/build-full/qemu-keymap -f pc-bios/keymaps/ar -l ar
xkbcommon: ERROR: Couldn't find file "symbols/ar" in include paths
xkbcommon: ERROR: 1 include paths searched:
xkbcommon: ERROR: /usr/share/X11/xkb
xkbcommon: ERROR: 3 include paths could not be added:
xkbcommon: ERROR: /home/fred/.config/xkb
xkbcommon: ERROR: /home/fred/.xkb
xkbcommon: ERROR: /etc/xkb
xkbcommon: ERROR: Abandoning symbols file "(unnamed)"
xkbcommon: ERROR: Failed to compile xkb_symbols
xkbcommon: ERROR: Failed to compile keymap
The upstream xkeyboard-config change removing the compat
mapping is:
470ad2cd8f
Make QEMU always ask for the 'ara' xkb layout, which should work on
both older and newer xkeyboard-config. We leave the QEMU name for
this keyboard layout as 'ar'; it is not the only one where our name
for it deviates from the xkb standard name.
Cc: qemu-stable@nongnu.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-id: 20230620162024.1132013-1-peter.maydell@linaro.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1709
62 lines
1.4 KiB
Meson
62 lines
1.4 KiB
Meson
keymaps = {
|
|
'ar': '-l ara',
|
|
'bepo': '-l fr -v dvorak',
|
|
'cz': '-l cz',
|
|
'da': '-l dk',
|
|
'de': '-l de -v nodeadkeys',
|
|
'de-ch': '-l ch',
|
|
'en-gb': '-l gb',
|
|
'en-us': '-l us',
|
|
'es': '-l es',
|
|
'et': '-l et',
|
|
'fi': '-l fi',
|
|
'fo': '-l fo',
|
|
'fr': '-l fr -v nodeadkeys',
|
|
'fr-be': '-l be',
|
|
'fr-ca': '-l ca -v fr',
|
|
'fr-ch': '-l ch -v fr',
|
|
'hr': '-l hr',
|
|
'hu': '-l hu',
|
|
'is': '-l is',
|
|
'it': '-l it',
|
|
'ja': '-l jp -m jp106',
|
|
'lt': '-l lt',
|
|
'lv': '-l lv',
|
|
'mk': '-l mk',
|
|
'nl': '-l nl',
|
|
'no': '-l no',
|
|
'pl': '-l pl',
|
|
'pt': '-l pt',
|
|
'pt-br': '-l br',
|
|
'ru': '-l ru',
|
|
'th': '-l th',
|
|
'tr': '-l tr',
|
|
}
|
|
|
|
if meson.is_cross_build() or not xkbcommon.found()
|
|
native_qemu_keymap = find_program('qemu-keymap', required: false, disabler: true)
|
|
else
|
|
native_qemu_keymap = qemu_keymap
|
|
endif
|
|
|
|
if native_qemu_keymap.found()
|
|
t = []
|
|
foreach km, args: keymaps
|
|
# generate with qemu-kvm
|
|
t += custom_target(km,
|
|
build_by_default: true,
|
|
output: km,
|
|
command: [native_qemu_keymap, '-f', '@OUTPUT@', args.split()],
|
|
install: have_system,
|
|
install_dir: qemu_datadir / 'keymaps')
|
|
endforeach
|
|
|
|
alias_target('update-keymaps', t)
|
|
else
|
|
install_data(keymaps.keys(), install_dir: qemu_datadir / 'keymaps')
|
|
endif
|
|
|
|
if have_system
|
|
install_data(['sl', 'sv'], install_dir: qemu_datadir / 'keymaps')
|
|
endif
|