[PATCH] meson: Explicitly specify run_command's check parameter

Tim Wiederhake twiederh at redhat.com
Mon Jan 24 08:31:51 UTC 2022


On Sat, 2022-01-22 at 22:54 +0100, Martin Kletzander wrote:
> An update to meson 0.61.1 meant that it started showing warnings due
> to the fact
> that the default for run_command's 'check' parameter is going to
> change.  It
> unveiled the fact that we were even missing that parameter in some
> calls where
> we expected different outcome.  To make sure the behaviour does not
> change
> specify the parameter explicitly.  In places where we check for the
> return code
> the parameter should be 'false' so that meson does not fail.  In all
> other cases
> the parameter should be set to 'true' to make sure possible failure
> also stops
> meson.
> 
> The warning in meson was added in
> https://github.com/mesonbuild/meson/pull/9304
> 
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
>  build-aux/meson.build |  2 +-
>  docs/meson.build      |  4 ++--
>  meson.build           | 22 ++++++++++++----------
>  3 files changed, 15 insertions(+), 13 deletions(-)
> 
> diff --git a/build-aux/meson.build b/build-aux/meson.build
> index e491bdeebc3f..f4d0130e3bf2 100644
> --- a/build-aux/meson.build
> +++ b/build-aux/meson.build
> @@ -20,7 +20,7 @@ endif
>  
>  if host_machine.system() == 'freebsd'
>    grep_prog = find_program('grep')
> -  grep_cmd = run_command(grep_prog, '--version')
> +  grep_cmd = run_command(grep_prog, '--version', check: true)
>    if grep_cmd.stdout().startswith('grep (BSD grep')
>      grep_prog = find_program('/usr/local/bin/grep', required: false)
>      if not grep_prog.found()
> diff --git a/docs/meson.build b/docs/meson.build
> index 50c12cc3c255..54bba5e1b1fc 100644
> --- a/docs/meson.build
> +++ b/docs/meson.build
> @@ -132,7 +132,7 @@ aclperms_gen = custom_target(
>  )
>  
>  docs_timestamp = run_command(
> -  python3_prog, meson_timestamp_prog.path(), env: runutf8
> +  python3_prog, meson_timestamp_prog.path(), env: runutf8, check:
> true,
>  ).stdout().strip()
>  
>  site_xsl = files('site.xsl')
> @@ -206,7 +206,7 @@ endforeach
>  #
>  # Use this knowledge to detect the version that we know doesn't work
>  # for building libvirt and reject it
> -rst2html5_version = run_command(rst2html5_prog, '--version')
> +rst2html5_version = run_command(rst2html5_prog, '--version', check:
> true)
>  rst2html5_version = rst2html5_version.stdout().split(' ')
>  if rst2html5_version[1] != '(Docutils'
>    error('Please uninstall the rst2html5 package and install the
> docutils package')
> diff --git a/meson.build b/meson.build
> index 70843afcd546..ccb2b73624e0 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -14,10 +14,10 @@ project(
>  
>  # figure out if we are building from git
>  
> -git = run_command('test', '-d', '.git').returncode() == 0
> +git = run_command('test', '-d', '.git', check: false).returncode()
> == 0
>  
>  if git and not get_option('no_git')
> -  run_command('git', 'submodule', 'update', '--init')
> +  run_command('git', 'submodule', 'update', '--init', check: true)
>  endif
>  
>  
> @@ -45,7 +45,7 @@ endif
>  if get_option('system')
>    prefix = '/usr'
>    libdir = prefix / 'lib64'
> -  if run_command('test', '-d', libdir).returncode() != 0
> +  if run_command('test', '-d', libdir, check: false).returncode() !=
> 0
>      libdir = prefix / 'lib'
>    endif
>    localstatedir = '/var'
> @@ -222,6 +222,7 @@ size_max = cc.sizeof('size_t', prefix: '#include
> <stdint.h>')
>  alloc_max = run_command(
>    'python3', '-c',
>    'print(min(2**(@0@ * 8 - 1) - 1, 2**(@1@ * 8) -
> 1))'.format(ptrdiff_max, size_max),
> +  check: true,
>  )
>  
>  # sanitizer instrumentation may enlarge stack frames
> @@ -1096,7 +1097,7 @@ if not get_option('nls').disabled()
>    endforeach
>  
>    if xgettext_prog.found() and msgfmt_prog.found() and
> msgmerge_prog.found()
> -    rc = run_command(msgfmt_prog, '--version')
> +    rc = run_command(msgfmt_prog, '--version', check: false)
>      if rc.returncode() == 0 and rc.stdout().contains('GNU gettext')
>        have_gnu_gettext_tools = true
>      endif
> @@ -1199,7 +1200,7 @@ selinux_dep = dependency('libselinux',
> required: get_option('selinux'))
>  if selinux_dep.found()
>    selinux_mount = get_option('selinux_mount')
>    if selinux_mount == ''
> -    if run_command('test', '-d', '/sys/fs/selinux').returncode() ==
> 0
> +    if run_command('test', '-d', '/sys/fs/selinux', check:
> false).returncode() == 0
>        selinux_mount = '/sys/fs/selinux'
>      else
>        selinux_mount = '/selinux'
> @@ -1658,7 +1659,7 @@ if not get_option('driver_qemu').disabled()
>        default_qemu_user = 'root'
>        default_qemu_group = 'wheel'
>      else
> -      os_release = run_command('grep', '^ID=', '/etc/os-
> release').stdout()
> +      os_release = run_command('grep', '^ID=', '/etc/os-release',
> check: true).stdout()
>        if os_release.contains('arch')
>          default_qemu_user = 'nobody'
>          default_qemu_group = 'nobody'
> @@ -1682,8 +1683,8 @@ if not get_option('driver_qemu').disabled()
>        # If the expected user and group don't exist, or we haven't
> hit any
>        # of the cases above bacuse we're running on an unknown OS,
> the only
>        # sensible fallback is root:root
> -      if (run_command('getent', 'passwd',
> default_qemu_user).returncode() != 0 and
> -          run_command('getent', 'group',
> default_qemu_group).returncode() != 0)
> +      if (run_command('getent', 'passwd', default_qemu_user, check:
> false).returncode() != 0 and
> +          run_command('getent', 'group', default_qemu_group, check:
> false).returncode() != 0)
>          default_qemu_user = 'root'
>          default_qemu_group = 'root'
>        endif
> @@ -2178,7 +2179,8 @@ if git
>      )
>    endforeach
>  
> -  authors = run_command(python3_prog, meson_gen_authors_prog.path(),
> env: runutf8)
> +  authors = run_command(python3_prog, meson_gen_authors_prog.path(),
> +                        env: runutf8, check: true)
>    authors_file = 'AUTHORS.rst.in'
>  
>    authors_conf = configuration_data()
> @@ -2218,7 +2220,7 @@ configure_file(
>    output: '@BASENAME@',
>    configuration: run_conf,
>  )
> -run_command('chmod', 'a+x', meson.current_build_dir() / 'run')
> +run_command('chmod', 'a+x', meson.current_build_dir() / 'run',
> check: true)
>  
>  
>  # generate developer tooling files

Reviewed-by: Tim Wiederhake <twiederh at redhat.com>





More information about the libvir-list mailing list