diff mbox series

[V1] meson: fix dependency on qemu-keymap

Message ID 1674663436-380426-1-git-send-email-steven.sistare@oracle.com (mailing list archive)
State New, archived
Headers show
Series [V1] meson: fix dependency on qemu-keymap | expand

Commit Message

Steven Sistare Jan. 25, 2023, 4:17 p.m. UTC
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: 28742467c9c0.. ("meson: convert pc-bios/keymaps/Makefile")

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

Comments

Marc-André Lureau Feb. 6, 2023, 6:55 a.m. UTC | #1
Hi

On Wed, Jan 25, 2023 at 9:28 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: 28742467c9c0.. ("meson: convert pc-bios/keymaps/Makefile")
>

Or rather fixing commit 4113f4cfee ("meson: move xkbcommon to meson").

A lot of CONFIG_ keys were set during configure, loaded in 'config_host'
and now they are set by meson in 'config_host_data'.


> 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(-)
>
> 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'] : []) + \
>

ok


>        (have_ivshmem ? ['CONFIG_IVSHMEM=y'] : []) + \
>        ...
> diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build
> index 06c75e6..a9e5103 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 config_host_data.get('CONFIG_XKBCOMMON')
>

Can you replace it with not xkbcommon.found() instead?


>    native_qemu_keymap = find_program('qemu-keymap', required: false,
> disabler: true)
>  else
>    native_qemu_keymap = qemu_keymap
> --
> 1.8.3.1
>
>
Steven Sistare Feb. 6, 2023, 6:33 p.m. UTC | #2
On 2/6/2023 1:55 AM, Marc-André Lureau wrote:
> Hi
> 
> On Wed, Jan 25, 2023 at 9:28 PM Steve Sistare <steven.sistare@oracle.com <mailto: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: 28742467c9c0.. ("meson: convert pc-bios/keymaps/Makefile")
> 
> Or rather fixing commit 4113f4cfee ("meson: move xkbcommon to meson").

Yes, thanks.

> A lot of CONFIG_ keys were set during configure, loaded in 'config_host' and now they are set by meson in 'config_host_data'.
> 
>     Signed-off-by: Steve Sistare <steven.sistare@oracle.com <mailto:steven.sistare@oracle.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'] : []) + \
> 
> 
> ok
>  
> 
>            (have_ivshmem ? ['CONFIG_IVSHMEM=y'] : []) + \
>            ...
>     diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build
>     index 06c75e6..a9e5103 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 config_host_data.get('CONFIG_XKBCOMMON')
> 
> 
> Can you replace it with not xkbcommon.found() instead?

Yes, that works.

I will submit the V2 patch with your changes momentarily.

- Steve

>  
> 
>        native_qemu_keymap = find_program('qemu-keymap', required: false, disabler: true)
>      else
>        native_qemu_keymap = qemu_keymap
>     -- 
>     1.8.3.1
>
diff mbox series

Patch

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..a9e5103 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 config_host_data.get('CONFIG_XKBCOMMON')
   native_qemu_keymap = find_program('qemu-keymap', required: false, disabler: true)
 else
   native_qemu_keymap = qemu_keymap