Message ID | 1675708442-74966-1-git-send-email-steven.sistare@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [V2] meson: fix dependency on qemu-keymap | expand |
On Mon, Feb 6, 2023 at 10:34 PM Steve Sistare <steven.sistare@oracle.com> wrote: > When qemu-keymap is not available on the host, and enable-xkbcommon > is specified, parallel make fails with: > > % make clean > ... > % make -j 32 > ... > FAILED: pc-bios/keymaps/is > ./qemu-keymap -f pc-bios/keymaps/is -l is > /bin/sh: ./qemu-keymap: No such file or directory > ... many similar messages ... > > The code always runs find_program, rather than waiting to build > qemu-keymap, because it looks for CONFIG_XKBCOMMON in config_host > rather than config_host_data. Making serially succeeds, by soft > linking files from pc-bios/keymaps, but that is not the desired > result for enable-xkbcommon. > > Examining all occurrences of 'in config_host' for similar bugs shows one > instance in the docs, which is also fixed here. > > Fixes: 4113f4cfee ("meson: move xkbcommon to meson") > > Signed-off-by: Steve Sistare <steven.sistare@oracle.com> > Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > docs/devel/kconfig.rst | 2 +- > pc-bios/keymaps/meson.build | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/docs/devel/kconfig.rst b/docs/devel/kconfig.rst > index 69674d0..cc1a456 100644 > --- a/docs/devel/kconfig.rst > +++ b/docs/devel/kconfig.rst > @@ -306,6 +306,6 @@ variable:: > > host_kconfig = \ > (have_tpm ? ['CONFIG_TPM=y'] : []) + \ > - ('CONFIG_SPICE' in config_host ? ['CONFIG_SPICE=y'] : []) + \ > + ('CONFIG_LINUX' in config_host ? ['CONFIG_LINUX=y'] : []) + \ > (have_ivshmem ? ['CONFIG_IVSHMEM=y'] : []) + \ > ... > diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build > index 06c75e6..158a3b4 100644 > --- a/pc-bios/keymaps/meson.build > +++ b/pc-bios/keymaps/meson.build > @@ -33,7 +33,7 @@ keymaps = { > 'tr': '-l tr', > } > > -if meson.is_cross_build() or 'CONFIG_XKBCOMMON' not in config_host > +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 > -- > 1.8.3.1 > >
On 06/02/2023 19.34, Steve Sistare wrote: > When qemu-keymap is not available on the host, and enable-xkbcommon > is specified, parallel make fails with: > > % make clean > ... > % make -j 32 > ... > FAILED: pc-bios/keymaps/is > ./qemu-keymap -f pc-bios/keymaps/is -l is > /bin/sh: ./qemu-keymap: No such file or directory > ... many similar messages ... > > The code always runs find_program, rather than waiting to build > qemu-keymap, because it looks for CONFIG_XKBCOMMON in config_host > rather than config_host_data. Making serially succeeds, by soft > linking files from pc-bios/keymaps, but that is not the desired > result for enable-xkbcommon. > > Examining all occurrences of 'in config_host' for similar bugs shows one > instance in the docs, which is also fixed here. > > Fixes: 4113f4cfee ("meson: move xkbcommon to meson") > > Signed-off-by: Steve Sistare <steven.sistare@oracle.com> > --- ... > diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build > index 06c75e6..158a3b4 100644 > --- a/pc-bios/keymaps/meson.build > +++ b/pc-bios/keymaps/meson.build > @@ -33,7 +33,7 @@ keymaps = { > 'tr': '-l tr', > } > > -if meson.is_cross_build() or 'CONFIG_XKBCOMMON' not in config_host > +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 Seems like this is breaking in the CI: https://gitlab.com/thuth/qemu/-/jobs/3802437551#L2356 Not sure why it's only happening now, and not before... maybe the build was picking up a locally instlled qemu-keymap before your change? Thomas
On 2/20/2023 1:35 PM, Thomas Huth wrote: > On 06/02/2023 19.34, Steve Sistare wrote: >> When qemu-keymap is not available on the host, and enable-xkbcommon >> is specified, parallel make fails with: >> >> % make clean >> ... >> % make -j 32 >> ... >> FAILED: pc-bios/keymaps/is >> ./qemu-keymap -f pc-bios/keymaps/is -l is >> /bin/sh: ./qemu-keymap: No such file or directory >> ... many similar messages ... >> >> The code always runs find_program, rather than waiting to build >> qemu-keymap, because it looks for CONFIG_XKBCOMMON in config_host >> rather than config_host_data. Making serially succeeds, by soft >> linking files from pc-bios/keymaps, but that is not the desired >> result for enable-xkbcommon. >> >> Examining all occurrences of 'in config_host' for similar bugs shows one >> instance in the docs, which is also fixed here. >> >> Fixes: 4113f4cfee ("meson: move xkbcommon to meson") >> >> Signed-off-by: Steve Sistare <steven.sistare@oracle.com> >> --- > ... >> diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build >> index 06c75e6..158a3b4 100644 >> --- a/pc-bios/keymaps/meson.build >> +++ b/pc-bios/keymaps/meson.build >> @@ -33,7 +33,7 @@ keymaps = { >> 'tr': '-l tr', >> } >> -if meson.is_cross_build() or 'CONFIG_XKBCOMMON' not in config_host >> +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 > > Seems like this is breaking in the CI: > > https://gitlab.com/thuth/qemu/-/jobs/3802437551#L2356 > > Not sure why it's only happening now, and not before... > maybe the build was picking up a locally instlled qemu-keymap before your change? Probably so. I see you have already submitted a fix, thanks. - Steve
diff --git a/docs/devel/kconfig.rst b/docs/devel/kconfig.rst index 69674d0..cc1a456 100644 --- a/docs/devel/kconfig.rst +++ b/docs/devel/kconfig.rst @@ -306,6 +306,6 @@ variable:: host_kconfig = \ (have_tpm ? ['CONFIG_TPM=y'] : []) + \ - ('CONFIG_SPICE' in config_host ? ['CONFIG_SPICE=y'] : []) + \ + ('CONFIG_LINUX' in config_host ? ['CONFIG_LINUX=y'] : []) + \ (have_ivshmem ? ['CONFIG_IVSHMEM=y'] : []) + \ ... diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build index 06c75e6..158a3b4 100644 --- a/pc-bios/keymaps/meson.build +++ b/pc-bios/keymaps/meson.build @@ -33,7 +33,7 @@ keymaps = { 'tr': '-l tr', } -if meson.is_cross_build() or 'CONFIG_XKBCOMMON' not in config_host +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
When qemu-keymap is not available on the host, and enable-xkbcommon is specified, parallel make fails with: % make clean ... % make -j 32 ... FAILED: pc-bios/keymaps/is ./qemu-keymap -f pc-bios/keymaps/is -l is /bin/sh: ./qemu-keymap: No such file or directory ... many similar messages ... The code always runs find_program, rather than waiting to build qemu-keymap, because it looks for CONFIG_XKBCOMMON in config_host rather than config_host_data. Making serially succeeds, by soft linking files from pc-bios/keymaps, but that is not the desired result for enable-xkbcommon. Examining all occurrences of 'in config_host' for similar bugs shows one instance in the docs, which is also fixed here. Fixes: 4113f4cfee ("meson: move xkbcommon to meson") Signed-off-by: Steve Sistare <steven.sistare@oracle.com> --- docs/devel/kconfig.rst | 2 +- pc-bios/keymaps/meson.build | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)